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
r425 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application/io sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa sammoa-application/src/main/resources/i18n sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa
by tchemit@users.forge.codelutin.com 16 Aug '12
by tchemit@users.forge.codelutin.com 16 Aug '12
16 Aug '12
Author: tchemit
Date: 2012-08-17 00:56:52 +0200 (Fri, 17 Aug 2012)
New Revision: 425
Url: http://forge.codelutin.com/repositories/revision/sammoa/425
Log:
refs #1201: Export format application (begin to use topia csv api) + continue export application
Added:
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java
trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIModel.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java 2012-08-16 22:54:57 UTC (rev 424)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java 2012-08-16 22:56:52 UTC (rev 425)
@@ -53,18 +53,31 @@
return result;
}
+ public static CampaignStorage createStorage(File directory,
+ String campaignId) throws IOException {
+ CampaignStorage result = new CampaignStorage(directory, campaignId);
+ createEmptyStructure(result);
+ return result;
+ }
+
public static CampaignStorage copyStorage(CampaignStorage source,
File targetDirectory,
- String... flightIds) throws IOException {
+ boolean createCsvDirectory,
+ Iterable<String> flightIds) throws IOException {
- CampaignStorage target = new CampaignStorage(targetDirectory, source.getCampaignId());
+ CampaignStorage target = createStorage(targetDirectory,
+ source.getCampaignId());
createEmptyStructure(target);
- FileUtils.copyDirectory(source.getMapDirectory(), target.getMapDirectory());
- if (source.getCsvDirectory().exists()) {
+ FileUtils.copyDirectory(source.getMapDirectory(),
+ target.getMapDirectory());
+ if (createCsvDirectory) {
FileUtils.forceMkdir(target.getCsvDirectory());
- FileUtils.copyDirectory(source.getCsvDirectory(), target.getCsvDirectory());
}
+ if (source.getCsvDirectory().exists()) {
+ FileUtils.copyDirectory(source.getCsvDirectory(),
+ target.getCsvDirectory());
+ }
for (String flightId : flightIds) {
FlightStorage flightStorage = source.getFlightStorage(flightId);
FlightStorages.copyStorage(flightStorage, target);
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java 2012-08-16 22:54:57 UTC (rev 424)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java 2012-08-16 22:56:52 UTC (rev 425)
@@ -23,10 +23,13 @@
* #L%
*/
+import com.google.common.collect.Iterables;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
+import org.nuiton.topia.persistence.TopiaId;
import java.io.File;
+import java.util.Set;
/**
* Model of sammoa export.
@@ -37,46 +40,42 @@
public class ExportApplicationModel {
public static ExportApplicationModel newModel(File exportDirectory,
- String exportFilename,
Campaign campaign,
- Flight flight,
+ Set<Flight> flights,
ExportApplicationCallbackMode callback) {
ExportApplicationModel result = new ExportApplicationModel();
- result.exportDirectory = exportDirectory;
- result.exportFilename = exportFilename;
+ result.exportFile = exportDirectory;
result.campaign = campaign;
- result.flight = flight;
+ result.flights = flights;
result.callback = callback;
return result;
}
protected Campaign campaign;
- protected Flight flight;
+ protected Set<Flight> flights;
- protected File exportDirectory;
+ protected File exportFile;
- protected String exportFilename;
-
protected ExportApplicationCallbackMode callback;
- public File getExportDirectory() {
- return exportDirectory;
- }
-
- public String getExportFilename() {
- return exportFilename;
- }
-
public Campaign getCampaign() {
return campaign;
}
- public Flight getFlight() {
- return flight;
+ public Set<Flight> getFlights() {
+ return flights;
}
public ExportApplicationCallbackMode getCallback() {
return callback;
}
+
+ public Iterable<String> getFlightIds() {
+ return Iterables.transform(getFlights(), TopiaId.GET_TOPIA_ID);
+ }
+
+ public File getExportFile() {
+ return exportFile;
+ }
}
\ No newline at end of file
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-16 22:54:57 UTC (rev 424)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-16 22:56:52 UTC (rev 425)
@@ -24,13 +24,41 @@
*/
import fr.ulr.sammoa.application.SammoaServiceSupport;
+import fr.ulr.sammoa.application.SammoaTechnicalException;
import fr.ulr.sammoa.application.io.CampaignStorage;
import fr.ulr.sammoa.application.io.CampaignStorages;
import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.SammoaDAOHelper;
+import fr.ulr.sammoa.persistence.SammoaDbMetas;
+import fr.ulr.sammoa.persistence.SammoaEntityEnum;
+import fr.ulr.sammoa.persistence.SammoaPersistence;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.framework.TopiaQuery;
+import org.nuiton.topia.persistence.TopiaDAO;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.topia.persistence.csv.EntityCsvModel;
+import org.nuiton.topia.persistence.csv.out.EntityAssociationExportModel;
+import org.nuiton.topia.persistence.csv.out.ExportModelFactory;
+import org.nuiton.topia.persistence.csv.out.PrepareDataForExport;
+import org.nuiton.topia.persistence.csv.out.TopiaCsvExports;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.ColumnMeta;
+import org.nuiton.topia.persistence.metadata.DbMeta;
+import org.nuiton.topia.persistence.metadata.MetaFilenameAware;
+import org.nuiton.topia.persistence.metadata.TableMeta;
import org.nuiton.util.TimeLog;
+import org.nuiton.util.ZipUtil;
+import org.nuiton.util.csv.ExportModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
/**
* To export application as a {@code sammoa} file.
*
@@ -43,36 +71,59 @@
private static final Logger logger =
LoggerFactory.getLogger(ExportApplicationService.class);
-
- private static final TimeLog timeLog =
+ private static final TimeLog TIME_LOG =
new TimeLog(ExportApplicationService.class);
- public void exportApplication(ExportApplicationModel model) {
+ public void exportApplication(ExportApplicationModel model) throws IOException {
if (logger.isInfoEnabled()) {
- logger.info("Start Application export to {} :: {}",
- model.getExportDirectory(),
- model.getExportFilename());
+ logger.info("Start Application export to {}",
+ model.getExportFile());
}
long startTime = TimeLog.getTime();
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- //BOUH!
+ Campaign campaign = model.getCampaign();
+
+ String campaignId = campaign.getTopiaId();
+
+ CampaignStorage storage = CampaignStorages.getStorage(config, campaignId);
+
+ File targetDirectory = new File(config.getTmpDirectory(),
+ "exportSammoa-" + System.nanoTime());
+
+ if (logger.isInfoEnabled()) {
+ logger.info("Temporary storage: {}", targetDirectory);
}
- Campaign campaign = model.getCampaign();
+ Iterable<String> flightIds = model.getFlightIds();
- CampaignStorage storage = CampaignStorages.getStorage(
- config, campaign.getTopiaId());
+ CampaignStorage targetStorage = CampaignStorages.copyStorage(
+ storage, targetDirectory, true, flightIds);
- //TODO
- startTime = timeLog.log(startTime, "exportApplication",
- "after Export execution");
+ startTime = TIME_LOG.log(startTime, "exportApplication",
+ "after create Storage structure");
+ File csvDirectory = targetStorage.getCsvDirectory();
+
+ TopiaContext tx = persistence.beginTransaction();
+
+ try {
+
+ exportReferential(tx, csvDirectory);
+ exportData(tx, csvDirectory, campaignId, flightIds);
+ } finally {
+ persistence.endTransaction(tx);
+ }
+
+ compressZipFile(model.getExportFile(),
+ targetStorage.getDirectory(),
+ false);
+
+ startTime = TIME_LOG.log(startTime, "exportApplication",
+ "after export db to csv files ");
+
switch (model.getCallback()) {
case NOTHING:
@@ -86,10 +137,52 @@
break;
}
- timeLog.log(startTime, "exportApplication", "after Callback execution");
+ TIME_LOG.log(startTime, "exportApplication", "after Callback execution");
}
+ protected void exportReferential(TopiaContext tx, File csvDirectory) {
+
+ SammoaEntityEnumPrepareDataForExport prepareDataForExport =
+ new SammoaEntityEnumPrepareDataForExport(persistence, tx);
+
+ DbMeta<SammoaEntityEnum> dbMetas = persistence.getDbMetas();
+
+ MetaFilenameAware<SammoaEntityEnum>[] referencialEntries =
+ SammoaDbMetas.getReferencialEntries(dbMetas);
+
+ for (MetaFilenameAware<SammoaEntityEnum> entry : referencialEntries) {
+
+ File entryFile = new File(csvDirectory, entry.getFilename());
+ if (logger.isInfoEnabled()) {
+ logger.info("Will export {} to {}", entry, entryFile);
+ }
+
+ if (entry instanceof AssociationMeta) {
+ AssociationMeta<SammoaEntityEnum> associationMeta =
+ (AssociationMeta<SammoaEntityEnum>) entry;
+ TopiaCsvExports.exportData(associationMeta,
+ defaultExportModelFactory,
+ prepareDataForExport,
+ entryFile);
+ } else {
+ TableMeta<SammoaEntityEnum> tableMeta =
+ (TableMeta<SammoaEntityEnum>) entry;
+
+ TopiaCsvExports.exportData(tableMeta,
+ defaultExportModelFactory,
+ prepareDataForExport,
+ entryFile);
+ }
+ }
+
+ }
+
+ protected void exportData(TopiaContext tx, File csvDirectory,
+ String campaignId,
+ Iterable<String> flightIds) {
+ }
+
protected void removeFlightData(ExportApplicationModel model) {
if (logger.isInfoEnabled()) {
logger.info("Will remove flight data for campaign {}",
@@ -102,4 +195,107 @@
logger.info("Will remove all data from current db (create a new db...)");
}
}
+
+ private ExportModelFactory<SammoaEntityEnum> defaultExportModelFactory = new ExportModelFactory<SammoaEntityEnum>() {
+ @Override
+ public <E extends TopiaEntity> ExportModel<E> buildForExport(TableMeta<SammoaEntityEnum> meta) {
+ EntityCsvModel<SammoaEntityEnum, E> model =
+ EntityCsvModel.newModel(config.getCsvSeparator(),
+ meta,
+ TopiaEntity.TOPIA_ID);
+
+
+ for (ColumnMeta columnMeta : meta) {
+ String propertyName = columnMeta.getName();
+ Class<?> type = columnMeta.getType();
+ if (columnMeta.isFK()) {
+
+ Class<TopiaEntity> entityType = (Class<TopiaEntity>) type;
+
+ // export foreign key value as his topiaId
+ model.addForeignKeyForExport(propertyName, entityType);
+
+ } else {
+ model.addDefaultColumn(propertyName, type);
+ }
+ }
+ return model;
+ }
+
+ @Override
+ public <E extends TopiaEntity> ExportModel<E> buildForExport(AssociationMeta<SammoaEntityEnum> associationMeta) {
+ ExportModel<E> model = EntityAssociationExportModel.newExportModel(
+ config.getCsvSeparator(),
+ associationMeta
+ );
+ return model;
+ }
+ };
+
+ public static void compressZipFile(File zipFile, File directory) throws IOException {
+ compressZipFile(zipFile, directory, true);
+ }
+
+ public static void compressZipFile(File zipFile, File directory, boolean delete) throws IOException {
+
+ FileUtils.forceMkdir(zipFile.getParentFile());
+
+ try {
+ ZipUtil.compress(zipFile, directory);
+ } finally {
+ if (delete) {
+ FileUtils.deleteDirectory(directory);
+ }
+ }
+ }
+
+ protected class SammoaEntityEnumPrepareDataForExport implements PrepareDataForExport<SammoaEntityEnum> {
+
+ protected final SammoaPersistence persistence;
+
+ protected final TopiaContext tx;
+
+ public SammoaEntityEnumPrepareDataForExport(SammoaPersistence persistence, TopiaContext tx) {
+
+ this.persistence = persistence;
+ this.tx = tx;
+ }
+
+ @Override
+ public <E extends TopiaEntity> List<E> prepareData(TableMeta<SammoaEntityEnum> tableMeta) {
+
+ return getEntities(tx, tableMeta, null);
+ }
+
+ @Override
+ public <E extends TopiaEntity> List<E> prepareData(AssociationMeta<SammoaEntityEnum> associationMeta) {
+ TableMeta<SammoaEntityEnum> tableMeta = persistence.getDbMetas().getTable(associationMeta.getSource());
+ return getEntities(tx, tableMeta, "size(e." + associationMeta.getName() + ") > 0");
+ }
+
+ protected <E extends TopiaEntity> List<E> getEntities(TopiaContext tx,
+ TableMeta<SammoaEntityEnum> tableMeta,
+ String extraWhereQuery) {
+
+ List<E> result;
+ SammoaEntityEnum entityEnum = tableMeta.getSource();
+ try {
+ TopiaDAO<E> dao = SammoaDAOHelper.<E, TopiaDAO<E>>getDAO(
+ tx, (Class<E>) entityEnum.getContract());
+
+ // first query to count datas
+
+ TopiaQuery query = dao.createQuery("e");
+
+ if (StringUtils.isNotEmpty(extraWhereQuery)) {
+ query.addWhere(extraWhereQuery);
+ }
+
+ result = dao.findAllByQuery(query);
+ return result;
+ } catch (TopiaException eee) {
+ throw new SammoaTechnicalException("Could not obtain data", eee);
+ }
+ }
+ }
}
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-16 22:54:57 UTC (rev 424)
+++ trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-08-16 22:56:52 UTC (rev 425)
@@ -6,6 +6,7 @@
sammoa.config.background.shape.file=
sammoa.config.campaign.directory=Directory where are stored campaign data (maps, flight audio files,...)
sammoa.config.campaign.id=
+sammoa.config.csv.separator=
sammoa.config.data.directory=Main directory where all data are stored. You can use ${data.directory} in other property values (ex\: ${data.directory}/audio).
sammoa.config.effort.number=
sammoa.config.flight.number=
@@ -19,6 +20,7 @@
sammoa.config.observation.number=
sammoa.config.strate.shape.file=
sammoa.config.system.id=
+sammoa.config.tmp.directory=Temporary directory used for different task (import, export,...)
sammoa.config.transect.shape.file=
sammoa.config.ui.add=Add
sammoa.config.ui.begin=Begin
Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java (rev 0)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java 2012-08-16 22:56:52 UTC (rev 425)
@@ -0,0 +1,118 @@
+package fr.ulr.sammoa.persistence;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Multimap;
+import org.nuiton.topia.persistence.metadata.DbMeta;
+import org.nuiton.topia.persistence.metadata.MetaFilenameAware;
+import org.nuiton.topia.persistence.metadata.Metadatas;
+import org.nuiton.topia.persistence.metadata.TopiaEntityEnumProvider;
+
+import java.util.List;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class SammoaDbMetas {
+
+ private static final SammoaEntityEnum[] EMPTY_ENTITY_TYPE_ARRAY =
+ new SammoaEntityEnum[0];
+
+ public static DbMeta<SammoaEntityEnum> newDbMetas() {
+ return DbMeta.newDbMeta(SammoaEntityEnum.values(),
+ EMPTY_ENTITY_TYPE_ARRAY,
+ new SammoaTopiaEntityEnumProvider());
+ }
+
+ /**
+ * @return the entity types of data in correct order for replication
+ * purpose.
+ */
+ public static SammoaEntityEnum[] getDataTypes() {
+
+ List<SammoaEntityEnum> result = Lists.newLinkedList();
+
+ result.add(SammoaEntityEnum.TransectFlight);
+ result.add(SammoaEntityEnum.Flight);
+ result.add(SammoaEntityEnum.Route);
+ result.add(SammoaEntityEnum.Observation);
+ result.add(SammoaEntityEnum.ObserverPosition);
+ result.add(SammoaEntityEnum.GeoPoint);
+
+ return result.toArray(new SammoaEntityEnum[result.size()]);
+ }
+
+ /**
+ * @return the entity types of reference in correct order for copy
+ * purpose (says import / export of all a database.
+ */
+ public static SammoaEntityEnum[] getReferenceTypes() {
+ List<SammoaEntityEnum> result = Lists.newLinkedList();
+
+ // with no dep
+ result.add(SammoaEntityEnum.Region);
+ result.add(SammoaEntityEnum.Campaign);
+ result.add(SammoaEntityEnum.Strate);
+ result.add(SammoaEntityEnum.Sector);
+ result.add(SammoaEntityEnum.Transect);
+ result.add(SammoaEntityEnum.Observer);
+ result.add(SammoaEntityEnum.Species);
+
+ return result.toArray(new SammoaEntityEnum[result.size()]);
+ }
+
+ public static MetaFilenameAware<SammoaEntityEnum>[] getAllEntries(DbMeta<SammoaEntityEnum> dbMeta) {
+
+ List<MetaFilenameAware<SammoaEntityEnum>> entities = Lists.newArrayList();
+ List<MetaFilenameAware<SammoaEntityEnum>> associations = Lists.newArrayList();
+
+ Metadatas.addEntries(dbMeta, entities, associations, getReferenceTypes());
+ Metadatas.addEntries(dbMeta, entities, associations, getDataTypes());
+ entities.addAll(associations);
+ return entities.toArray(new MetaFilenameAware[entities.size()]);
+ }
+
+ public static MetaFilenameAware<SammoaEntityEnum>[] getReferencialEntries(DbMeta<SammoaEntityEnum> dbMeta) {
+
+ List<MetaFilenameAware<SammoaEntityEnum>> entities = Lists.newArrayList();
+ List<MetaFilenameAware<SammoaEntityEnum>> associations = Lists.newArrayList();
+ entities.addAll(associations);
+ Metadatas.addEntries(dbMeta, entities, associations, getReferenceTypes());
+
+ return entities.toArray(new MetaFilenameAware[entities.size()]);
+ }
+
+ public static MetaFilenameAware<SammoaEntityEnum>[] getDataEntries(DbMeta<SammoaEntityEnum> dbMeta) {
+
+ List<MetaFilenameAware<SammoaEntityEnum>> entities = Lists.newArrayList();
+
+ Metadatas.addEntries(dbMeta, entities, null, getDataTypes());
+ return entities.toArray(new MetaFilenameAware[entities.size()]);
+ }
+
+ public static Multimap<SammoaEntityEnum, MetaFilenameAware<SammoaEntityEnum>> getDataAssociationsEntries(DbMeta<SammoaEntityEnum> dbMeta) {
+
+ List<MetaFilenameAware<SammoaEntityEnum>> associations = Lists.newArrayList();
+
+ Metadatas.addEntries(dbMeta, null, associations, getDataTypes());
+
+ Multimap<SammoaEntityEnum, MetaFilenameAware<SammoaEntityEnum>> associationsBySource = Metadatas.split(associations);
+ return associationsBySource;
+ }
+
+ /**
+ * Implementation of {@link TopiaEntityEnumProvider} for Sammoa.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+ public static class SammoaTopiaEntityEnumProvider implements TopiaEntityEnumProvider<SammoaEntityEnum> {
+
+ @Override
+ public <E> SammoaEntityEnum getEntityEnum(Class<E> type) {
+ return SammoaEntityEnum.valueOf(type);
+ }
+ }
+}
Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
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-16 22:54:57 UTC (rev 424)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2012-08-16 22:56:52 UTC (rev 425)
@@ -31,13 +31,14 @@
import org.nuiton.topia.TopiaNotFoundException;
import org.nuiton.topia.TopiaRuntimeException;
import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.topia.persistence.metadata.DbMeta;
import java.util.Properties;
/**
* Persistence context for SAMMOA. This class must be used for all transaction
* management. An {@link AutoSaveListener} will be used to commit all entities
- * changed every {@code autoCommitDelay} defined in constructor
+ * changed every {@code autoCommitDelay} defined in constructor
* {@link #SammoaPersistence(Properties, long)}.
* <p/>
* You will create a transaction with {@link #beginTransaction()} and on finally
@@ -54,17 +55,19 @@
protected TopiaContext rootContext;
protected Properties dbConfiguration;
-
+
protected AutoSaveListener autoSaveListener;
+ protected DbMeta<SammoaEntityEnum> dbMetas;
+
/**
* Constructor of SammoaPersistence with {@code dbConfiguration} for
* {@link TopiaContextFactory#getContext(Properties)} and {@code autoCommitDelay}
* for {@link AutoSaveListener}.
- *
+ *
* @param dbConfiguration Configuration for Topia
* @param autoCommitDelay Delay in milliseconds for auto commit period
- * @see #open(Properties, long)
+ * @see #open(Properties, long)
*/
public SammoaPersistence(Properties dbConfiguration, long autoCommitDelay) {
open(dbConfiguration, autoCommitDelay);
@@ -96,10 +99,10 @@
* will be automatically bind on all entities change. During the transaction
* time, no auto commit will be done, the next {@link #endTransaction(TopiaContext)}
* call will release the AutoSaveListener to continue looking for change.
- *
+ *
* @return a new TopiaContext
- * @see #endTransaction(TopiaContext)
- * @see TopiaContext#beginTransaction()
+ * @see #endTransaction(TopiaContext)
+ * @see TopiaContext#beginTransaction()
*/
public TopiaContext beginTransaction() {
autoSaveListener.stop();
@@ -110,16 +113,14 @@
/**
* Delay the {@code entity} creation using the {@link AutoSaveListener}
- *
+ *
* @param entity TopiaEntity to create automatically on next auto commit
*/
public void delayEntityCreation(TopiaEntity entity) {
autoSaveListener.addCreatedEntity(entity);
}
- /**
- * Stop the auto save listener
- */
+ /** Stop the auto save listener */
public void stopAutoSaveListener() {
autoSaveListener.stop();
}
@@ -127,19 +128,17 @@
/**
* End the {@code transaction}. The {@link AutoSaveListener} will be released
* to continue looking for entities change.
- *
+ *
* @param transaction TopiaContext to end
- * @see #beginTransaction()
- * @see TopiaContext#closeContext()
+ * @see #beginTransaction()
+ * @see TopiaContext#closeContext()
*/
public void endTransaction(TopiaContext transaction) {
closeContext(transaction);
autoSaveListener.start();
}
- /**
- * @return the main TopiaContext where all other transactions are opened
- */
+ /** @return the main TopiaContext where all other transactions are opened */
public TopiaContext getRootContext() {
if (rootContext == null) {
try {
@@ -151,17 +150,15 @@
return rootContext;
}
- /**
- * @param rootContext the main TopiaContext to use
- */
+ /** @param rootContext the main TopiaContext to use */
public void setRootContext(TopiaContext rootContext) {
this.rootContext = rootContext;
}
/**
- * Close the persistence context. This will close the main {@link TopiaContext}
+ * Close the persistence context. This will close the main {@link TopiaContext}
* and the {@link AutoSaveListener}.
- *
+ *
* @see AutoSaveListener#stop()
*/
public void close() {
@@ -172,11 +169,18 @@
}
}
+ public DbMeta<SammoaEntityEnum> getDbMetas() {
+ if (dbMetas == null) {
+ dbMetas = SammoaDbMetas.newDbMetas();
+ }
+ return dbMetas;
+ }
+
/**
* Open a new {@link TopiaContext}. Errors are thrown using {@link TopiaRuntimeException}
- *
+ *
* @return a new topiaContext
- * @see TopiaContext#beginTransaction()
+ * @see TopiaContext#beginTransaction()
*/
protected TopiaContext openContext() {
try {
Added: trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java
===================================================================
--- trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java (rev 0)
+++ trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java 2012-08-16 22:56:52 UTC (rev 425)
@@ -0,0 +1,74 @@
+package fr.ulr.sammoa.persistence;
+
+import com.google.common.collect.Multimap;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.topia.persistence.metadata.DbMeta;
+import org.nuiton.topia.persistence.metadata.MetaFilenameAware;
+
+/**
+ * Tests the{@link SammoaDbMetas}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class SammoaDbMetasTest {
+
+ protected DbMeta<SammoaEntityEnum> dbMetas;
+
+
+ @Before
+ public void setUp() throws Exception {
+ dbMetas = SammoaDbMetas.newDbMetas();
+
+ }
+
+ @Test
+ public void getAllEntries() throws Exception {
+
+ MetaFilenameAware<SammoaEntityEnum>[] entries =
+ SammoaDbMetas.getAllEntries(dbMetas);
+ Assert.assertNotNull(entries);
+ Assert.assertEquals(SammoaDbMetas.getReferenceTypes().length +
+ SammoaDbMetas.getDataTypes().length +
+ 4 /* (data associations) */,
+ entries.length);
+ }
+
+ @Test
+ public void getReferencialEntries() throws Exception {
+
+ MetaFilenameAware<SammoaEntityEnum>[] entries =
+ SammoaDbMetas.getReferencialEntries(dbMetas);
+
+ Assert.assertNotNull(entries);
+ Assert.assertEquals(SammoaDbMetas.getReferenceTypes().length,
+ entries.length);
+ }
+
+ @Test
+ public void getDataEntries() throws Exception {
+
+ MetaFilenameAware<SammoaEntityEnum>[] entries =
+ SammoaDbMetas.getDataEntries(dbMetas);
+ Assert.assertNotNull(entries);
+ Assert.assertEquals(SammoaDbMetas.getDataTypes().length,
+ entries.length);
+ }
+
+ @Test
+ public void getDataAssociationsEntries() throws Exception {
+
+ Multimap<SammoaEntityEnum, MetaFilenameAware<SammoaEntityEnum>> entries =
+ SammoaDbMetas.getDataAssociationsEntries(dbMetas);
+ Assert.assertNotNull(entries);
+ Assert.assertEquals(4, entries.size());
+ Assert.assertTrue(entries.containsKey(SammoaEntityEnum.TransectFlight));
+ Assert.assertEquals(1, entries.get(SammoaEntityEnum.TransectFlight).size());
+ Assert.assertTrue(entries.containsKey(SammoaEntityEnum.Flight));
+ Assert.assertEquals(2, entries.get(SammoaEntityEnum.Flight).size());
+ Assert.assertTrue(entries.containsKey(SammoaEntityEnum.Route));
+ Assert.assertEquals(1, entries.get(SammoaEntityEnum.Route).size());
+ }
+}
Property changes on: trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-16 22:54:57 UTC (rev 424)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-16 22:56:52 UTC (rev 425)
@@ -37,6 +37,7 @@
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.ErrorDialogUI;
import org.nuiton.util.FileUtil;
import org.nuiton.util.decorator.Decorator;
import org.slf4j.Logger;
@@ -46,6 +47,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
+import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -182,6 +184,8 @@
ExportApplicationModel dataModel = getModel().toModel();
exportService.exportApplication(dataModel);
+ } catch (IOException e) {
+ ErrorDialogUI.showError(e);
} finally {
SammoaUtil.updateBusyState(frame, false);
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIModel.java 2012-08-16 22:54:57 UTC (rev 424)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIModel.java 2012-08-16 22:56:52 UTC (rev 425)
@@ -24,6 +24,7 @@
*/
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationCallbackMode;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationModel;
import fr.ulr.sammoa.persistence.Campaign;
@@ -32,6 +33,7 @@
import java.io.File;
import java.util.List;
+import java.util.Set;
/**
* Model of export application UI.
@@ -149,11 +151,21 @@
public ExportApplicationModel toModel() {
+ Set<Flight> flightsToExport;
+
+ if (getSelectedFlight() != null) {
+
+ // only one flight to export
+ flightsToExport = Sets.newHashSet(getSelectedFlight());
+ } else {
+
+ // all flights of this campaign
+ flightsToExport = Sets.newHashSet(getFlights());
+ }
ExportApplicationModel result = ExportApplicationModel.newModel(
- getExportDirectory(),
- getExportFilename(),
+ new File(getExportDirectory(), getExportFilename()),
getSelectedCampaign(),
- getSelectedFlight(),
+ flightsToExport,
getCallback()
);
return result;
1
0
16 Aug '12
Author: tchemit
Date: 2012-08-17 00:54:57 +0200 (Fri, 17 Aug 2012)
New Revision: 424
Url: http://forge.codelutin.com/repositories/revision/sammoa/424
Log:
generate SammoaEntityEnum as a regular class + generate also EntityOperator
Modified:
trunk/sammoa-persistence/src/main/xmi/sammoa.properties
Modified: trunk/sammoa-persistence/src/main/xmi/sammoa.properties
===================================================================
--- trunk/sammoa-persistence/src/main/xmi/sammoa.properties 2012-08-16 22:53:47 UTC (rev 423)
+++ trunk/sammoa-persistence/src/main/xmi/sammoa.properties 2012-08-16 22:54:57 UTC (rev 424)
@@ -27,6 +27,8 @@
model.tagvalue.version=1.0
model.tagvalue.doNotGenerateBooleanGetMethods=true
model.tagvalue.indexForeignKeys=true
+model.tagValue.generateOperatorForDAOHelper=true
+model.tagValue.generateStandaloneEnumForDAOHelper=true
#model.tagvalue.java.lang.String=text
1
0
r423 - trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application
by tchemit@users.forge.codelutin.com 16 Aug '12
by tchemit@users.forge.codelutin.com 16 Aug '12
16 Aug '12
Author: tchemit
Date: 2012-08-17 00:53:47 +0200 (Fri, 17 Aug 2012)
New Revision: 423
Url: http://forge.codelutin.com/repositories/revision/sammoa/423
Log:
add new temp directory in config + csv separator (for in.out csv) + never used direct transaltion in Configuration : enum = static
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java
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-16 22:51:57 UTC (rev 422)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-16 22:53:47 UTC (rev 423)
@@ -312,6 +312,18 @@
return result;
}
+ public File getTmpDirectory() {
+ File result = getOrCreateDirectory(SammoaConfigOption.TMP_DIRECTORY);
+ return result;
+ }
+
+ public char getCsvSeparator() {
+ char csvSeparator = applicationConfig.getOption(
+ char.class, SammoaConfigOption.CSV_SEPARATOR.key);
+ Preconditions.checkNotNull(csvSeparator);
+ return csvSeparator;
+ }
+
/**
* All Sammoa configuration options.
*
@@ -327,10 +339,15 @@
File.class
),
CAMPAIGN_DIRECTORY("campaign.directory",
- n_("sammoa.config.campaign.directory"),
- "${data.directory}/campaign",
- File.class
+ n_("sammoa.config.campaign.directory"),
+ "${data.directory}/campaign",
+ File.class
),
+ TMP_DIRECTORY("tmp.directory",
+ n_("sammoa.config.tmp.directory"),
+ "${java.io.tmpdir}/sammoa",
+ File.class
+ ),
LOG_FILE("log.file",
n_("sammoa.config.log.file"),
"${data.directory}/log/sammoa.log",
@@ -404,74 +421,77 @@
),
KEY_START("ui." + PROPERTY_START,
- _("sammoa.config.ui.start"),
+ n_("sammoa.config.ui.start"),
"ctrl pressed A",
KeyStroke.class,
false,
false),
KEY_STOP("ui." + PROPERTY_STOP,
- _("sammoa.config.ui.stop"),
+ n_("sammoa.config.ui.stop"),
"ctrl pressed T",
KeyStroke.class,
false,
false),
KEY_BEGIN("ui." + PROPERTY_BEGIN,
- _("sammoa.config.ui.begin"),
+ n_("sammoa.config.ui.begin"),
"pressed F5",
KeyStroke.class,
false,
false),
KEY_END("ui." + PROPERTY_END,
- _("sammoa.config.ui.end"),
+ n_("sammoa.config.ui.end"),
"pressed F9",
KeyStroke.class,
false,
false),
KEY_NEXT("ui." + PROPERTY_NEXT,
- _("sammoa.config.ui.next"),
+ n_("sammoa.config.ui.next"),
"pressed F10",
KeyStroke.class,
false,
false),
KEY_ADD("ui." + PROPERTY_ADD,
- _("sammoa.config.ui.add"),
+ n_("sammoa.config.ui.add"),
"pressed F7",
KeyStroke.class,
false,
false),
KEY_LEFT_OBSERVATION("ui." + PROPERTY_LEFT_OBSERVATION,
- _("sammoa.config.ui.leftObservation"),
+ n_("sammoa.config.ui.leftObservation"),
"pressed F1",
KeyStroke.class,
false,
false),
KEY_CENTER_OBSERVATION("ui." + PROPERTY_CENTER_OBSERVATION,
- _("sammoa.config.ui.centerObservation"),
+ n_("sammoa.config.ui.centerObservation"),
"pressed F3",
KeyStroke.class,
false,
false),
KEY_RIGHT_OBSERVATION("ui." + PROPERTY_RIGHT_OBSERVATION,
- _("sammoa.config.ui.rightObservation"),
+ n_("sammoa.config.ui.rightObservation"),
"pressed F12",
KeyStroke.class,
false,
false),
KEY_CIRCLE_BACK("ui." + PROPERTY_CIRCLE_BACK,
- _("sammoa.config.ui.circleBack"),
+ n_("sammoa.config.ui.circleBack"),
"pressed F11",
KeyStroke.class,
false,
- false);
+ false),
+ CSV_SEPARATOR("sammoa.csv.separator",
+ n_("sammoa.config.csv.separator"),
+ ";", char.class);
/** Configuration key. */
private final String key;
1
0
Author: tchemit
Date: 2012-08-17 00:51:57 +0200 (Fri, 17 Aug 2012)
New Revision: 422
Url: http://forge.codelutin.com/repositories/revision/sammoa/422
Log:
updates to nuiton-utils 2.6 and jaxx 2.5.5
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-14 18:47:12 UTC (rev 421)
+++ trunk/pom.xml 2012-08-16 22:51:57 UTC (rev 422)
@@ -109,7 +109,7 @@
<!-- libraries version -->
- <nuitonUtilsVersion>2.5.3</nuitonUtilsVersion>
+ <nuitonUtilsVersion>2.6-SNAPSHOT</nuitonUtilsVersion>
<nuitonI18nVersion>2.4.1</nuitonI18nVersion>
<eugenePluginVersion>2.5-SNAPSHOT</eugenePluginVersion>
@@ -121,7 +121,7 @@
<h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
- <jaxxVersion>2.5.4</jaxxVersion>
+ <jaxxVersion>2.5.5-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.4</xworkVersion>
1
0
r421 - in trunk: . sammoa-application/src/main/resources/i18n sammoa-persistence sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing
by tchemit@users.forge.codelutin.com 14 Aug '12
by tchemit@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: tchemit
Date: 2012-08-14 20:47:12 +0200 (Tue, 14 Aug 2012)
New Revision: 421
Url: http://forge.codelutin.com/repositories/revision/sammoa/421
Log:
updates to last snapshot fo topia and eugene + remove audo directory from configuration (now it is inside the flightstorage)
Modified:
trunk/pom.xml
trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties
trunk/sammoa-persistence/pom.xml
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-14 13:09:01 UTC (rev 420)
+++ trunk/pom.xml 2012-08-14 18:47:12 UTC (rev 421)
@@ -112,9 +112,9 @@
<nuitonUtilsVersion>2.5.3</nuitonUtilsVersion>
<nuitonI18nVersion>2.4.1</nuitonI18nVersion>
- <eugenePluginVersion>2.4.2</eugenePluginVersion>
+ <eugenePluginVersion>2.5-SNAPSHOT</eugenePluginVersion>
<!--<topiaVersion>3.0-SNAPSHOT</topiaVersion>-->
- <topiaVersion>2.6.11</topiaVersion>
+ <topiaVersion>2.6.12-SNAPSHOT</topiaVersion>
<!--<hibernateVersion>4.1.3.Final</hibernateVersion>-->
<!--<geronimoJpaSpecVersion>1.1</geronimoJpaSpecVersion>-->
<hibernateVersion>3.6.10.Final</hibernateVersion>
@@ -435,7 +435,7 @@
<plugin>
<groupId>org.nuiton.eugene</groupId>
- <artifactId>maven-eugene-plugin</artifactId>
+ <artifactId>eugene-maven-plugin</artifactId>
<version>${eugenePluginVersion}</version>
</plugin>
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-14 13:09:01 UTC (rev 420)
+++ trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-08-14 18:47:12 UTC (rev 421)
@@ -4,12 +4,12 @@
sammoa.config.application.version=Version of the application
sammoa.config.audio.directory=Directory where audio files are stored.
sammoa.config.background.shape.file=
+sammoa.config.campaign.directory=Directory where are stored campaign data (maps, flight audio files,...)
sammoa.config.campaign.id=
sammoa.config.data.directory=Main directory where all data are stored. You can use ${data.directory} in other property values (ex\: ${data.directory}/audio).
sammoa.config.effort.number=
sammoa.config.flight.number=
sammoa.config.fly.mode=
-sammoa.config.campaign.directory=Directory where are stored campaign data (maps, flight audio files,...)
sammoa.config.gps.check.period=Time in seconds between each GPS capture
sammoa.config.gps.device=GPS device port
sammoa.config.gps.handler=GpsHandler class \: fr.ulr.sammoa.application.device.gps.GpsHandlerGpylon or fr.ulr.sammoa.application.device.gps.FakeGpsHandler
Modified: trunk/sammoa-persistence/pom.xml
===================================================================
--- trunk/sammoa-persistence/pom.xml 2012-08-14 13:09:01 UTC (rev 420)
+++ trunk/sammoa-persistence/pom.xml 2012-08-14 18:47:12 UTC (rev 421)
@@ -102,7 +102,7 @@
<plugin>
<groupId>org.nuiton.eugene</groupId>
- <artifactId>maven-eugene-plugin</artifactId>
+ <artifactId>eugene-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
@@ -118,7 +118,7 @@
</templates>
</configuration>
<goals>
- <goal>smart-generate</goal>
+ <goal>generate</goal>
</goals>
</execution>
</executions>
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-14 13:09:01 UTC (rev 420)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-14 18:47:12 UTC (rev 421)
@@ -264,8 +264,8 @@
helper.addOption(SammoaConfig.SammoaConfigOption.SYSTEM_ID);
helper.addOption(SammoaConfig.SammoaConfigOption.DATA_DIRECTORY);
helper.setOptionCallBack("ui");
- helper.addOption(SammoaConfig.SammoaConfigOption.AUDIO_DIRECTORY);
- helper.setOptionCallBack("ui");
+// helper.addOption(SammoaConfig.SammoaConfigOption.CAMPAIGN_DIRECTORY);
+// helper.setOptionCallBack("ui");
helper.addOption(SammoaConfig.SammoaConfigOption.FLIGHT_NUMBER);
helper.addOption(SammoaConfig.SammoaConfigOption.BACKGROUND_SHAPE_FILE);
helper.setOptionCallBack("ui");
1
0
14 Aug '12
Author: tchemit
Date: 2012-08-14 15:09:01 +0200 (Tue, 14 Aug 2012)
New Revision: 420
Url: http://forge.codelutin.com/repositories/revision/sammoa/420
Log:
Clean code :(
please stop creating public api where nobody needs it :( If a field of a class has no public behaviour do not create a
getter on it just to be called in the class.
Sammoa is not a library but a final application, keep it this way. Still some work to do on the flight package.
#refs #1202: Import format application (begin of skeleton)
Added:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java
Removed:
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/BaseModel.java
Modified:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BetaLayerUI.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx
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/SammoaColors.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUI.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/StartApp.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.jaxx
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/AddAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CloseAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/CurrentTransectHighlightPredicate.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/DeviceStateLED.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.jaxx
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/FlightBarModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/NextTransectHighlightPredicate.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListCellRenderer.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/flight/ObserverTableCellEditor.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListCellRenderer.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/BaseGeoPointLayer.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/LineGeoPointLayer.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/SimpleGeoPointLayer.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/TransectLayer.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/UIImporter.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapLauncherUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/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/SpeciesCodeValidator.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/MoveToPreviousRowEditableAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/AbstractRowHighlightPredicate.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/ColorTableCellRenderer.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/LogFileInitializer.java
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/TableDataChangeListener.java
trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
Deleted: 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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -1,61 +0,0 @@
-/*
- * #%L
- * SAMMOA :: UI Swing
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 UMS 3462, Code Lutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-package fr.ulr.sammoa.ui.swing;
-
-import fr.ulr.sammoa.application.SammoaContext;
-import fr.ulr.sammoa.application.flightController.FlightController;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
-
-/**
- * @author sletellier <letellier(a)codelutin.com>
- */
-@Deprecated
-public abstract class BaseHandler {
-
- @Deprecated
- public SammoaUIContext getUIContext() {
- return SammoaUIContext.getUIContext();
- }
-
- @Deprecated
- public SammoaContext getContext() {
- return getUIContext().getAppContext();
- }
-
- @Deprecated
- public FlightController getFlightController() {
- return getUIContext().getFlightUIHandler().getFlightController();
- }
-
- @Deprecated
- public FlightUIModel getFlightUIModel() {
- return getUIContext().getFlightUIHandler().getModel();
- }
-
- @Deprecated
- public SammoaDecoratorProvider getDecoratorProvider() {
- return getUIContext().getDecoratorProvider();
- }
-}
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -1,63 +0,0 @@
-/*
- * #%L
- * SAMMOA :: UI Swing
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 UMS 3462, Code Lutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-package fr.ulr.sammoa.ui.swing;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.io.Serializable;
-
-/**
- * Created: 11/06/12
- *
- * @author fdesbois <desbois(a)codelutin.com>
- */
-public abstract class BaseModel implements Serializable {
-
- protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
-
- public void addPropertyChangeListener(PropertyChangeListener listener) {
- pcs.addPropertyChangeListener(listener);
- }
-
- public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
- pcs.addPropertyChangeListener(propertyName, listener);
- }
-
- public void removePropertyChangeListener(PropertyChangeListener listener) {
- pcs.removePropertyChangeListener(listener);
- }
-
- public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
- pcs.removePropertyChangeListener(propertyName, listener);
- }
-
- protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
- pcs.firePropertyChange(propertyName, oldValue, newValue);
- }
-
- protected void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue) {
- pcs.fireIndexedPropertyChange(propertyName, index, oldValue, newValue);
- }
-}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BetaLayerUI.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BetaLayerUI.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BetaLayerUI.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -35,12 +35,12 @@
/**
* Layer qui affiche "beta version".
- *
+ *
* @author chatellier
* @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
+ * <p/>
+ * Last update : $Date$
+ * By : $Author$
*/
public class BetaLayerUI extends AbstractLayerUI<JComponent> {
@@ -63,6 +63,6 @@
g2.translate(35, 20);
g2.setFont(new Font("Dialog", Font.BOLD, 16));
g2.setColor(Color.BLACK);
- g2.drawString("Beta version",10,10);
+ g2.drawString("Beta version", 10, 10);
}
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,6 +26,7 @@
title:SAMMOA;
defaultCloseOperation:{JFrame.DO_NOTHING_ON_CLOSE};
}
+
#menuFile {
text:"sammoa.menu.file";
toolTipText:"sammoa.menu.file.tip";
@@ -56,21 +57,25 @@
text:"sammoa.menu.showLogs";
toolTipText:"sammoa.menu.showLogs.tip";
}
+
#menuShowValidation {
text:"sammoa.menu.showValidation";
toolTipText:"sammoa.menu.showValidation.tip";
}
+
#menuHelp {
text:"sammoa.menu.help";
toolTipText:"sammoa.menu.help.tip";
mnemonic:E;
}
+
#menuHelpSite {
text:"sammoa.action.site";
toolTipText:"sammoa.action.site.tip";
actionIcon:"site";
mnemonic:S;
}
+
#menuHelpAbout {
text:"sammoa.action.about";
toolTipText:"sammoa.action.about.tip";
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -29,11 +29,8 @@
<import>
java.awt.BorderLayout
- java.awt.Dimension
- java.util.Locale
javax.swing.JFrame
org.jdesktop.swingx.JXTitledPanel
- fr.ulr.sammoa.ui.swing.flight.FlightUI
</import>
<MainUIHandler id='handler'
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -35,8 +35,9 @@
import fr.ulr.sammoa.ui.swing.flight.FlightUI;
import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
import fr.ulr.sammoa.ui.swing.home.HomeUI;
+import fr.ulr.sammoa.ui.swing.io.input.sammoa.ImportApplicationUI;
+import fr.ulr.sammoa.ui.swing.io.output.map.ExportMapUI;
import fr.ulr.sammoa.ui.swing.io.output.sammoa.ExportApplicationUI;
-import fr.ulr.sammoa.ui.swing.io.output.map.ExportMapUI;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.AboutPanel;
@@ -47,8 +48,11 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JComponent;
+import javax.swing.JOptionPane;
+import javax.swing.UIManager;
+import java.awt.BorderLayout;
+import java.awt.Desktop;
import java.io.File;
import java.net.URL;
@@ -63,13 +67,13 @@
public class MainUIHandler implements SammoaUIHandler {
private static final Logger logger = LoggerFactory.getLogger(MainUIHandler.class);
-
+
protected SammoaUIContext context;
protected MainUI ui;
protected JComponent currentBody;
-
+
protected MainUIHandler(SammoaUIContext context,
MainUI ui) {
this.context = context;
@@ -126,7 +130,7 @@
}
public void setScreen(SammoaScreen screen) {
-
+
if (screen.equals(ui.getScreen())) {
// do nothing
@@ -190,6 +194,12 @@
ui.getBody().setTitle(_("sammoa.title.exportApplication"));
ui.getBody().add(currentBody);
break;
+ case IMPORT_APPLICATION:
+ currentBody = new ImportApplicationUI(context);
+ context.getSwingSession().add(currentBody);
+ ui.getBody().setTitle(_("sammoa.title.importApplication"));
+ ui.getBody().add(currentBody);
+ break;
}
ui.setScreen(screen);
@@ -249,7 +259,7 @@
// categorie applications
helper.addCategory(n_("sammoa.config.category.applications"),
- n_("sammoa.config.category.applications.description"));
+ n_("sammoa.config.category.applications.description"));
helper.addOption(SammoaConfig.SammoaConfigOption.SYSTEM_ID);
helper.addOption(SammoaConfig.SammoaConfigOption.DATA_DIRECTORY);
@@ -269,18 +279,18 @@
// helper.setOptionCallBack("ui");
helper.registerCallBack("actions",
- n_("sammoa.action.reload.actions"),
- SwingUtil.createActionIcon("config"),
- new Runnable() {
+ n_("sammoa.action.reload.actions"),
+ SwingUtil.createActionIcon("config"),
+ new Runnable() {
- @Override
- public void run() {
- context.getFlightUIHandler().initActions();
- }
- });
+ @Override
+ public void run() {
+ context.getFlightUIHandler().initActions();
+ }
+ });
// categorie raccourcis
helper.addCategory(n_("sammoa.config.category.shortcuts"),
- n_("sammoa.config.category.shortcuts.description"));
+ n_("sammoa.config.category.shortcuts.description"));
helper.addOption(SammoaConfig.SammoaConfigOption.KEY_START);
helper.setOptionCallBack("actions");
helper.addOption(SammoaConfig.SammoaConfigOption.KEY_STOP);
@@ -304,24 +314,24 @@
// gps
helper.registerCallBack("gps",
- n_("sammoa.action.reload.gps"),
- SwingUtil.createActionIcon("config"),
- new Runnable() {
+ 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();
- try {
- flightUIHandler.getFlightController().openGpsDevice(gpsConfig);
- } catch (DeviceTechnicalException ex) {
- logger.error("Error on new GpsHandler", ex);
- SammoaUtil.showErrorMessage(ui, ex.getMessageWithCause());
- }
- }
- }
- });
+ @Override
+ public void run() {
+ FlightUIHandler flightUIHandler = context.getFlightUIHandler();
+ if (flightUIHandler != null) {
+ GpsConfig gpsConfig = context.getConfig().getGpsConfig();
+ try {
+ flightUIHandler.getFlightController().openGpsDevice(gpsConfig);
+ } catch (DeviceTechnicalException ex) {
+ logger.error("Error on new GpsHandler", ex);
+ SammoaUtil.showErrorMessage(ui, ex.getMessageWithCause());
+ }
+ }
+ }
+ });
helper.addCategory(n_("sammoa.config.category.gps"),
n_("sammoa.config.category.gps.description"));
helper.addOption(GpsConfig.GpsConfigOption.GPS_HANDLER,
@@ -352,7 +362,7 @@
helper.displayUI(ui, false);
}
- public void showHome() {
+ public void showHome() {
if (checkCurrentFlight(_("sammoa.confirmDialog.flightInProgress.message.showHome"))) {
setScreen(SammoaScreen.HOME);
}
@@ -363,7 +373,7 @@
ApplicationConfig applicationConfig = context.getConfig().getApplicationConfig();
String iconPath = applicationConfig.getOption("application.icon.path");
- String name="sammoa-ui-swing";
+ String name = "sammoa-ui-swing";
String licensePath = "META-INF/" + name + "-LICENSE.txt";
String thirdPartyPath = "META-INF/" + name + "-THIRD-PARTY.txt";
@@ -419,7 +429,7 @@
* progress. In this case, a confirm dialog is opened to display the
* given {@code message} at warning level. If the user accept, the
* response will be true.
- *
+ *
* @param message String message to display to user when flight is in progress
* @return true if the confirmation is Ok or no flight is in progress
*/
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -23,7 +23,7 @@
* #L%
*/
-import java.awt.*;
+import java.awt.Color;
/**
* Created: 16/07/12
@@ -31,13 +31,13 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public final class SammoaColors {
-
+
private SammoaColors() {
// class with statics doesn't need constructor
}
-
+
public static final Color ON_EFFORT_BACKGROUND_COLOR = Color.YELLOW;
-
+
public static final Color OBSERVER_PILOT_BACKGROUND_COLOR = Color.CYAN;
public static final Color CURRENT_TRANSECT_ROW_COLOR = Color.YELLOW;
@@ -46,18 +46,18 @@
public static final Color POSITION_RIGHT_COLOR = Color.GREEN;
- public static final Color NEXT_TRANSECT_ROW_COLOR = new Color(233,255,235);
+ public static final Color NEXT_TRANSECT_ROW_COLOR = new Color(233, 255, 235);
- public static final Color OBSERVATION_FOR_ROUTE_ROW_COLOR = new Color(233,255,235);
+ public static final Color OBSERVATION_FOR_ROUTE_ROW_COLOR = new Color(233, 255, 235);
- public static final Color ROUTE_NO_MODIFICATION_ROW_COLOR = new Color(255,233,233);
+ public static final Color ROUTE_NO_MODIFICATION_ROW_COLOR = new Color(255, 233, 233);
public static final Color FLIGHT_TRACKING_LINE_COLOR = Color.RED;
-
+
public static final Color TRANSECT_LINE_COLOR = new Color(102, 0, 255);
public static final Color TRANSECT_SELECT_LINE_COLOR = new Color(255, 126, 0);
- public static final Color TRANSECT_WITHOUT_GRAPHIC_BACKGROUND_COLOR = new Color(255,233,233);
-
+ public static final Color TRANSECT_WITHOUT_GRAPHIC_BACKGROUND_COLOR = new Color(255, 233, 233);
+
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -112,7 +112,7 @@
} else {
result += " - " + _("sammoa.flight.decorator.notEnded");
}
-
+
} else {
result += " - " + _("sammoa.flight.decorator.notStarted");
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -36,7 +36,11 @@
FLIGHT,
+ IMPORT_APPLICATION,
+
EXPORT_APPLICATION,
- EXPORT_MAP
+ EXPORT_MAP,
+
+ VALIDATION
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUI.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUI.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUI.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -31,6 +31,6 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public interface SammoaUI<H extends SammoaUIHandler> extends JAXXObject {
-
+
H getHandler();
}
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,10 @@
import com.google.common.base.Preconditions;
import fr.ulr.sammoa.application.SammoaConfig;
import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.application.SammoaService;
import fr.ulr.sammoa.application.flightController.FlightController;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
import org.nuiton.widget.SwingSession;
@@ -77,6 +80,10 @@
return context;
}
+ public <S extends SammoaService> S newService(Class<S> serviceType) {
+ return getAppContext().newService(serviceType);
+ }
+
public SammoaConfig getConfig() {
return context.getConfig();
}
@@ -128,31 +135,23 @@
return flightId;
}
- public void setFlightScreen(String flightId) {
- this.flightId = flightId;
- mainUIHandler.setScreen(SammoaScreen.FLIGHT);
+ public void changeScreen(SammoaScreen newScreen) {
+ changeScreen(newScreen, null, null);
}
- public void setCampaignScreen(String campaignId) {
- this.campaignId = campaignId;
- mainUIHandler.setScreen(SammoaScreen.CAMPAIGN);
+ public void changeScreen(SammoaScreen newScreen,
+ Campaign campaign,
+ Flight flight) {
+ if (campaign != null) {
+ this.campaignId = campaign.getTopiaId();
+ }
+ if (flight != null) {
+ this.flightId = flight.getTopiaId();
+ this.campaignId = flight.getCampaign().getTopiaId();
+ }
+ mainUIHandler.setScreen(newScreen);
}
- public void setHomeScreen() {
- mainUIHandler.setScreen(SammoaScreen.HOME);
- }
-
- public void setExportMapScreen(String campaignId) {
- this.campaignId = campaignId;
- mainUIHandler.setScreen(SammoaScreen.EXPORT_MAP);
- }
-
- public void setExportApplicationScreen(String campaignId, String flightId) {
- this.campaignId = campaignId;
- this.flightId = flightId;
- mainUIHandler.setScreen(SammoaScreen.EXPORT_APPLICATION);
- }
-
public void setStatusMessage(String message) {
mainUIHandler.getUI().getStatus().setStatus(message);
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -45,7 +45,7 @@
private static final Logger logger = LoggerFactory.getLogger(StartApp.class);
- public static void main(String[] args) {
+ public static void main(String... args) {
// Initialization of SammoaContext with configuration from sammoa.properties
SammoaConfig config = new SammoaConfig("sammoa.properties", args);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -24,6 +24,7 @@
#scrollPanel {
columnHeaderView:{errorTable.getTableHeader()};
}
+
#errorTable {
rowSelectionAllowed:true;
autoCreateRowSorter:true;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,11 +27,7 @@
<JScrollPane id='scrollPanel' constraints='BorderLayout.CENTER'>
<import>
-
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer
jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
</import>
<ValidationTableHandler id='handler' constructorParams='this'/>
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTableHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,8 +31,14 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.*;
-import java.awt.*;
+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 java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,7 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.*;
+import javax.swing.Action;
import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -28,7 +28,7 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.*;
+import javax.swing.Action;
import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,7 +26,7 @@
import fr.ulr.sammoa.persistence.Position;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
-import javax.swing.*;
+import javax.swing.Action;
import static org.nuiton.i18n.I18n._;
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -30,7 +30,9 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.*;
+import javax.swing.Action;
+import javax.swing.ImageIcon;
+import javax.swing.JComponent;
import java.awt.event.ActionEvent;
import java.util.List;
@@ -60,8 +62,8 @@
Observation observation = null;
Object source = e.getSource();
if (source instanceof JComponent) {
- JComponent comp = (JComponent)source;
- observation = (Observation)comp.getClientProperty(CLIENT_PROPERTY_OBSERVATION);
+ JComponent comp = (JComponent) source;
+ observation = (Observation) comp.getClientProperty(CLIENT_PROPERTY_OBSERVATION);
}
if (observation == null) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CloseAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CloseAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CloseAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -42,7 +42,7 @@
public class CloseAction extends AbstractAction {
private static final long serialVersionUID = 1L;
-
+
protected JComponent ui;
public CloseAction(JComponent ui) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,7 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.*;
+import javax.swing.Action;
import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,7 +26,7 @@
import fr.ulr.sammoa.persistence.Position;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
-import javax.swing.*;
+import javax.swing.Action;
import static org.nuiton.i18n.I18n._;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,7 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.*;
+import javax.swing.Action;
import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,8 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.*;
+import javax.swing.Action;
+import javax.swing.JComponent;
import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -39,7 +39,7 @@
private static final long serialVersionUID = 1L;
protected Position position;
-
+
public ObservationAction(String name, SammoaUIContext context, Position position) {
super(name, context);
this.position = position;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,7 +26,7 @@
import fr.ulr.sammoa.persistence.Position;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
-import javax.swing.*;
+import javax.swing.Action;
import static org.nuiton.i18n.I18n._;
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,7 +31,8 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
-import javax.swing.*;
+import javax.swing.AbstractAction;
+import javax.swing.Icon;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -74,7 +75,7 @@
protected FlightUIModel getModel() {
return context.getFlightUIHandler().getModel();
}
-
+
protected FlightState getFlightState() {
return getModel().getFlightState();
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,7 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.*;
+import javax.swing.Action;
import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,7 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.*;
+import javax.swing.Action;
import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -24,25 +24,30 @@
*/
FileEditor {
- acceptAllFileFilterUsed:false;
+ acceptAllFileFilterUsed:false;
+ directoryEnabled:false;
}
#campaignRegionLabel {
text:"sammoa.label.campaign.region";
}
+
#regionListModel{
elements:{getModel().getRegionReferential()};
selectedItem:{getModel().getRegion()};
}
+
#regionComboBox{
model:{regionListModel};
enabled:{!getModel().isUpdate()};
renderer:{new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
}
+
#editRegionButton {
enabled:{getModel().getRegion() != null};
text:"sammoa.action.edit";
}
+
#newRegionButton {
enabled:{!getModel().isUpdate()};
text:"sammoa.action.new";
@@ -51,6 +56,7 @@
#campaignCodeLabel {
text:"sammoa.label.campaign.code";
}
+
#campaignCodeField {
enabled:{!getModel().isUpdate()};
text:{getModel().getCode()};
@@ -59,6 +65,7 @@
#campaignNameLabel {
text:"sammoa.label.campaign.name";
}
+
#campaignNameField {
text:{getModel().getName()};
}
@@ -66,16 +73,20 @@
#campaignPeriodLabel {
text:"sammoa.label.campaign.period";
}
+
#campaignBeginDateLabel {
text:"sammoa.label.campaign.beginDate";
}
+
#beginDatePicker {
patternLayout:{_("sammoa.datePattern")};
date:{getModel().getBeginDate()};
}
+
#campaignEndDateLabel {
text:"sammoa.label.campaign.endDate";
}
+
#endDatePicker {
patternLayout:{_("sammoa.datePattern")};
date:{getModel().getEndDate()};
@@ -84,37 +95,38 @@
#campaignStrateLabel {
text:"sammoa.label.campaign.strate";
}
+
#strateFileEditor {
title:"sammoa.dialog.title.strateFile";
exts:"shp";
extsDescription:"Shape files";
- directoryEnabled:{false};
}
#campaignTransectLabel {
text:"sammoa.label.campaign.transect";
}
+
#transectFileEditor {
title:"sammoa.dialog.title.transectFile";
exts:"shp";
extsDescription:"Shape files";
- directoryEnabled:{false};
}
#campaignObserverLabel {
text:"sammoa.label.campaign.observer";
}
+
#observerFileEditor {
title:"sammoa.dialog.title.observerFile";
exts:"csv";
extsDescription:"CSV files";
- directoryEnabled:{false};
}
#saveButton {
text:"sammoa.action.save";
enabled:{validator.isValid()};
}
+
#cancelButton {
text:"sammoa.action.cancel";
}
@@ -124,6 +136,7 @@
height:200;
width:500;
}
+
#errorTable {
rowSelectionAllowed:true;
autoCreateRowSorter:true;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,9 +26,7 @@
implements='fr.ulr.sammoa.ui.swing.SammoaUI<CampaignUIHandler>'>
<import>
- fr.ulr.sammoa.application.flightController.FlightState
fr.ulr.sammoa.persistence.Region
- fr.ulr.sammoa.persistence.Campaign
fr.ulr.sammoa.ui.swing.SammoaUIContext
jaxx.runtime.swing.JAXXDatePicker
@@ -36,7 +34,6 @@
jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
jaxx.runtime.swing.editor.FileEditor
jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer
jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
static org.nuiton.i18n.I18n._
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -36,17 +36,17 @@
import fr.ulr.sammoa.persistence.Strate;
import fr.ulr.sammoa.persistence.Transect;
import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
+import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.io.input.CsvImporter;
+import fr.ulr.sammoa.ui.swing.io.input.UIImporter;
import fr.ulr.sammoa.ui.swing.region.RegionUI;
import fr.ulr.sammoa.ui.swing.region.RegionUIModel;
-import fr.ulr.sammoa.ui.swing.io.input.CsvImporter;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
-import fr.ulr.sammoa.ui.swing.io.input.UIImporter;
import jaxx.runtime.swing.ErrorDialogUI;
import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer;
import jaxx.runtime.validator.swing.SwingValidatorUtil;
-import org.nuiton.util.csv.ImportModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -76,11 +76,18 @@
protected final UIImporter uiImporter;
+ protected final ImportMapService importMapService;
+
+ protected final ImportCsvService importCsvService;
+
public CampaignUIHandler(SammoaUIContext context,
CampaignUI ui) {
this.context = context;
this.ui = ui;
this.uiImporter = new UIImporter(this.ui);
+
+ importMapService = context.newService(ImportMapService.class);
+ importCsvService = context.newService(ImportCsvService.class);
}
public SammoaUIContext getContext() {
@@ -194,7 +201,7 @@
);
}
- success &= uiImporter.importShape(strateImporter, strateFile, campaignStorage);
+ success &= uiImporter.importShape(strateImporter, campaignStorage, strateFile);
}
File transectFile = ui.getTransectFileEditor().getSelectedFile();
@@ -207,8 +214,8 @@
}
success &= uiImporter.importShape(transectImporter,
- transectFile,
- campaignStorage);
+ campaignStorage, transectFile
+ );
}
final File observerFile = ui.getObserverFileEditor().getSelectedFile();
@@ -236,7 +243,7 @@
}
public void close() {
- context.setHomeScreen();
+ context.changeScreen(SammoaScreen.HOME);
}
protected ComponentListener regionUIListener = new ComponentListener() {
@@ -292,51 +299,28 @@
@Override
public String importCsvFile(File file) throws IOException {
- ImportCsvService service = new ImportCsvService(context.getAppContext());
- int nbImported = service.importObservers(getModel().getId(), file);
+ int nbImported = importCsvService.importObservers(getModel().getId(), file);
return _("sammoa.messageDialog.observers.import.success", nbImported);
}
};
- protected ShpImporter<Strate> strateImporter = new ShpImporter<Strate>() {
+ protected ShpImporter<Strate> strateImporter = new ShpImporter<Strate>(new StrateImportModel(), "strates") {
protected String onDbfLoaded(Iterable<Strate> elements, CampaignStorage storage) {
- ImportMapService service = new ImportMapService(context.getAppContext());
- int nbImported = service.importStrates(storage.getCampaignId(), elements);
+ int nbImported = importMapService.importStrates(storage.getCampaignId(), elements);
return _("sammoa.messageDialog.strates.import.success", nbImported);
}
- @Override
- protected ImportModel<Strate> getModel() {
- return new StrateImportModel();
- }
-
- @Override
- protected String getCopyFileName() {
- return "strates";
- }
-
};
- protected ShpImporter<Transect> transectImporter = new ShpImporter<Transect>() {
+ protected ShpImporter<Transect> transectImporter = new ShpImporter<Transect>(new TransectImportModel(), "transects") {
@Override
protected String onDbfLoaded(Iterable<Transect> elements, CampaignStorage storage) {
- ImportMapService service = new ImportMapService(context.getAppContext());
- int nbImported = service.importTransects(storage.getCampaignId(), elements);
+ int nbImported = importMapService.importTransects(storage.getCampaignId(), elements);
return _("sammoa.messageDialog.transects.import.success", nbImported);
}
- @Override
- protected ImportModel<Transect> getModel() {
- return new TransectImportModel();
- }
-
- @Override
- protected String getCopyFileName() {
- return "transects";
- }
-
};
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,7 @@
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.CampaignImpl;
import fr.ulr.sammoa.persistence.Region;
-import fr.ulr.sammoa.ui.swing.BaseModel;
+import org.jdesktop.beans.AbstractSerializableBean;
import java.util.Date;
import java.util.List;
@@ -37,8 +37,8 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class CampaignUIModel extends BaseModel {
-
+public class CampaignUIModel extends AbstractSerializableBean {
+
public static final String PROPERTY_CAMPAIGN_REFERENTIAL = "campaignReferential";
public static final String PROPERTY_REGION_REFERENTIAL = "regionReferential";
@@ -56,21 +56,23 @@
public static final String PROPERTY_END_DATE = "endDate";
public static final String PROPERTY_UPDATE = "update";
-
+
+ private static final long serialVersionUID = 1L;
+
protected List<Campaign> campaignReferential;
protected List<Region> regionReferential;
-
+
protected String id;
-
+
protected String code;
-
+
protected String name;
-
+
protected Region region;
-
+
protected Date beginDate;
-
+
protected Date endDate;
protected boolean update;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/CurrentTransectHighlightPredicate.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/CurrentTransectHighlightPredicate.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/CurrentTransectHighlightPredicate.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,9 +26,7 @@
import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate;
-/**
- * @author sletellier <letellier(a)codelutin.com>
- */
+/** @author sletellier <letellier(a)codelutin.com> */
public class CurrentTransectHighlightPredicate extends AbstractRowHighlightPredicate {
protected TransectTableModel model;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/DeviceStateLED.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/DeviceStateLED.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/DeviceStateLED.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,12 +31,13 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.*;
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
/**
* Panel qui écoute l'état du peripherique pour afficher à l'utilsateur un voyant
* lunineux dépendant de l'état du peripherique.
- *
+ * <p/>
* Indicateurs pour l'état du peripherique
* <ul>
* <li>voyant gris : pas de peripherique
@@ -44,7 +45,7 @@
* <li>voyant vert : enregistrement en cours
* <li>voyant rouge clignotant : enregistrement mais pas de données
* </ul>
- *
+ *
* @author chatellier
*/
public class DeviceStateLED extends JLabel implements DeviceStateListener {
@@ -57,8 +58,11 @@
protected DeviceState state;
protected static final ImageIcon NO_DEVICE_ICON = Resource.getIcon("/icons/device/nodevice.png");
+
protected static final ImageIcon READY_ICON = Resource.getIcon("/icons/device/ready.png");
+
protected static final ImageIcon RECORDING_ICON = Resource.getIcon("/icons/device/recording.png");
+
protected static final ImageIcon NO_DATA_ICON = Resource.getIcon("/icons/device/nodata.gif");
@Override
@@ -73,7 +77,7 @@
if (oldValue != state) {
logger.debug("[{}] Update LED status: {}",
- getClass().getSimpleName(), state);
+ getClass().getSimpleName(), state);
switch (state) {
case NO_DEVICE:
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -22,49 +22,64 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+
#lblTime {
delay:1000;
pattern:"dd/MM/yyyy HH:mm:ss";
}
+
#beginButton {
_actionName: {"begin"};
}
+
#endButton {
_actionName: {"end"};
}
+
#nextButton {
_actionName: {"next"};
}
+
#effortButtonPanel {
background:{model.getEffortPanelColor()};
}
+
#statusPanel {
background:{model.getEffortPanelColor()};
}
+
#lblEffort {
text:{flightUIModel.getFlightState().name()};
}
+
#lblTransect {
text:{flightUIModel.getCurrentRoute().getTransectFlight().getTransect().getName()};
}
+
#lblStatus {
text:{flightUIModel.getCurrentRoute().getRouteType().name()};
}
+
#cbPanel {
background:{model.getEffortPanelColor()};
}
+
#gpsLED {
text:"sammoa.statusBar.gps";
}
+
#audioLED {
text:"sammoa.statusBar.audio";
}
+
#indicatorPanel {
background:{model.getEffortPanelColor()};
}
+
#lblAlt {
text:{model.getAlt()};
}
+
#lblSpeed {
text:{model.getSpeed()};
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -28,7 +28,6 @@
javax.swing.BoxLayout
javax.swing.SwingConstants
jaxx.runtime.swing.ClockWidget
- fr.ulr.sammoa.application.flightController.FlightState
</import>
<script><![CDATA[
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,20 +26,19 @@
import fr.ulr.sammoa.application.device.audio.AudioRecorder;
import fr.ulr.sammoa.application.device.gps.GpsHandler;
+import fr.ulr.sammoa.application.flightController.FlightController;
import fr.ulr.sammoa.application.flightController.FlightState;
import fr.ulr.sammoa.persistence.Route;
-import fr.ulr.sammoa.ui.swing.BaseHandler;
import fr.ulr.sammoa.ui.swing.SammoaColors;
+import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-/**
- * @author sletellier <letellier(a)codelutin.com>
- */
-public class FlightBarHandler extends BaseHandler implements PropertyChangeListener {
+/** @author sletellier <letellier(a)codelutin.com> */
+public class FlightBarHandler implements PropertyChangeListener {
private static final Logger logger = LoggerFactory.getLogger(FlightBarHandler.class);
@@ -53,6 +52,16 @@
return view.getModel();
}
+ @Deprecated
+ public FlightUIModel getFlightUIModel() {
+ return SammoaUIContext.getUIContext().getFlightUIHandler().getModel();
+ }
+
+ @Deprecated
+ public FlightController getFlightController() {
+ return SammoaUIContext.getUIContext().getFlightUIHandler().getFlightController();
+ }
+
public void init() {
getFlightUIModel().addPropertyChangeListener(this);
@@ -80,7 +89,7 @@
// si l'etat du vol passe en off effort
// affiche à l'utilisateur
- FlightState newState = (FlightState)evt.getNewValue();
+ FlightState newState = (FlightState) evt.getNewValue();
if (FlightState.OFF_EFFORT.equals(newState)) {
getModel().setEffortPanelColor(SammoaColors.ON_EFFORT_BACKGROUND_COLOR);
@@ -93,7 +102,7 @@
Route route = (Route) evt.getNewValue();
logger.debug("New value received for current route {}", route);
-
+
if (route == null || route.getTransectFlight() == null) {
// set null will hide label
view.getLblTransect().setText(null);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,21 +27,21 @@
import fr.ulr.sammoa.application.device.gps.GpsLocationEvent;
import fr.ulr.sammoa.application.device.gps.GpsLocationListener;
import fr.ulr.sammoa.persistence.GeoPoint;
-import fr.ulr.sammoa.ui.swing.BaseModel;
+import org.jdesktop.beans.AbstractSerializableBean;
-import java.awt.*;
+import java.awt.Color;
import static org.nuiton.i18n.I18n._;
-/**
- * @author sletellier <letellier(a)codelutin.com>
- */
-public class FlightBarModel extends BaseModel implements GpsLocationListener {
+/** @author sletellier <letellier(a)codelutin.com> */
+public class FlightBarModel extends AbstractSerializableBean implements GpsLocationListener {
private static final long serialVersionUID = 1L;
public static final String PROPERTY_ALT = "alt";
+
public static final String PROPERTY_SPEED = "speed";
+
public static final String PROPERTY_EFFORT_PANEL_COLOR = "effortPanelColor";
protected float alt;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -22,23 +22,28 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+
JSplitPane {
oneTouchExpandable: true;
continuousLayout: true;
dividerSize: 12;
}
+
#mainSplitPane {
orientation:{JSplitPane.VERTICAL_SPLIT};
resizeWeight:0.5;
}
+
#mapPanel {
minimumSize:{new Dimension(0,0)};
preferredSize:{new Dimension(0,0)};
}
+
#effortSplitPane {
orientation:{JSplitPane.VERTICAL_SPLIT};
resizeWeight:0.8;
}
+
#effortPanel {
minimumSize:{new Dimension(0,0)};
preferredSize:{new Dimension(0,0)};
@@ -52,6 +57,7 @@
#flightImmatriculationLabel {
text:"sammoa.label.flight.immatriculation";
}
+
#flightImmatriculationField {
text:{bean.getImmatriculation()};
}
@@ -63,6 +69,7 @@
#flightCommentLabel {
text:"sammoa.label.flight.comment";
}
+
#flightCommentArea {
text:{bean.getComment()};
}
@@ -70,9 +77,11 @@
#flightPeriodLabel {
text:"sammoa.label.flight.period";
}
+
#flightBeginDateLabel {
text:"sammoa.label.flight.beginDate";
}
+
#beginDatePicker {
patternLayout:{_("sammoa.dateTimePattern")};
showPopupButton:false;
@@ -83,6 +92,7 @@
#flightEndDateLabel {
text:"sammoa.label.flight.endDate";
}
+
#endDatePicker {
patternLayout:{_("sammoa.dateTimePattern")};
showPopupButton:false;
@@ -93,9 +103,11 @@
#observerLabel {
text:"sammoa.label.observers";
}
+
#observerListSelectorModel {
bean:{bean};
}
+
#observerSelector {
enabled:{model.getFlightState() == FlightState.WAITING};
renderer:{new ObserverListCellRenderer(listCellRenderer)};
@@ -105,24 +117,30 @@
#strateCombobox {
renderer:{new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())}
}
+
#transectLabel {
text:"sammoa.label.transects";
}
+
#transectSelectionModel {
selectionMode:{ListSelectionModel.MULTIPLE_INTERVAL_SELECTION};
}
+
#transectList {
model:{transectListModel};
selectionModel:{transectSelectionModel};
cellRenderer:{new TransectListCellRenderer(listCellRenderer)};
}
+
#transectNewButton {
text:"sammoa.action.new";
}
+
#transectAddButton {
actionIcon:"add";
enabled:{model.isTransectSelectionExists()}
}
+
#transectTable {
selectionModel:{transectFlightSelectionModel};
}
@@ -130,6 +148,7 @@
#startButton {
_actionName: {"start"};
}
+
#stopButton {
_actionName: {"stop"};
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -28,8 +28,6 @@
<import>
java.awt.BorderLayout
java.awt.Dimension
- java.util.Locale
- javax.swing.JFrame
javax.swing.ListSelectionModel
javax.swing.DefaultListSelectionModel
@@ -39,10 +37,8 @@
fr.ulr.sammoa.persistence.Flight
fr.ulr.sammoa.persistence.Observer
- fr.ulr.sammoa.persistence.Strate
fr.ulr.sammoa.application.flightController.FlightState
fr.ulr.sammoa.ui.swing.SammoaUIContext
- fr.ulr.sammoa.ui.swing.ValidationTable
fr.ulr.sammoa.ui.swing.observations.EffortPanel
</import>
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -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;
@@ -39,24 +43,54 @@
import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
-import com.google.common.collect.*;
+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.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
import fr.ulr.sammoa.application.SammoaConfig;
-import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.device.DeviceState;
import fr.ulr.sammoa.application.device.DeviceStateEvent;
import fr.ulr.sammoa.application.device.DeviceStateListener;
import fr.ulr.sammoa.application.device.DeviceTechnicalException;
import fr.ulr.sammoa.application.device.gps.GpsLocationEvent;
import fr.ulr.sammoa.application.device.gps.GpsLocationListener;
-import fr.ulr.sammoa.application.flightController.*;
-import fr.ulr.sammoa.persistence.*;
+import fr.ulr.sammoa.application.flightController.FlightController;
+import fr.ulr.sammoa.application.flightController.FlightControllerDefault;
+import fr.ulr.sammoa.application.flightController.FlightControllerListener;
+import fr.ulr.sammoa.application.flightController.FlightState;
+import fr.ulr.sammoa.application.flightController.ObservationEvent;
+import fr.ulr.sammoa.application.io.CampaignStorage;
+import fr.ulr.sammoa.application.io.CampaignStorages;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.GeoPoint;
+import fr.ulr.sammoa.persistence.GeoPoints;
+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.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.SammoaColors;
import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
-import fr.ulr.sammoa.ui.swing.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.BaseGeoPointLayer;
import fr.ulr.sammoa.ui.swing.flight.layer.LineGeoPointLayer;
import fr.ulr.sammoa.ui.swing.flight.layer.SimpleGeoPointLayer;
@@ -70,7 +104,15 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.*;
+import javax.swing.AbstractButton;
+import javax.swing.Action;
+import javax.swing.ActionMap;
+import javax.swing.InputMap;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComponent;
+import javax.swing.KeyStroke;
+import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
@@ -94,7 +136,7 @@
public class FlightUIHandler implements SammoaUIHandler, FlightControllerListener {
private static final Logger logger = LoggerFactory.getLogger(FlightUIHandler.class);
-
+
private static final TimeLog timeLog = new TimeLog(FlightUIHandler.class);
protected SammoaUIContext context;
@@ -111,37 +153,24 @@
protected BaseGeoPointLayer flightLayer;
- public FlightUIHandler(SammoaUIContext context,
- FlightUI ui) {
+ protected final FlightService flightService;
+
+ protected final ReferentialService referentialService;
+
+ public FlightUIHandler(SammoaUIContext context, FlightUI ui) {
this.context = context;
this.context.setFlightUIHandler(this);
this.ui = ui;
- }
+ ui.setContextValue(context);
- public SammoaConfig getConfig() {
- return context.getConfig();
+ flightService = context.newService(FlightService.class);
+ referentialService = context.newService(ReferentialService.class);
}
- public SammoaContext getAppContext() {
- return context.getAppContext();
- }
-
- public FlightUI getUI() {
- return ui;
- }
-
public FlightController getFlightController() {
return flightController;
}
- protected FlightService getFlightService() {
- return context.getAppContext().getFlightService();
- }
-
- protected ReferentialService getReferentialService() {
- return context.getAppContext().getReferentialService();
- }
-
public FlightUIModel getModel() {
return ui.getModel();
}
@@ -150,48 +179,40 @@
return context.getDecoratorProvider();
}
- public OverlayMapPanel getOverlayMapPanel() {
- return ui.getMapPanel();
- }
-
- public TransectUI getTransectUI() {
- return transectUi;
- }
-
@Override
public void beforeInitUI() {
-
+
long startTime = TimeLog.getTime();
-
+
String flightId = context.getFlightId();
// TODO-fdesbois-2012-07-19 : load all this data in the same transaction
// TODO-fdesbois-2012-07-19 : to avoid separated instances of same entities
// TODO-fdesbois-2012-07-19 : like ObserverPosition or use proper Model like TransectModel
- Flight flight = getFlightService().getFlight(flightId);
+ Flight flight = flightService.getFlight(flightId);
Preconditions.checkNotNull(flight);
Campaign campaign = flight.getCampaign();
List<Observer> referentialObservers =
- getReferentialService().getAllObservers(campaign);
- List<Observer> observers = getFlightService().getFlightObserverForPositions(flight);
- List<Observation> observations = getFlightService().getObservations(flight);
- List<Route> routes = getFlightService().getRoutes(flight);
+ referentialService.getAllObservers(campaign);
+ List<Observer> observers = flightService.getFlightObserverForPositions(flight);
+ List<Observation> observations = flightService.getObservations(flight);
+ List<Route> routes = flightService.getRoutes(flight);
List<GeoPoint> geoPoints =
- GeoPoints.retainsValidCoordinates(getFlightService().getFlightGeoPoints(flight));
+ GeoPoints.retainsValidCoordinates(flightService.getFlightGeoPoints(flight));
if (logger.isTraceEnabled()) {
for (GeoPoint geoPoint : geoPoints) {
logger.trace(String.format("GeoPoint={%1$tH:%1$tM:%1$tS,%2$f,%3$f}",
- geoPoint.getRecordTime(),
- geoPoint.getLatitude(),
- geoPoint.getLongitude())
+ geoPoint.getRecordTime(),
+ geoPoint.getLatitude(),
+ geoPoint.getLongitude())
);
}
}
-
-// List<Strate> strates = getReferentialService().getAllStrates(campaign);
- List<Transect> transects = getReferentialService().getAllTransects(campaign);
+// List<Strate> strates = referentialService.getAllStrates(campaign);
+ List<Transect> transects = referentialService.getAllTransects(campaign);
+
if (logger.isInfoEnabled()) {
logger.info(String.format("Init view with flight number '%d' [%s]",
flight.getFlightNumber(),
@@ -201,10 +222,10 @@
startTime = timeLog.log(startTime, "beforeInitUI", "entities are loaded");
- flightController = new FlightControllerDefault(getAppContext(), flight);
+ flightController = new FlightControllerDefault(context.getAppContext(), flight);
try {
- flightController.openGpsDevice(getConfig().getGpsConfig());
+ flightController.openGpsDevice(context.getConfig().getGpsConfig());
} catch (DeviceTechnicalException ex) {
logger.error("Error on GPS init", ex);
SammoaUtil.showErrorMessage(ui, ex.getMessageWithCause());
@@ -234,9 +255,9 @@
model.setObservations(observations);
model.setRoutes(routes);
model.setGeoPoints(geoPoints);
-
+
model.setStrates(prepareStrates(transects));
-
+
model.setTransectFlights(prepareTransectFlights(model, flight.getTransectFlight()));
model.setFlightState(flightController.getState());
@@ -249,7 +270,7 @@
uiStartTime = TimeLog.getTime();
}
-
+
protected List<StrateModel> prepareStrates(List<Transect> transects) {
long startTime = TimeLog.getTime();
@@ -274,13 +295,13 @@
List<StrateModel> result =
Ordering.natural().sortedCopy(strateMap.values());
-
+
result.add(0, strateAll);
-
+
timeLog.log(startTime, "prepareStrates");
return result;
}
-
+
protected List<TransectFlightModel> prepareTransectFlights(FlightUIModel model,
List<TransectFlight> transectFlights) {
long startTime = TimeLog.getTime();
@@ -288,15 +309,15 @@
Map<Transect, TransectModel> transectMap =
Maps.uniqueIndex(model.getTransects(),
TransectModel.toTransect());
-
+
List<TransectFlightModel> result = Lists.newArrayList();
for (TransectFlight transectFlight : transectFlights) {
Transect transect = transectFlight.getTransect();
TransectModel transectModel = transectMap.get(transect);
-
+
transectModel.setInFlight(true);
-
+
TransectFlightModel instance = new TransectFlightModel(model, transectFlight, transectModel);
instance.addPropertyChangeListener(transectFlightListener);
@@ -313,12 +334,12 @@
.toImmutableList();
Map<Transect, Long> transectRealNbTimes =
- getFlightService().getTransectRealNbTimes(transects);
-
+ flightService.getTransectRealNbTimes(transects);
+
for (Map.Entry<Transect, Long> entry : transectRealNbTimes.entrySet()) {
int realNbTimes = Objects.firstNonNull(entry.getValue(), 0).intValue();
-
+
TransectModel transectModel = transectMap.get(entry.getKey());
transectModel.setRealNbTimes(realNbTimes);
}
@@ -346,11 +367,10 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
Flight flight = (Flight) evt.getSource();
- FlightService flightService = getAppContext().getFlightService();
List<Observer> observers = flightService.getFlightObserverForPositions(flight);
getModel().setFlightObserverForPositions(observers);
}
- });
+ });
// Strate ComboBox
StrateModel strateAll = getModel().getStrateAll();
@@ -372,21 +392,19 @@
transectUi = new TransectUI(context);
- getTransectUI().addComponentListener(transectUIListener);
+ transectUi.addComponentListener(transectUIListener);
startTime = timeLog.log(startTime, "afterInitUI", "other simple stuff");
- initMapBean();
+ initMap();
- initMapHandler();
-
timeLog.log(startTime, "afterInitUI", "map is initialized");
}
@Override
public void onCloseUI() {
flightController.close();
- getTransectUI().removeComponentListener(transectUIListener);
+ transectUi.removeComponentListener(transectUIListener);
}
public ActionMap getActionMap() {
@@ -438,19 +456,19 @@
}
StrateModel oldSelection = getModel().getCurrentStrate();
-
+
if (oldSelection != null) {
for (TransectModel transect : oldSelection.getTransects()) {
transect.setInCurrentStrate(false);
}
}
-
- for (TransectModel transect : strate.getTransects()) {
+
+ for (TransectModel transect : strate.getTransects()) {
transect.setInCurrentStrate(true);
}
getModel().setCurrentStrate(strate);
-
+
ui.getTransectListModel().setStrateModel(strate);
}
@@ -465,16 +483,16 @@
// We keep currentStrate only if there is a defined source strate
StrateModel currentStrate;
- if (getModel().getCurrentStrate().getSource() != null) {
+ if (getModel().getCurrentStrate().getSource() != null) {
currentStrate = getModel().getCurrentStrate();
} else {
currentStrate = null;
}
- getTransectUI().getModel().prepareCreate(referential, currentStrate);
+ transectUi.getModel().prepareCreate(referential, currentStrate);
- getTransectUI().getHandler().openUI();
+ transectUi.getHandler().openUI();
}
/**
@@ -526,20 +544,20 @@
if (fromIndex == -1) {
// Add after the last row
fromIndex = table.getRowCount();
-
+
} else {
// Add after the selection
fromIndex++;
}
-
+
List<Transect> entities = FluentIterable.from(transects)
.transform(TransectModel.toTransect())
.toImmutableList();
// Execute add transects to create the new transectFlights
List<TransectFlight> transectFlights =
- getFlightService().addTransects(getModel().getFlight(), fromIndex, entities);
-
+ flightService.addTransects(getModel().getFlight(), fromIndex, entities);
+
List<TransectFlightModel> newTransectFlights =
prepareTransectFlights(getModel(), transectFlights);
@@ -548,11 +566,10 @@
int toIndex = fromIndex + newTransectFlights.size() - 1;
ui.getTransectTableModel().fireTableRowsInserted(fromIndex, toIndex);
-
-
+
// // Retrieve real nbTimes for each new transect
// Map<Transect, Long> transectRealNbTimes =
-// getFlightService().getTransectRealNbTimes(Lists.newArrayList(transects));
+// flightService.getTransectRealNbTimes(Lists.newArrayList(transects));
// getModel().putAllTransectRealNbTimes(transectRealNbTimes);
// Display the transects if flight is started
@@ -561,7 +578,7 @@
// }
}
}
-
+
public void selectTransects(ListSelectionEvent event) {
ListSelectionModel selectionModel = (ListSelectionModel) event.getSource();
@@ -573,28 +590,28 @@
? "all" : strateModel.getSource().getCode())
);
}
-
- for (int i = event.getFirstIndex() ; i <= event.getLastIndex() && i < strateModel.getTransects().size(); i++) {
+
+ for (int i = event.getFirstIndex(); i <= event.getLastIndex() && i < strateModel.getTransects().size(); i++) {
TransectModel model = strateModel.getTransects().get(i);
boolean selected = selectionModel.isSelectedIndex(i);
model.setSelectedInCurrentStrate(selected);
}
getModel().setTransectSelectionExists(!selectionModel.isSelectionEmpty());
}
-
+
public void selectTransectFlights(ListSelectionEvent event) {
ListSelectionModel selectionModel = (ListSelectionModel) event.getSource();
if (logger.isDebugEnabled()) {
- logger.debug(String.format("Select transectFlights",
- event.getFirstIndex())
- );
+ logger.debug("Select transectFlights {}", event.getFirstIndex());
}
-
- for (int i = event.getFirstIndex(); i <= event.getLastIndex() && i < getModel().getTransectFlights().size(); i++) {
-
+
+ for (int i = event.getFirstIndex(),
+ transectFlightsize = getModel().getTransectFlights().size();
+ i <= event.getLastIndex() && i < transectFlightsize; i++) {
+
TransectFlightModel model = getModel().getTransectFlights().get(i);
-
+
boolean selected = selectionModel.isSelectedIndex(i);
model.getTransect().setSelectedInFlight(selected);
}
@@ -636,7 +653,7 @@
*/
public static void initActions(ActionMap actionMap, JAXXObject jaxxObject, InputMap inputMap) {
for (Object object : jaxxObject.get$objectMap().values()) {
- if (jaxxObject!= object && object instanceof JAXXObject) {
+ if (jaxxObject != object && object instanceof JAXXObject) {
initActions(actionMap, (JAXXObject) object, inputMap);
}
if (object instanceof AbstractButton) {
@@ -666,10 +683,12 @@
return action;
}
- protected void initMapBean() {
+ protected void initMap() {
- MapBean mapBean = getOverlayMapPanel().getMapBean();
+ OverlayMapPanel overlayMapPanel = ui.getMapPanel();
+ MapBean mapBean = overlayMapPanel.getMapBean();
+
// Set background color to blue
// mapBean.setBackgroundColor(new Color(0x99b3cc));
@@ -680,12 +699,9 @@
// Set the map's scale
mapBean.setScale(20000000f);
- }
- protected void initMapHandler() {
+ MapHandler mapHandler = overlayMapPanel.getMapHandler();
- MapHandler mapHandler = getOverlayMapPanel().getMapHandler();
-
// Boilerplate code pour avoir, sur la carte, la barre d'outil
// la barre de zoom, le déplacement par la souris...
mapHandler.add(new LayerHandler());
@@ -696,8 +712,9 @@
mapHandler.add(new ToolPanel());
// BackgroundLayer
+ SammoaConfig config = context.getConfig();
{
- File backgroundShapeFile = getConfig().getBackgroundShapeFile();
+ File backgroundShapeFile = config.getBackgroundShapeFile();
if (backgroundShapeFile != null && backgroundShapeFile.exists()) {
Properties properties = new Properties();
@@ -715,11 +732,12 @@
}
String campaignId = getModel().getFlight().getCampaign().getTopiaId();
- File mapDirectory = new File(new File(new File(getConfig().getDataDirectory(), "campaign"), campaignId), "map");
+ CampaignStorage campaignStorage = CampaignStorages.getStorage(
+ config, campaignId);
// StrateLayer
{
- File file = new File(mapDirectory, "strates.shp");
+ File file = campaignStorage.getMapFile("strates.shp");
if (file.exists()) {
Properties properties = new Properties();
@@ -746,7 +764,7 @@
// TransectLayer
{
- File file = new File(mapDirectory, "transects.shp");
+ File file = campaignStorage.getMapFile("transects.shp");
if (file.exists()) {
Properties properties = new Properties();
@@ -826,7 +844,7 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
-
+
String propertyName = evt.getPropertyName();
// Listen index to fire the table
@@ -876,7 +894,7 @@
// Center the map on the location if mapFollow is activated
if (getModel() != null && getModel().isMapFollow()) {
- MapBean mapBean = getOverlayMapPanel().getMapBean();
+ MapBean mapBean = ui.getMapPanel().getMapBean();
LatLonPoint center = new LatLonPoint.Double(
location.getLatitude(), location.getLongitude());
mapBean.setCenter(center);
@@ -907,7 +925,7 @@
// On hide : retrieve the region saved and reset the region combo
- String transectId = getTransectUI().getModel().getId();
+ String transectId = transectUi.getModel().getId();
if (transectId == null) {
// nothing to do, no creation is done
@@ -918,7 +936,7 @@
logger.info(String.format("Retrieve from TransectUI the id = %s", transectId));
}
- Transect transectBean = getReferentialService().getTransect(transectId);
+ Transect transectBean = referentialService.getTransect(transectId);
StrateModel strate = Iterables.find(getModel().getStrates(), StrateModel.withStrate(transectBean.getStrate()));
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -34,10 +34,10 @@
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;
+import org.jdesktop.beans.AbstractSerializableBean;
-import javax.swing.*;
+import javax.swing.ActionMap;
import java.util.Collections;
import java.util.List;
@@ -46,7 +46,7 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class FlightUIModel extends BaseModel {
+public class FlightUIModel extends AbstractSerializableBean {
private static final long serialVersionUID = 1L;
@@ -123,13 +123,13 @@
/**
* La liste des observateurs du vol, sans les pilotes avec l'observateur null
- *
- * @since 0.3
+ *
+ * @since 0.3
*/
protected List<Observer> flightObserverForPositions;
-
+
// protected List<Transect> transects;
-
+
protected List<StrateModel> strates;
protected boolean transectSelectionExists;
@@ -137,7 +137,7 @@
protected StrateModel currentStrate;
protected boolean mapFollow;
-
+
protected List<TransectFlightModel> transectFlights;
protected List<GeoPoint> geoPoints;
@@ -214,7 +214,7 @@
}
return observations;
}
-
+
public int indexOfObservations(Observation observation) {
return getObservations().indexOf(observation);
}
@@ -231,24 +231,24 @@
setObservationEditBean(observation);
fireIndexedPropertyChange(PROPERTY_OBSERVATIONS, index, null, observation);
}
-
+
public List<Observation> getObservationsForRoute(Route route) {
-
+
List<Observation> result;
if (route == null) {
result = Collections.emptyList();
-
+
} else {
-
+
Route nextRoute = getNextRoute(route);
-
+
result = FluentIterable.from(getObservations())
.filter(Observations.inRoute(route, nextRoute))
.toImmutableList();
}
return result;
}
-
+
public Route getNextRoute(Route route) {
int routeIndex = indexOfRoutes(route);
@@ -262,7 +262,7 @@
} else {
result = null;
}
-
+
return result;
}
@@ -384,7 +384,7 @@
this.strates = strates;
firePropertyChange(PROPERTY_STRATES, oldValue, strates);
}
-
+
public List<TransectModel> getTransects() {
return getStrates().isEmpty()
? Lists.<TransectModel>newArrayList()
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/NextTransectHighlightPredicate.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/NextTransectHighlightPredicate.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/NextTransectHighlightPredicate.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,9 +26,7 @@
import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate;
-/**
- * @author sletellier <letellier(a)codelutin.com>
- */
+/** @author sletellier <letellier(a)codelutin.com> */
public class NextTransectHighlightPredicate extends AbstractRowHighlightPredicate {
protected TransectTableModel model;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListCellRenderer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListCellRenderer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListCellRenderer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -37,7 +37,7 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public class ObserverListCellRenderer implements ListCellRenderer {
-
+
protected ListCellRenderer delegate;
public ObserverListCellRenderer(ListCellRenderer delegate) {
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,13 +31,13 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-/**
- * @author sletellier <letellier(a)codelutin.com>
- */
+/** @author sletellier <letellier(a)codelutin.com> */
public class ObserverListSelectorModel extends ListSelectorModel<Observer> {
public static final String PROPERTY_BEAN = "bean";
+
protected FlightUIModel flightUIModel;
+
protected Flight bean;
public ObserverListSelectorModel(FlightUIModel flightUIModel) {
@@ -53,14 +53,14 @@
this.bean = bean;
if (bean != null) {
flightUIModel.addPropertyChangeListener(FlightUIModel.PROPERTY_OBSERVERS,
- new PropertyChangeListener() {
+ new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- setValues(flightUIModel.getObservers());
- setSelectedValues(Lists.newArrayList(getBean().getObserver()));
- }
- });
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ setValues(flightUIModel.getObservers());
+ setSelectedValues(Lists.newArrayList(getBean().getObserver()));
+ }
+ });
firePropertyChange(PROPERTY_BEAN, oldValue, bean);
setValues(flightUIModel.getObservers());
setSelectedValues(bean.getObserver());
@@ -78,7 +78,7 @@
// TODO sletellier 29062012 : genererate removeAll in topia
for (Object o : toModel.getSelectedValues()) {
- Observer observer = (Observer)o;
+ Observer observer = (Observer) o;
if (bean.getObserver().contains(observer)) {
bean.removeObserver(observer);
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -41,13 +41,14 @@
import java.beans.PropertyChangeListener;
import java.util.List;
-/**
- * @author sletellier <letellier(a)codelutin.com>
- */
+/** @author sletellier <letellier(a)codelutin.com> */
public class ObserverTableCellEditor extends AbstractCellEditor
- implements TableCellEditor, FocusListener {
+ implements TableCellEditor, FocusListener {
+ private static final long serialVersionUID = 1L;
+
protected DecoratorProviderListCellRenderer decoratorProviderListCellRenderer;
+
protected GenericListModel<Observer> model;
public ObserverTableCellEditor(FlightUIModel flightUIModel) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,7 +27,7 @@
import com.google.common.collect.Lists;
import fr.ulr.sammoa.persistence.Strate;
import fr.ulr.sammoa.persistence.Strates;
-import fr.ulr.sammoa.ui.swing.BaseModel;
+import org.jdesktop.beans.AbstractSerializableBean;
import java.util.List;
@@ -36,7 +36,7 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class StrateModel extends BaseModel implements Comparable<StrateModel> {
+public class StrateModel extends AbstractSerializableBean implements Comparable<StrateModel> {
private static final long serialVersionUID = 1L;
@@ -45,7 +45,7 @@
public static final String PROPERTY_TRANSECTS = "transects";
protected Strate source;
-
+
protected List<TransectModel> transects;
public StrateModel(Strate source) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -23,9 +23,9 @@
* #L%
*/
-import javax.swing.*;
+import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
-import java.awt.*;
+import java.awt.Component;
/**
* Created: 18/07/12
@@ -33,9 +33,9 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public class TransectCrossingNumberCellRenderer implements TableCellRenderer {
-
+
protected TableCellRenderer delegate;
-
+
protected TransectTableModel model;
public TransectCrossingNumberCellRenderer(TableCellRenderer delegate,
@@ -53,8 +53,8 @@
int crossingNumber = transectFlight.getCrossingNumber();
int realNbTimes = transect.getRealNbTimes();
- String newValue = crossingNumber + " (" + realNbTimes +")";
-
+ String newValue = crossingNumber + " (" + realNbTimes + ")";
+
return delegate.getTableCellRendererComponent(table, newValue, isSelected, hasFocus, row, column);
}
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,14 +31,14 @@
import fr.ulr.sammoa.persistence.ObserverPosition;
import fr.ulr.sammoa.persistence.Position;
import fr.ulr.sammoa.persistence.TransectFlight;
-import fr.ulr.sammoa.ui.swing.BaseModel;
+import org.jdesktop.beans.AbstractSerializableBean;
/**
* Created: 27/07/12
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class TransectFlightModel extends BaseModel {
+public class TransectFlightModel extends AbstractSerializableBean {
private static final long serialVersionUID = 1L;
@@ -51,17 +51,17 @@
public static final String PROPERTY_INDEX = "index";
public static final String PROPERTY_CROSSING_NUMBER = "crossingNumber";
-
+
protected FlightUIModel flightModel;
-
+
protected TransectFlight source;
-
+
protected TransectModel transect;
public TransectFlightModel(FlightUIModel flightModel,
- TransectFlight source,
+ TransectFlight source,
TransectModel transect) {
-
+
Preconditions.checkNotNull(flightModel);
Preconditions.checkNotNull(source);
Preconditions.checkNotNull(transect);
@@ -105,22 +105,22 @@
}
public void setIndex(int index) {
-
+
int oldValue = getIndex();
// Manage maxBound to avoid IndexOutOfBoundsException
if (index >= getFlight().getTransectFlight().size()) {
index = getFlight().getTransectFlight().size() - 1;
}
-
+
getFlight().getTransectFlight().remove(getSource());
// Use add on Flight to fire change
getFlight().addTransectFlight(index, getSource());
flightModel.getTransectFlights().remove(this);
-
+
flightModel.getTransectFlights().add(index, this);
firePropertyChange(PROPERTY_INDEX, oldValue, index);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListCellRenderer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListCellRenderer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListCellRenderer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,8 +26,9 @@
import com.google.common.base.Preconditions;
import fr.ulr.sammoa.ui.swing.SammoaColors;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+import java.awt.Component;
/**
* Created: 11/07/12
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -24,17 +24,9 @@
*/
package fr.ulr.sammoa.ui.swing.flight;
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.Iterables;
-import fr.ulr.sammoa.persistence.Transect;
import javax.swing.AbstractListModel;
-import javax.swing.DefaultListSelectionModel;
-import javax.swing.ListSelectionModel;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
/**
* Created: 12/06/12
@@ -70,7 +62,7 @@
public Iterable<TransectModel> getSelectedTransects() {
return Iterables.filter(getStrateModel().getTransects(), TransectModel.selectedInCurrentStrate());
}
-
+
@Override
public int getSize() {
return strateModel != null ? strateModel.getTransects().size() : 0;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,19 +27,19 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import fr.ulr.sammoa.persistence.Transect;
-import fr.ulr.sammoa.ui.swing.BaseModel;
+import org.jdesktop.beans.AbstractSerializableBean;
/**
* Created: 26/07/12
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class TransectModel extends BaseModel {
+public class TransectModel extends AbstractSerializableBean {
private static final long serialVersionUID = 1L;
-
+
public static final String PROPERTY_SOURCE = "source";
-
+
public static final String PROPERTY_IN_CURRENT_STRATE = "inCurrentStrate";
public static final String PROPERTY_SELECTED_IN_CURRENT_STRATE = "selectedInCurrentStrate";
@@ -47,19 +47,19 @@
public static final String PROPERTY_IN_FLIGHT = "inFlight";
public static final String PROPERTY_SELECTED_IN_FLIGHT = "selectedInFlight";
-
+
public static final String PROPERTY_REAL_NB_TIMES = "realNbTimes";
protected Transect source;
protected boolean inCurrentStrate;
-
+
protected boolean selectedInCurrentStrate;
-
+
protected boolean inFlight;
-
+
protected boolean selectedInFlight;
-
+
protected int realNbTimes;
public TransectModel(Transect source) {
@@ -140,10 +140,10 @@
}
};
}
-
+
public static Function<TransectModel, Transect> toTransect() {
return new Function<TransectModel, Transect>() {
-
+
@Override
public Transect apply(TransectModel input) {
return input.getSource();
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -24,8 +24,12 @@
package fr.ulr.sammoa.ui.swing.flight;
import com.google.common.collect.Lists;
+import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.Observer;
+import fr.ulr.sammoa.persistence.Route;
+import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.ui.swing.SammoaColors;
+import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.action.NextTransectAction;
import fr.ulr.sammoa.ui.swing.util.ColorTableCellRenderer;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
@@ -35,30 +39,41 @@
import jaxx.runtime.swing.renderer.DecoratorProviderTableCellRenderer;
import org.jdesktop.swingx.JXTable;
import org.nuiton.util.decorator.DecoratorProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import javax.swing.*;
+import javax.swing.AbstractCellEditor;
+import javax.swing.Action;
+import javax.swing.ActionMap;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
-import java.awt.*;
+import java.awt.Component;
+import java.beans.IndexedPropertyChangeEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.List;
/**
- * Created: 15/06/12
+ * Created: 15/06/12.
+ * <p/>
+ * TODO tchemit-2012-08-14 Remove this object, use a simple JTXTable and put
+ * TODO tchemit-2012-08-14 all the init code in handler.
*
* @author fdesbois <desbois(a)codelutin.com>
*/
public class TransectTable extends JXTable {
- private static final Logger logger = LoggerFactory.getLogger(TransectTable.class);
+ private static final long serialVersionUID = 1L;
+// private static final Logger logger = LoggerFactory.getLogger(TransectTable.class);
+
// protected static final ImageIcon ACTION_ICON = Resource.getIcon("/icons/action-next-transect.png");
-
- protected TransectTableHandler handler;
+// protected TransectTableHandler handler;
+
protected List<JButton> actionButtons;
public TransectTable(TransectTableModel model,
@@ -77,7 +92,7 @@
SammoaColors.NEXT_TRANSECT_ROW_COLOR)
);
- this.handler = new TransectTableHandler(this);
+// this.handler = new TransectTableHandler(this);
setSortable(false);
@@ -111,20 +126,57 @@
addActionButton(i);
}
- handler.init();
+// handler.init();
+
+ PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ String propertyName = evt.getPropertyName();
+
+ if (FlightUIModel.PROPERTY_CURRENT_ROUTE.equals(propertyName)) {
+
+ onCurrentRouteChanged(
+ (Route) evt.getOldValue(), (Route) evt.getNewValue());
+
+ } else if (FlightUIModel.PROPERTY_NEXT_TRANSECT.equals(propertyName)) {
+
+ onNextTransectChanged(
+ (TransectFlight) evt.getOldValue(), (TransectFlight) evt.getNewValue());
+
+// } else if (Flight.PROPERTY_TRANSECT_FLIGHT.equals(propertyName)) {
+//
+// IndexedPropertyChangeEvent indexedEvent = (IndexedPropertyChangeEvent) evt;
+// onFlightTransectsAdded(indexedEvent);
+
+ } else if (Flight.PROPERTY_OBSERVER.equals(propertyName)) {
+
+ IndexedPropertyChangeEvent indexedEvent = (IndexedPropertyChangeEvent) evt;
+ onFlightObserversChanged(indexedEvent);
+ }
+ }
+ };
+
+ Flight flight = getModel().getFlight();
+ if (flight != null) {
+
+ flight.addPropertyChangeListener(Flight.PROPERTY_TRANSECT_FLIGHT, propertyChangeListener);
+ flight.addPropertyChangeListener(Flight.PROPERTY_OBSERVER, propertyChangeListener);
+ }
+
+ SammoaUIContext.getUIContext().getFlightUIHandler().getModel().addPropertyChangeListener(propertyChangeListener);
}
-
- public TransectTableHandler getHandler() {
- return handler;
- }
-
+
+// public TransectTableHandler getHandler() {
+// return handler;
+// }
+
public List<JButton> getActionButtons() {
if (actionButtons == null) {
actionButtons = Lists.newArrayList();
}
return actionButtons;
}
-
+
public int getLastSelectedRow() {
int result;
int nbRows = getSelectedRows().length;
@@ -137,7 +189,7 @@
}
return result;
}
-
+
@Override
public TransectTableModel getModel() {
return (TransectTableModel) super.getModel();
@@ -156,9 +208,9 @@
super.tableChanged(e);
}
-
+
public JButton addActionButton(int index) {
-
+
JButton result = new JButton();
// use client property used in Action to retrieve the correct transect
@@ -208,11 +260,13 @@
TableColumn column = getColumn(TransectTableModel.TransectColumn.POSITION_RIGHT.ordinal());
column.setHeaderRenderer(new ColorTableCellRenderer(defaultRenderer, SammoaColors.POSITION_RIGHT_COLOR));
}
- }
+ }
public class TransectBooleanTableCell extends AbstractCellEditor
implements TableCellRenderer, TableCellEditor {
+ private static final long serialVersionUID = 1L;
+
protected BooleanCellEditor delegateEditor;
public TransectBooleanTableCell(TableCellRenderer cellRenderer) {
@@ -227,25 +281,26 @@
int row,
int column) {
- TransectTableModel.TransectColumn transectColumn =
+ TransectTableModel.TransectColumn transectColumn =
TransectTableModel.TransectColumn.valueOf(column);
+ Component result = null;
switch (transectColumn) {
case DELETED:
JComponent render = (JComponent) delegateEditor.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
- return render;
-
+ result = render;
+ break;
case ACTION:
JButton button = getActionButtons().get(row);
button.setEnabled((Boolean) value);
- return button;
+ result = button;
default:
}
- return null;
+ return result;
}
@@ -255,20 +310,21 @@
TransectTableModel.TransectColumn transectColumn =
TransectTableModel.TransectColumn.valueOf(column);
+ Component result = null;
switch (transectColumn) {
case DELETED:
- return delegateEditor.getTableCellEditorComponent(
+ result = delegateEditor.getTableCellEditorComponent(
table, value, isSelected, row, column);
-
+ break;
case ACTION:
JButton button = getActionButtons().get(row);
button.setEnabled((Boolean) value);
- return button;
+ result = button;
default:
}
- return null;
+ return result;
}
@Override
@@ -276,4 +332,57 @@
return delegateEditor.getCellEditorValue();
}
}
+
+ public void onCurrentRouteChanged(Route oldValue, Route newValue) {
+
+ // Change of flight route status : begin, add, cb, end
+
+ if (oldValue != null) {
+ TransectFlight transect = oldValue.getTransectFlight();
+ if (transect != null) {
+ updateTransectRow(transect);
+ }
+ }
+ if (newValue != null) {
+ TransectFlight transect = newValue.getTransectFlight();
+ if (transect != null) {
+ updateTransectRow(transect);
+ }
+ }
+ }
+
+ public void onNextTransectChanged(TransectFlight oldValue, TransectFlight newValue) {
+
+ if (oldValue != null) {
+ updateTransectRow(oldValue);
+ }
+ if (newValue != null) {
+ updateTransectRow(newValue);
+ }
+ }
+
+// public void onFlightTransectsAdded(IndexedPropertyChangeEvent evt) {
+//
+// int index = evt.getIndex();
+//
+// getModel().fireTableRowsInserted(index, index);
+// }
+
+ public void onFlightObserversChanged(IndexedPropertyChangeEvent evt) {
+
+ // Refresh all the table if some observer is removed (index = old collection size)
+ int oldSize = evt.getIndex();
+ int currentSize = getModel().getFlight().sizeObserver();
+
+ if (currentSize < oldSize) {
+ getModel().fireTableDataChanged();
+ }
+ }
+
+ protected void updateTransectRow(TransectFlight transectFlight) {
+
+ int index = getModel().getTransectFlightModel(transectFlight).getIndex();
+
+ getModel().fireTableRowsUpdated(index, index);
+ }
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableHandler.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,7 +26,7 @@
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.Route;
import fr.ulr.sammoa.persistence.TransectFlight;
-import fr.ulr.sammoa.ui.swing.BaseHandler;
+import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import java.beans.IndexedPropertyChangeEvent;
import java.beans.PropertyChangeEvent;
@@ -34,17 +34,25 @@
/**
* Created: 18/06/12
+ * FIXME tchemit-2012-08-14 Remove this handler
*
* @author fdesbois <desbois(a)codelutin.com>
+ * @deprecated I will remove this before release 0.6
*/
-public class TransectTableHandler extends BaseHandler implements PropertyChangeListener {
-
+@Deprecated
+public class TransectTableHandler implements PropertyChangeListener {
+
protected TransectTable view;
public TransectTableHandler(TransectTable view) {
this.view = view;
}
-
+
+ @Deprecated
+ public FlightUIModel getFlightUIModel() {
+ return SammoaUIContext.getUIContext().getFlightUIHandler().getModel();
+ }
+
public void init() {
getFlightUIModel().addPropertyChangeListener(this);
@@ -54,14 +62,14 @@
flight.addPropertyChangeListener(Flight.PROPERTY_OBSERVER, this);
}
}
-
+
public TransectTableModel getModel() {
return view.getModel();
}
@Override
public void propertyChange(PropertyChangeEvent evt) {
-
+
String propertyName = evt.getPropertyName();
if (FlightUIModel.PROPERTY_CURRENT_ROUTE.equals(propertyName)) {
@@ -96,7 +104,7 @@
//
// getModel().fireTableDataChanged();
// }
-
+
public void onCurrentRouteChanged(Route oldValue, Route newValue) {
// Change of flight route status : begin, add, cb, end
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -36,19 +36,17 @@
import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
-import javax.swing.*;
+import javax.swing.SwingUtilities;
import javax.swing.table.AbstractTableModel;
import java.util.List;
import static org.nuiton.i18n.I18n._;
-/**
- * @author sletellier <letellier(a)codelutin.com>
- */
+/** @author sletellier <letellier(a)codelutin.com> */
public class TransectTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
-
+
protected FlightUIModel reference;
public TransectTableModel(FlightUIModel reference) {
@@ -71,16 +69,16 @@
public TransectFlight getNextTransect() {
return reference.getNextTransect();
}
-
+
@Deprecated
public TransectFlightModel getTransectFlightModel(final TransectFlight transectFlight) {
TransectFlightModel result = Iterables.find(getTransectFlights(), new Predicate<TransectFlightModel>() {
-
+
@Override
public boolean apply(TransectFlightModel input) {
return input.getSource().equals(transectFlight);
}
- });
+ });
return result;
}
@@ -91,7 +89,7 @@
public TransectFlightModel getRow(int index) {
return getTransectFlights().get(index);
}
-
+
// public int getRowIndex(TransectFlightModel transectFlight) {
// return Iterables.indexOf(getTransectFlights(), Predicates.equalTo(transectFlight));
// }
@@ -142,6 +140,7 @@
static class UpdateRowRunnable implements Runnable {
protected int rowIndex;
+
protected TransectTableModel model;
UpdateRowRunnable(TransectTableModel model, int rowIndex) {
@@ -163,7 +162,7 @@
Integer.class,
TransectFlightModel.PROPERTY_INDEX
) {
-
+
// @Override
// public Object getValue(int index, TransectFlightModel bean) {
// return index;
@@ -200,7 +199,7 @@
public void setValue(TransectFlightModel bean, Object value, TransectTableModel model) {
bean.setObserverByPosition(Position.NAVIGATOR, (Observer) value);
}
-
+
@Override
public Object getValue(int index, TransectFlightModel bean) {
ObserverPosition position =
@@ -265,7 +264,7 @@
int.class,
TransectFlightModel.PROPERTY_CROSSING_NUMBER
),
-// NB_TIMES(
+ // NB_TIMES(
// _("sammoa.flightPanel.table.column.nbTimes"),
// true,
// Integer.class,
@@ -284,7 +283,6 @@
true,
Boolean.class
) {
-
@Override
public Object getValue(int index, TransectFlightModel bean) {
// Action is available if bean is not deleted
@@ -311,9 +309,9 @@
}
private TransectColumn(String label,
- boolean editable,
- Class<?> type,
- String... beanProperties) {
+ boolean editable,
+ Class<?> type,
+ String... beanProperties) {
this.label = label;
this.editable = editable;
this.type = type;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/BaseGeoPointLayer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/BaseGeoPointLayer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/BaseGeoPointLayer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -39,6 +39,8 @@
*/
public abstract class BaseGeoPointLayer extends OMGraphicHandlerLayer {
+ private static final long serialVersionUID = 1L;
+
protected DrawingAttributes drawingAttributes = DrawingAttributes.getDefaultClone();
public void setGeoPoints(List<GeoPoint> geoPoints) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/LineGeoPointLayer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/LineGeoPointLayer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/LineGeoPointLayer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -37,6 +37,8 @@
*/
public class LineGeoPointLayer extends BaseGeoPointLayer {
+ private static final long serialVersionUID = 1L;
+
@Override
protected OMGraphic newGraphic(GeoPoint geoPoint) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/SimpleGeoPointLayer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/SimpleGeoPointLayer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/SimpleGeoPointLayer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -33,6 +33,8 @@
*/
public class SimpleGeoPointLayer extends BaseGeoPointLayer {
+ private static final long serialVersionUID = 1L;
+
@Override
protected OMPoint newGraphic(GeoPoint geoPoint) {
OMPoint result = new OMPoint(geoPoint.getLatitude(), geoPoint.getLongitude());
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/TransectLayer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/TransectLayer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/TransectLayer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -36,7 +36,7 @@
import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
import fr.ulr.sammoa.ui.swing.flight.TransectModel;
-import java.awt.*;
+import java.awt.Color;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -47,6 +47,8 @@
*/
public class TransectLayer extends PlugInLayer implements PropertyChangeListener {
+ private static final long serialVersionUID = 1L;
+
protected FlightUIModel model;
public void init(FlightUIModel model) {
@@ -89,11 +91,11 @@
}
@Override
- public void propertyChange(PropertyChangeEvent evt) {
-
+ public void propertyChange(PropertyChangeEvent evt) {
+
String propertyName = evt.getPropertyName();
- if (TransectModel.PROPERTY_IN_CURRENT_STRATE.equals(propertyName)
+ if (TransectModel.PROPERTY_IN_CURRENT_STRATE.equals(propertyName)
|| TransectModel.PROPERTY_IN_FLIGHT.equals(propertyName)) {
TransectModel transect = (TransectModel) evt.getSource();
@@ -117,7 +119,7 @@
Integer graphicIndex = transect.getSource().getGraphicIndex();
if (graphicIndex != null) {
-
+
OMGraphic graphic = getEsriGraphicList().get(graphicIndex);
boolean visible = checkVisible(transect, getModel().getFlightState(), graphic);
@@ -137,9 +139,9 @@
graphic.regenerate(getProjection());
repaint();
}
-
- } else if (TransectModel.PROPERTY_SELECTED_IN_FLIGHT.equals(propertyName)) {
+ } else if (TransectModel.PROPERTY_SELECTED_IN_FLIGHT.equals(propertyName)) {
+
TransectModel transect = (TransectModel) evt.getSource();
Integer graphicIndex = transect.getSource().getGraphicIndex();
@@ -154,22 +156,22 @@
graphic.regenerate(getProjection());
repaint();
}
-
+
} else if (FlightUIModel.PROPERTY_FLIGHT_STATE.equals(propertyName)) {
FlightState oldState = (FlightState) evt.getOldValue();
FlightState newState = (FlightState) evt.getNewValue();
-
+
if (oldState == FlightState.WAITING || newState == FlightState.WAITING) {
ensureVisible();
}
-
+
} else if (FlightUIModel.PROPERTY_CURRENT_ROUTE.equals(propertyName)) {
Route oldValue = (Route) evt.getOldValue();
Route newValue = (Route) evt.getNewValue();
-
+
if (oldValue != null && oldValue.getTransectFlight() != null) {
updateLineColor(oldValue.getTransectFlight().getTransect(), null);
}
@@ -192,18 +194,18 @@
repaint();
}
}
-
+
protected boolean checkVisible(TransectModel transect, FlightState flightState, OMGraphic graphic) {
- boolean result = transect.isInFlight()
- || transect.isSelectedInCurrentStrate()
- || (transect.isInCurrentStrate() && flightState == FlightState.WAITING);
-
+ boolean result = transect.isInFlight()
+ || transect.isSelectedInCurrentStrate()
+ || (transect.isInCurrentStrate() && flightState == FlightState.WAITING);
+
graphic.setVisible(result);
-
+
return result;
}
-
+
protected void updateLineColor(Transect transect, Color colorChanged) {
Integer graphicIndex = transect.getGraphicIndex();
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,6 +26,7 @@
#campaignLabel {
text: "sammoa.label.campaign";
}
+
#campaignCombobox {
model: {campaignListModel};
renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
@@ -34,6 +35,7 @@
#systemIdLabel {
text: "sammoa.label.systemId";
}
+
#systemIdCombobox {
enabled: {getModel().getCampaign() != null};
model: {systemIdListModel};
@@ -42,6 +44,7 @@
#flightLabel {
text: "sammoa.label.flight";
}
+
#flightCombobox {
enabled: {getModel().getCampaign() != null};
model: {flightListModel};
@@ -52,13 +55,13 @@
enabled: {getModel().getCampaign() != null};
text: "sammoa.action.edit";
}
+
#newCampaignButton {
text: "sammoa.action.new";
}
-#importButton {
- enabled:false;
- text: "sammoa.action.import";
+#importApplicationButton {
+ text: "sammoa.action.importApplication";
}
#exportMapButton {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -54,14 +54,11 @@
<HomeUIModel id='model'/>
- <GenericListModel id='campaignListModel'
- genericType='Campaign'/>
+ <GenericListModel id='campaignListModel' genericType='Campaign'/>
- <GenericListModel id='systemIdListModel'
- genericType='String'/>
+ <GenericListModel id='systemIdListModel' genericType='String'/>
- <GenericListModel id='flightListModel'
- genericType='Flight'/>
+ <GenericListModel id='flightListModel' genericType='Flight'/>
<Table fill='both' constraints='BorderLayout.CENTER'>
<row>
@@ -102,8 +99,8 @@
<row>
<cell fill='both' columns='3'>
<JPanel layout='{new GridLayout(1,0,0,0)}'>
- <JButton id='importButton'
- onActionPerformed='getHandler().showImport()'/>
+ <JButton id='importApplicationButton'
+ onActionPerformed='getHandler().showImportApplication()'/>
<JButton id='exportMapButton'
onActionPerformed='getHandler().showExportMap()'/>
<JButton id='exportApplicationButton'
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -35,6 +35,7 @@
import fr.ulr.sammoa.persistence.Flights;
import fr.ulr.sammoa.persistence.HasTopiaIdPredicate;
import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
+import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
import org.slf4j.Logger;
@@ -252,33 +253,26 @@
public void showSelectedCampaign() {
Campaign campaign = getModel().getCampaign();
-
- context.setCampaignScreen(campaign.getTopiaId());
+ context.changeScreen(SammoaScreen.CAMPAIGN, campaign, null);
}
public void showNewCampaign() {
-
- context.setCampaignScreen(null);
+ context.changeScreen(SammoaScreen.CAMPAIGN);
}
- public void showImport() {
-
+ public void showImportApplication() {
+ context.changeScreen(SammoaScreen.IMPORT_APPLICATION);
}
public void showExportMap() {
-
Campaign campaign = getModel().getCampaign();
- String campaignId = campaign == null ? null : campaign.getTopiaId();
- context.setExportMapScreen(campaignId);
+ context.changeScreen(SammoaScreen.EXPORT_MAP, campaign, null);
}
public void showExportApplication() {
-
Campaign campaign = getModel().getCampaign();
- String campaignId = campaign == null ? null : campaign.getTopiaId();
Flight flight = getModel().getFlight();
- String flightId = flight == null ? null : flight.getTopiaId();
- context.setExportApplicationScreen(campaignId, flightId);
+ context.changeScreen(SammoaScreen.EXPORT_APPLICATION, campaign, flight);
}
public void showOnBoard() {
@@ -290,17 +284,18 @@
Flight flight = getModel().getFlight();
- // Create a new Flight for the selected Campaign
if (flight == null) {
+ // Create a new Flight for the selected Campaign
flight = getFlightService().createFlight(campaign);
}
-
- context.setFlightScreen(flight.getTopiaId());
+ context.changeScreen(SammoaScreen.FLIGHT, campaign, flight);
}
public void showValidation() {
-
+ Campaign campaign = getModel().getCampaign();
+ Flight flight = getModel().getFlight();
+ context.changeScreen(SammoaScreen.VALIDATION, campaign, flight);
}
protected Flight getFirstFlight(List<Flight> flights) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -25,15 +25,17 @@
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
-import fr.ulr.sammoa.ui.swing.BaseModel;
+import org.jdesktop.beans.AbstractSerializableBean;
/**
* Created: 19/07/12
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class HomeUIModel extends BaseModel {
-
+public class HomeUIModel extends AbstractSerializableBean {
+
+ private static final long serialVersionUID = 1L;
+
public static final String PROPERTY_CAMPAIGN = "campaign";
public static final String PROPERTY_SYSTEM_ID = "systemId";
@@ -41,13 +43,13 @@
public static final String PROPERTY_FLIGHT = "flight";
public static final String PROPERTY_FLIGHT_ENDED = "flightEnded";
-
+
protected Campaign campaign;
-
+
protected String systemId;
-
+
protected Flight flight;
-
+
protected boolean flightEnded;
public Campaign getCampaign() {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/UIImporter.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/UIImporter.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/UIImporter.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -54,7 +54,9 @@
this.ui = ui;
}
- public boolean importShape(ShpImporter<?> importer, File file, CampaignStorage storage) {
+ public boolean importShape(ShpImporter<?> importer,
+ CampaignStorage storage,
+ File file) {
boolean result = false;
try {
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,5 @@
+/**
+ * Base package for all input operations (says all imports).
+ * @since 0.6
+ */
+package fr.ulr.sammoa.ui.swing.io.input;
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java
___________________________________________________________________
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/input/sammoa/ImportApplicationUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,19 @@
+#importFileLbl {
+ text: "sammoa.label.importApplicationFile";
+}
+
+#importFileEditor {
+ title: "sammoa.dialog.title.importSammoaFile";
+ exts: "sammoa";
+ extsDescription: "Sammoa files";
+ directoryEnabled:false;
+ acceptAllFileFilterUsed:false;
+}
+
+#quitButton {
+ text: "sammoa.action.quitImportApplication";
+}
+
+#importButton {
+ text: "sammoa.action.importApplication";
+}
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.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/input/sammoa/ImportApplicationUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,81 @@
+<!--
+ #%L
+ SAMMOA :: UI Swing
+ $Id: ExportApplicationUI.jaxx 414 2012-08-13 22:12:51Z tchemit $
+ $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/ja… $
+ %%
+ Copyright (C) 2012 UMS 3462, Code Lutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<JPanel id='importApplicationUI' layout='{new BorderLayout()}'
+ implements='fr.ulr.sammoa.ui.swing.SammoaUI<ImportApplicationUIHandler>'>
+
+ <import>
+ fr.ulr.sammoa.persistence.Campaign
+ fr.ulr.sammoa.persistence.Flight
+ fr.ulr.sammoa.ui.swing.SammoaUIContext
+
+ jaxx.runtime.swing.editor.FileEditor
+
+ java.awt.BorderLayout
+
+ static org.nuiton.i18n.I18n._
+ </import>
+
+ <script><![CDATA[
+
+ public ImportApplicationUI(SammoaUIContext context) {
+ ImportApplicationUIHandler handler =
+ new ImportApplicationUIHandler(context, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+ }
+
+ protected void $afterCompleteSetup() {
+ getHandler().afterInitUI();
+ }
+ ]]></script>
+
+ <ImportApplicationUIModel id='model'
+ initializer='getContextValue(ImportApplicationUIModel.class)'/>
+
+ <ImportApplicationUIHandler id='handler'
+ initializer='getContextValue(ImportApplicationUIHandler.class)'/>
+
+ <Table fill='both' constraints='BorderLayout.CENTER'>
+ <!-- import file -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='importFileLbl'/>
+ </cell>
+ <cell fill='horizontal' weightx='1.0' columns='2'>
+ <FileEditor id='importFileEditor'
+ onActionPerformed='getModel().setImportFile(importFileEditor.getSelectedFile())'/>
+ </cell>
+ </row>
+ <!--import actions-->
+ <row>
+ <cell columns='5' fill="both">
+ <JPanel layout='{new GridLayout(1,2,0,0)}'>
+ <JButton id='quitButton' onActionPerformed='getHandler().close()'/>
+ <JButton id='importButton'
+ onActionPerformed='getHandler().importApplication()'/>
+ </JPanel>
+ </cell>
+ </row>
+ </Table>
+</JPanel>
\ No newline at end of file
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,113 @@
+package fr.ulr.sammoa.ui.swing.io.input.sammoa;
+
+import fr.ulr.sammoa.application.FlightService;
+import fr.ulr.sammoa.application.ReferentialService;
+import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationModel;
+import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationService;
+import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
+import fr.ulr.sammoa.ui.swing.SammoaScreen;
+import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.swing.JFrame;
+
+/**
+ * UI Handler fo {@link ImportApplicationUI}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class ImportApplicationUIHandler implements SammoaUIHandler {
+
+ private static final Logger logger =
+ LoggerFactory.getLogger(ImportApplicationUIHandler.class);
+
+ private final ImportApplicationUI ui;
+
+ protected SammoaUIContext context;
+
+ protected final ImportApplicationService importService;
+
+
+ protected final ReferentialService referentialService;
+
+ protected final FlightService flightService;
+
+ protected final SammoaDecoratorProvider decoratorProvider;
+
+ public ImportApplicationUIHandler(SammoaUIContext context,
+ ImportApplicationUI ui) {
+ this.context = context;
+ this.ui = ui;
+ SammoaContext appContext = context.getAppContext();
+
+ this.importService = context.newService(ImportApplicationService.class);
+ this.flightService = appContext.getFlightService();
+ this.referentialService = appContext.getReferentialService();
+ this.decoratorProvider = context.getDecoratorProvider();
+ }
+
+ @Override
+ public void beforeInitUI() {
+
+ //-- create model --//
+
+ ImportApplicationUIModel model = new ImportApplicationUIModel();
+
+ //-- share model and handler in jaxx context --//
+ ui.setContextValue(this);
+ ui.setContextValue(model);
+
+// model.addPropertyChangeListener(new PropertyChangeListener() {
+// @Override
+// public void propertyChange(PropertyChangeEvent evt) {
+//
+// if (ExportApplicationUIModel.PROPERTY_SELECTED_CAMPAIGN.equals(evt.getPropertyName())) {
+// Campaign newValue = (Campaign) evt.getNewValue();
+// onSelectedCampaignChanged(newValue);
+// } else if (ExportApplicationUIModel.PROPERTY_FLIGHTS.equals(evt.getPropertyName())) {
+// Collection<Flight> newValue = (Collection<Flight>) evt.getNewValue();
+// onFlightsChanged(newValue);
+// } else if (ExportApplicationUIModel.PROPERTY_SELECTED_FLIGHT.equals(evt.getPropertyName())) {
+// Flight newValue = (Flight) evt.getNewValue();
+// onSelectedFlightChanged(newValue);
+// }
+// }
+// });
+ }
+
+ @Override
+ public void afterInitUI() {
+ }
+
+ @Override
+ public void onCloseUI() {
+ }
+
+ public void importApplication() {
+
+ JFrame frame = ui.getParentContainer(JFrame.class);
+ SammoaUtil.updateBusyState(frame, true);
+
+ try {
+ ImportApplicationModel dataModel = getModel().toModel();
+ importService.importApplication(dataModel);
+
+ } finally {
+ SammoaUtil.updateBusyState(frame, false);
+ }
+ }
+
+ public void close() {
+ context.changeScreen(SammoaScreen.HOME);
+ }
+
+ protected ImportApplicationUIModel getModel() {
+ return ui.getModel();
+ }
+
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
___________________________________________________________________
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/input/sammoa/ImportApplicationUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,145 @@
+package fr.ulr.sammoa.ui.swing.io.input.sammoa;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Lists;
+import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationModel;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+import org.jdesktop.beans.AbstractSerializableBean;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Model for sammoa import.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class ImportApplicationUIModel extends AbstractSerializableBean {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String PROPERTY_EXISTING_CAMPAIGN = "existingCampaign";
+
+ public static final String PROPERTY_EXISTING_FLIGHTS = "existingFlights";
+
+ public static final String PROPERTY_NEW_CAMPAIGN = "newCampaign";
+
+ public static final String PROPERTY_NEW_FLIGHTS = "newFlights";
+
+ public static final String PROPERTY_SELECTED_FLIGHT_IDS = "selectedFlightIds";
+
+ public static final String PROPERTY_IMPORT_FILE = "importFile";
+
+ /** File to import. */
+ protected File importFile;
+
+ /** Existing campaign. */
+ protected Campaign existingCampaign;
+
+ /** existing existingFlights on db. */
+ protected List<Flight> existingFlights;
+
+ /** New campaign to import (read from the import file). */
+ protected Campaign newCampaign;
+
+ /** New existingFlights to import (read from the import file). */
+ protected List<Flight> newFlights;
+
+ /** Selected flight ids to imports. */
+ protected List<String> selectedFlightIds;
+
+ public File getImportFile() {
+ return importFile;
+ }
+
+ public void setImportFile(File importFile) {
+ File oldValue = this.importFile;
+ this.importFile = importFile;
+ firePropertyChange(PROPERTY_IMPORT_FILE, oldValue, importFile);
+ }
+
+ public Campaign getExistingCampaign() {
+ return existingCampaign;
+ }
+
+ public void setExistingCampaign(Campaign existingCampaign) {
+ Campaign oldValue = this.existingCampaign;
+ this.existingCampaign = existingCampaign;
+ firePropertyChange(PROPERTY_EXISTING_CAMPAIGN, oldValue, existingCampaign);
+ }
+
+ public List<Flight> getExistingFlights() {
+ if (existingFlights == null) {
+ existingFlights = Lists.newArrayList();
+ }
+ return existingFlights;
+ }
+
+ public void setExistingFlights(List<Flight> existingFlights) {
+ List<Flight> oldValue = this.existingFlights;
+ this.existingFlights = existingFlights;
+ firePropertyChange(PROPERTY_EXISTING_FLIGHTS, oldValue, existingFlights);
+ }
+
+ public List<Flight> getNewFlights() {
+ return newFlights;
+ }
+
+ public void setNewFlights(List<Flight> newFlights) {
+ List<Flight> oldValue = this.newFlights;
+ this.newFlights = newFlights;
+ firePropertyChange(PROPERTY_NEW_FLIGHTS, oldValue, newFlights);
+ }
+
+ public Campaign getNewCampaign() {
+ return newCampaign;
+ }
+
+ public void setNewCampaign(Campaign newCampaign) {
+ Campaign oldValue = this.newCampaign;
+ this.newCampaign = newCampaign;
+ firePropertyChange(PROPERTY_NEW_CAMPAIGN, oldValue, newCampaign);
+ }
+
+ public List<String> getSelectedFlightIds() {
+ return selectedFlightIds;
+ }
+
+ public void setSelectedFlightIds(List<String> selectedFlightIds) {
+ List<String> oldValue = this.selectedFlightIds;
+ this.selectedFlightIds = selectedFlightIds;
+ firePropertyChange(PROPERTY_SELECTED_FLIGHT_IDS, oldValue, selectedFlightIds);
+ }
+
+ public ImportApplicationModel toModel() {
+ ImportApplicationModel result = ImportApplicationModel.newModel(
+ getImportFile(),
+ getSelectedFlightIds()
+ );
+ return result;
+ }
+}
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java
___________________________________________________________________
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/input/sammoa/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,6 @@
+/**
+ * Base package for sammoa application import.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.ui.swing.io.input.sammoa;
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java
___________________________________________________________________
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/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,7 @@
+/**
+ * Base package for all io operations (says all imports ({@code input} package)
+ * and all exports ({@code output} package).
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.ui.swing.io;
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapLauncherUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapLauncherUI.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapLauncherUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -24,12 +24,9 @@
<JPanel layout='{new BorderLayout()}'>
<import>
-
java.awt.BorderLayout
java.io.File
- jaxx.runtime.swing.BlockingLayerUI
-
static org.nuiton.i18n.I18n._
</import>
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -21,6 +21,7 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+
BeanListHeader {
i18nPrefix: "sammoa.common.";
}
@@ -94,6 +95,7 @@
#exportObservations {
text:"sammoa.action.exportObservationsMap";
}
+
#exportGeoPoints {
text:"sammoa.action.exportGeoPointsMap";
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -25,7 +25,6 @@
implements='fr.ulr.sammoa.ui.swing.SammoaUI<ExportMapUIHandler>'>
<import>
- fr.ulr.sammoa.application.flightController.FlightState
fr.ulr.sammoa.persistence.Campaign
fr.ulr.sammoa.persistence.RouteType
fr.ulr.sammoa.persistence.Strate
@@ -39,7 +38,6 @@
java.awt.BorderLayout
java.awt.event.ItemEvent
- java.io.File
static org.nuiton.i18n.I18n._
</import>
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,6 +26,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import fr.ulr.sammoa.application.ReferentialService;
+import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.io.output.map.ExportMapModel;
import fr.ulr.sammoa.application.io.output.map.ExportMapService;
import fr.ulr.sammoa.persistence.Campaign;
@@ -36,6 +37,7 @@
import fr.ulr.sammoa.persistence.StringRef;
import fr.ulr.sammoa.persistence.StringRefs;
import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
+import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
@@ -80,22 +82,24 @@
protected SammoaUIContext context;
+ protected final ExportMapService exportService;
+
+ protected final ReferentialService referentialService;
+
+ protected final SammoaDecoratorProvider decoratorProvider;
+
public ExportMapUIHandler(SammoaUIContext context,
ExportMapUI ui) {
this.context = context;
this.ui = ui;
+ SammoaContext appContext = context.getAppContext();
+ this.referentialService = appContext.getReferentialService();
+ this.exportService = context.newService(ExportMapService.class);
+ this.decoratorProvider = context.getDecoratorProvider();
}
- protected ReferentialService getReferentialService() {
- return context.getAppContext().getReferentialService();
- }
-
- protected ExportMapService getExportMapService() {
- return context.getAppContext().getExportMapService();
- }
-
public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
+ return decoratorProvider;
}
@Override
@@ -105,7 +109,7 @@
ExportMapUIModel model = new ExportMapUIModel();
- List<Campaign> campaigns = getReferentialService().getCampaigns();
+ List<Campaign> campaigns = referentialService.getCampaigns();
//TODO-tchemit-2012-08-03 add an null campaign (for test purpose, should be removed...)
campaigns.add(0, null);
model.setCampaigns(campaigns);
@@ -115,7 +119,7 @@
if (campaignId != null) {
- Campaign campaign = getReferentialService().getCampaign(campaignId);
+ Campaign campaign = referentialService.getCampaign(campaignId);
// selected cam
model.setSelectedCampaign(campaign);
@@ -201,8 +205,10 @@
// reset strates,...
if (logger.isInfoEnabled()) {
- Decorator<Campaign> decorator = getDecoratorProvider().getDecoratorByType(Campaign.class);
- logger.info("New selected campain: {}", decorator.toString(newCampaign));
+ Decorator<Campaign> decorator =
+ decoratorProvider.getDecoratorByType(Campaign.class);
+ logger.info("New selected campain: {}",
+ decorator.toString(newCampaign));
}
ExportMapUIModel model = getModel();
@@ -215,7 +221,7 @@
if (newCampaign == null) {
strates = Collections.emptyList();
} else {
- strates = getReferentialService().getAllStrates(newCampaign);
+ strates = referentialService.getAllStrates(newCampaign);
}
if (logger.isDebugEnabled()) {
logger.debug("New strates: {}", strates.size());
@@ -230,7 +236,7 @@
speciesTypes = Collections.emptyList();
} else {
- species = getReferentialService().getAllSpecies(newCampaign);
+ species = referentialService.getAllSpecies(newCampaign);
speciesTypes = StringRefs.toRefs(Species2.toSpeciesTypes(species));
}
model.setSpecies(species);
@@ -238,7 +244,7 @@
}
public void close() {
- context.setHomeScreen();
+ context.changeScreen(SammoaScreen.HOME);
}
@Override
@@ -281,7 +287,7 @@
model.toModel(model.getExportEffortsFilename());
// launch export
- getExportMapService().exportEffortsMap(dataModel);
+ exportService.exportEffortsMap(dataModel);
} finally {
@@ -325,7 +331,7 @@
model.toModel(model.getExportObservationsFilename());
// launch export
- getExportMapService().exportObservationsMap(dataModel);
+ exportService.exportObservationsMap(dataModel);
} finally {
@@ -345,7 +351,6 @@
public void exportGeoPoints() {
-
Action startAction = new AbstractAction(
_("sammoa.action.startExport"),
SwingUtil.createActionIcon("accept")) {
@@ -372,7 +377,7 @@
model.toModel(model.getExportGeoPointsFilename());
// launch export
- getExportMapService().exportGeoPointsMap(dataModel);
+ exportService.exportGeoPointsMap(dataModel);
} finally {
@@ -441,8 +446,9 @@
OneClicListSelectionModel.installModel(jList);
// init list
- Decorator<E> decorator = getDecoratorProvider().getDecoratorByType(beanType);
- Preconditions.checkNotNull(decorator, "No decorator found for type " + beanType);
+ Decorator<E> decorator = decoratorProvider.getDecoratorByType(beanType);
+ Preconditions.checkNotNull(decorator,
+ "No decorator found for type " + beanType);
if (logger.isDebugEnabled()) {
logger.debug("Will use decorator " + decorator);
}
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,6 @@
+/**
+ * Base package for map export operations.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.ui.swing.io.output.map;
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -21,6 +21,7 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+
#campaignLabel {
text: "sammoa.label.campaign";
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -25,13 +25,14 @@
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
+import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationCallbackMode;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationModel;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationService;
-import fr.ulr.sammoa.application.io.output.map.ExportMapService;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
+import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
@@ -42,7 +43,6 @@
import org.slf4j.LoggerFactory;
import javax.swing.JFrame;
-import javax.swing.SwingUtilities;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
@@ -65,28 +65,29 @@
private final ExportApplicationUI ui;
- protected SammoaUIContext context;
+ protected final SammoaUIContext context;
+ protected final ExportApplicationService exportService;
+
+ protected final ReferentialService referentialService;
+
+ protected final FlightService flightService;
+
+ protected final SammoaDecoratorProvider decoratorProvider;
+
public ExportApplicationUIHandler(SammoaUIContext context,
ExportApplicationUI ui) {
this.context = context;
this.ui = ui;
+ SammoaContext appContext = context.getAppContext();
+ this.flightService = appContext.getFlightService();
+ this.referentialService = appContext.getReferentialService();
+ this.exportService = context.newService(ExportApplicationService.class);
+ this.decoratorProvider = context.getDecoratorProvider();
}
- protected ReferentialService getReferentialService() {
- return context.getAppContext().getReferentialService();
- }
-
- protected FlightService getFlightService() {
- return context.getAppContext().getFlightService();
- }
-
- protected ExportMapService getExportMapService() {
- return context.getAppContext().getExportMapService();
- }
-
public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
+ return decoratorProvider;
}
@Override
@@ -96,7 +97,7 @@
ExportApplicationUIModel model = new ExportApplicationUIModel();
- List<Campaign> campaigns = getReferentialService().getCampaigns();
+ List<Campaign> campaigns = referentialService.getCampaigns();
//TODO-tchemit-2012-08-03 add an null campaign (for test purpose, should be removed...)
campaigns.add(0, null);
model.setCampaigns(campaigns);
@@ -105,7 +106,7 @@
if (campaignId != null) {
- Campaign campaign = getReferentialService().getCampaign(campaignId);
+ Campaign campaign = referentialService.getCampaign(campaignId);
// selected cam
model.setSelectedCampaign(campaign);
@@ -115,7 +116,7 @@
if (flightId != null) {
- Flight flight = getFlightService().getFlight(flightId);
+ Flight flight = flightService.getFlight(flightId);
// selected cam
model.setSelectedFlight(flight);
@@ -168,36 +169,51 @@
onSelectedFlightChanged(selectedFlight);
}
+ @Override
+ public void onCloseUI() {
+ }
+
public void exportApplication() {
JFrame frame = ui.getParentContainer(JFrame.class);
SammoaUtil.updateBusyState(frame, true);
try {
- SwingUtilities.invokeLater(
- new Runnable() {
- @Override
- public void run() {
- ExportApplicationModel dataModel = getModel().toModel();
+ ExportApplicationModel dataModel = getModel().toModel();
+ exportService.exportApplication(dataModel);
- ExportApplicationService service =
- context.getAppContext().newExportApplicationService();
- service.exportApplication(dataModel);
- }
- }
- );
-
} finally {
SammoaUtil.updateBusyState(frame, false);
}
}
+ public void close() {
+ context.changeScreen(SammoaScreen.HOME);
+ }
+
+ public void chooseExportDirectory() {
+ File f = SammoaUtil.chooseDirectory(
+ ui,
+ _("sammoa.title.choose.export.directory"),
+ _("sammoa.action.choose.export.directory"),
+ ui.getModel().getExportDirectory()
+ );
+ ui.getModel().setExportDirectory(f);
+ }
+
+
+ protected ExportApplicationUIModel getModel() {
+ return ui.getModel();
+ }
+
protected void onSelectedCampaignChanged(Campaign newCampaign) {
// reset flights,...
if (logger.isInfoEnabled()) {
- Decorator<Campaign> decorator = getDecoratorProvider().getDecoratorByType(Campaign.class);
- logger.info("New selected campain: {}", decorator.toString(newCampaign));
+ Decorator<Campaign> decorator =
+ decoratorProvider.getDecoratorByType(Campaign.class);
+ logger.info("New selected campain: {}",
+ decorator.toString(newCampaign));
}
ExportApplicationUIModel model = getModel();
@@ -208,7 +224,7 @@
flights = Collections.emptyList();
filename = "";
} else {
- flights = getFlightService().getFlights(newCampaign);
+ flights = flightService.getFlights(newCampaign);
filename = String.format("campaign-%s.sammoa", newCampaign.getCode());
}
if (logger.isDebugEnabled()) {
@@ -236,35 +252,14 @@
// reset flights,...
if (logger.isInfoEnabled()) {
- Decorator<Flight> decorator = getDecoratorProvider().getDecoratorByType(Flight.class);
- logger.info("New selected flight: {}", decorator.toString(newCampaign));
+ Decorator<Flight> decorator =
+ decoratorProvider.getDecoratorByType(Flight.class);
+ logger.info("New selected flight: {}",
+ decorator.toString(newCampaign));
}
ExportApplicationUIModel model = getModel();
}
- public void close() {
- context.setHomeScreen();
- }
- @Override
- public void onCloseUI() {
- }
-
- public void chooseExportDirectory() {
- File f = SammoaUtil.chooseDirectory(
- ui,
- _("sammoa.title.choose.export.directory"),
- _("sammoa.action.choose.export.directory"),
- ui.getModel().getExportDirectory()
- );
- ui.getModel().setExportDirectory(f);
- }
-
-
- public ExportApplicationUIModel getModel() {
- return ui.getModel();
- }
-
-
}
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -0,0 +1,6 @@
+/**
+ * Package for the sammoa application export.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.ui.swing.io.output.sammoa;
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -40,7 +40,6 @@
model:{errorTableModel};
}
-
#transecLbl {
text: "sammoa.observation.observationCondition.transec";
}
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -67,7 +67,15 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.*;
+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.SwingUtilities;
import javax.swing.border.LineBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
@@ -77,7 +85,9 @@
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Rectangle;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -33,7 +33,7 @@
/**
* Surcharge de modele de selection par default pour empecher la deselection
* de la dernière ligne et pour qu'il y est toujours une ligne selectionnée.
- *
+ *
* @author echatellier
*/
public class ForceSelectionSelectionModel extends DefaultListSelectionModel {
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -130,7 +130,7 @@
OBSERVATION_NUMBER(false, String.class, Observation.PROPERTY_OBSERVATION_NUMBER),
OBSERVATION_TIME(false, Date.class, Observation.PROPERTY_OBSERVATION_TIME),
- OBSERVER(false,String.class,
+ OBSERVER(false, String.class,
Observation.PROPERTY_OBSERVER_POSITION,
ObserverPosition.PROPERTY_OBSERVER,
Observer.PROPERTY_INITIALS
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -130,7 +130,7 @@
EFFORT_NUMBER(false, String.class, Route.PROPERTY_EFFORT_NUMBER),
BEGIN_TIME(false, Date.class, Route.PROPERTY_BEGIN_TIME),
ROUTE_TYPE(false, String.class, Route.PROPERTY_ROUTE_TYPE),
- TRANSECT(false,String.class,
+ TRANSECT(false, String.class,
Route.PROPERTY_TRANSECT_FLIGHT,
TransectFlight.PROPERTY_TRANSECT,
Transect.PROPERTY_NAME
@@ -200,7 +200,7 @@
}
public void setValue(Route bean, Object value) {
- if (type.isPrimitive() && value==null) {
+ if (type.isPrimitive() && value == null) {
// can not set a null value to a primitive field
} else {
SammoaUtil.setPropertyValue(bean, value, beanProperties);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -23,13 +23,12 @@
* #L%
*/
+import com.opensymphony.xwork2.validator.ValidationException;
import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.persistence.Species;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.validator.xwork2.field.CollectionFieldExpressionValidator;
-import org.nuiton.validator.xwork2.field.CollectionUniqueKeyValidator;
-import com.opensymphony.xwork2.validator.ValidationException;
import java.util.Collection;
/**
@@ -44,7 +43,7 @@
@Override
protected Collection<?> getCollection(Object object) throws ValidationException {
- if (species==null) {
+ if (species == null) {
SammoaContext appContext = SammoaUIContext.getUIContext().getAppContext();
species = appContext.getReferentialService().getAllValidSpecies();
}
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,11 +31,11 @@
import java.awt.event.ActionEvent;
/**
-* Action to edit next editable cell from selected cell.
+ * Action to edit next editable cell from selected cell.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.5
-*/
+ */
public class MoveToNextEditableCellAction extends AbstractAction {
private static final long serialVersionUID = 1L;
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,11 +31,11 @@
import java.awt.event.ActionEvent;
/**
-* Action to edit next row only if selected cell is editable.
-*
-* @author tchemit <chemit(a)codelutin.com>
-* @since 0.5
-*/
+ * Action to edit next row only if selected cell is editable.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.5
+ */
public class MoveToNextRowEditableAction extends AbstractAction {
private static final long serialVersionUID = 1L;
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,11 +31,11 @@
import java.awt.event.ActionEvent;
/**
-* Action to edit previous row only if selected cell is editable.
+ * Action to edit previous row only if selected cell is editable.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.5
-*/
+ */
public class MoveToPreviousRowEditableAction extends AbstractAction {
private static final long serialVersionUID = 1L;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -23,13 +23,10 @@
* #L%
*/
-FileEditor {
- acceptAllFileFilterUsed:false;
-}
-
#regionCodeLabel {
text:"sammoa.label.region.code";
}
+
#regionCodeField {
enabled:{!getModel().isUpdate()};
text:{getModel().getCode()};
@@ -38,6 +35,7 @@
#regionNameLabel {
text:"sammoa.label.region.name";
}
+
#regionNameField {
text:{getModel().getName()};
}
@@ -45,17 +43,20 @@
#regionSpeciesLabel {
text:"sammoa.label.region.species";
}
+
#speciesFileEditor {
title:"sammoa.dialog.title.speciesFile";
exts:"csv";
extsDescription:"CSV files";
- directoryEnabled:{false};
+ directoryEnabled:false;
+ acceptAllFileFilterUsed:false;
}
#saveButton {
text:"sammoa.action.save";
enabled:{validator.isValid()};
}
+
#closeButton {
action:{closeAction};
}
@@ -65,6 +66,7 @@
height:200;
width:500;
}
+
#errorTable {
rowSelectionAllowed:true;
autoCreateRowSorter:true;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,13 +27,11 @@
implements='fr.ulr.sammoa.ui.swing.SammoaUI<RegionUIHandler>'>
<import>
- fr.ulr.sammoa.persistence.Region
fr.ulr.sammoa.ui.swing.action.CloseAction
fr.ulr.sammoa.ui.swing.SammoaUIContext
jaxx.runtime.swing.editor.FileEditor
jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer
jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
static org.nuiton.i18n.I18n._
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -31,8 +31,8 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
import fr.ulr.sammoa.ui.swing.io.input.CsvImporter;
-import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import fr.ulr.sammoa.ui.swing.io.input.UIImporter;
+import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.swing.ErrorDialogUI;
import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer;
import jaxx.runtime.validator.swing.SwingValidatorUtil;
@@ -56,35 +56,33 @@
private static final Logger logger =
LoggerFactory.getLogger(RegionUIHandler.class);
- protected SammoaUIContext context;
+// protected SammoaUIContext context;
protected RegionUI ui;
protected final UIImporter uiImporter;
+ private final ImportCsvService importCsvService;
+ private final ReferentialService referentialService;
+
public RegionUIHandler(SammoaUIContext context,
RegionUI ui) {
- this.context = context;
+// this.context = context;
this.ui = ui;
this.uiImporter = new UIImporter(ui);
- }
+ this.importCsvService = context.newService(ImportCsvService.class);
- public SammoaContext getAppContext() {
- return context.getAppContext();
+ referentialService = context.getAppContext().getReferentialService();
}
public RegionUIModel getModel() {
return ui.getModel();
}
- public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
- }
+// public SammoaDecoratorProvider getDecoratorProvider() {
+// return context.getDecoratorProvider();
+// }
- protected ReferentialService getReferentialService() {
- return getAppContext().getReferentialService();
- }
-
@Override
public void beforeInitUI() {
@@ -128,7 +126,7 @@
SammoaUtil.updateBusyState(ui, true);
// Save the entity
- String regionId = getReferentialService().saveRegion(region);
+ String regionId = referentialService.saveRegion(region);
getModel().setId(regionId);
// Import species if necessary
@@ -156,12 +154,13 @@
}
}
- protected CsvImporter speciesImporter = new CsvImporter() {
+
+ protected final CsvImporter speciesImporter = new CsvImporter() {
+
@Override
public String importCsvFile(File file) throws IOException {
- ImportCsvService service = new ImportCsvService(getAppContext());
- int nbImported = service.importSpecies(getModel().getId(), file);
+ int nbImported = importCsvService.importSpecies(getModel().getId(), file);
return _("sammoa.messageDialog.species.import.success", nbImported);
}
};
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -26,7 +26,7 @@
import com.google.common.collect.Lists;
import fr.ulr.sammoa.persistence.Region;
import fr.ulr.sammoa.persistence.RegionImpl;
-import fr.ulr.sammoa.ui.swing.BaseModel;
+import org.jdesktop.beans.AbstractSerializableBean;
import java.util.List;
@@ -35,31 +35,33 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class RegionUIModel extends BaseModel {
+public class RegionUIModel extends AbstractSerializableBean {
public static final String PROPERTY_REGION_REFERENTIAL = "regionReferential";
public static final String PROPERTY_ID = "id";
-
+
public static final String PROPERTY_CODE = "code";
public static final String PROPERTY_NAME = "name";
public static final String PROPERTY_UPDATE = "update";
+ private static final long serialVersionUID = 1L;
+
protected List<Region> regionReferential;
-
+
protected String id;
-
+
protected String code;
-
+
protected String name;
-
+
protected boolean update;
/**
* Prepare create using {@code regionReferential} to check unicity
- *
+ *
* @param regionReferential List of Region as referential
*/
public void prepareCreate(List<Region> regionReferential) {
@@ -85,7 +87,7 @@
* Instanciate a new {@link Region} bean with values from this model.
* Note that the {@code code} property is mandatory (check in validation)
* otherwise an exception will occurs.
- *
+ *
* @return a new {@link Region} bean
*/
public Region newBean() {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css 2012-08-14 13:09:01 UTC (rev 420)
@@ -22,9 +22,11 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+
#transectStrateLabel {
text:"sammoa.label.transect.strate";
}
+
#transectStrateComboBox {
renderer:{new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())}
}
@@ -32,6 +34,7 @@
#transectNameLabel {
text:"sammoa.label.transect.name";
}
+
#transectNameField {
text:{getModel().getName()};
}
@@ -40,6 +43,7 @@
text:"sammoa.action.create";
enabled:{validator.isValid()};
}
+
#closeButton {
action:{closeAction};
}
@@ -49,6 +53,7 @@
height:100;
width:500;
}
+
#errorTable {
rowSelectionAllowed:true;
autoCreateRowSorter:true;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx 2012-08-14 13:09:01 UTC (rev 420)
@@ -28,13 +28,11 @@
<import>
fr.ulr.sammoa.ui.swing.flight.StrateModel
- fr.ulr.sammoa.ui.swing.flight.TransectModel
fr.ulr.sammoa.ui.swing.action.CloseAction
fr.ulr.sammoa.ui.swing.SammoaUIContext
jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer
jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
static org.nuiton.i18n.I18n._
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -41,7 +41,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.*;
+import javax.swing.JFrame;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -56,11 +56,11 @@
private static final Logger logger =
LoggerFactory.getLogger(TransectUIHandler.class);
-
+
protected SammoaUIContext context;
protected TransectUI ui;
-
+
public TransectUIHandler(SammoaUIContext context,
TransectUI ui) {
this.context = context;
@@ -70,7 +70,7 @@
public SammoaContext getAppContext() {
return context.getAppContext();
}
-
+
public TransectUIModel getModel() {
return ui.getModel();
}
@@ -102,7 +102,7 @@
ui.setVisible(false);
// context.getSwingSession().save();
}
-
+
public void openUI() {
if (logger.isInfoEnabled()) {
@@ -162,7 +162,7 @@
}
public void createTransect() {
-
+
try {
boolean success = true;
@@ -177,7 +177,7 @@
if (success) {
ui.getCloseButton().doClick();
}
-
+
} catch (IllegalArgumentException e) {
ErrorDialogUI.showError(e);
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIModel.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIModel.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -26,8 +26,8 @@
import com.google.common.collect.Lists;
import fr.ulr.sammoa.persistence.Transect;
import fr.ulr.sammoa.persistence.TransectImpl;
-import fr.ulr.sammoa.ui.swing.BaseModel;
import fr.ulr.sammoa.ui.swing.flight.StrateModel;
+import org.jdesktop.beans.AbstractSerializableBean;
import java.util.List;
@@ -36,8 +36,10 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class TransectUIModel extends BaseModel {
+public class TransectUIModel extends AbstractSerializableBean {
+ private static final long serialVersionUID = 1L;
+
public static final String PROPERTY_TRANSECT_REFERENTIAL = "transectReferential";
public static final String PROPERTY_STRATE_REFERENTIAL = "strateReferential";
@@ -55,14 +57,14 @@
protected String id;
protected StrateModel strate;
-
+
protected String name;
/**
* Prepare create using {@code transectReferential} to check unicity
*
* @param strateReferential List of Strate as referential
- * @param currentStrate Set the current strate
+ * @param currentStrate Set the current strate
*/
public void prepareCreate(List<StrateModel> strateReferential,
StrateModel currentStrate) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/AbstractRowHighlightPredicate.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/AbstractRowHighlightPredicate.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/AbstractRowHighlightPredicate.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -39,7 +39,7 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public abstract class AbstractRowHighlightPredicate implements HighlightPredicate {
-
+
protected Map<Object, Boolean> objects;
public AbstractRowHighlightPredicate() {
@@ -48,7 +48,7 @@
@Override
public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
-
+
int columnIndex = adapter.column;
int rowIndex = adapter.row;
Object object = getValueAt(rowIndex);
@@ -63,7 +63,7 @@
}
return result;
}
-
+
protected abstract boolean isHighlighted(int rowIndex);
protected abstract Object getValueAt(int rowIndex);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/ColorTableCellRenderer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/ColorTableCellRenderer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/ColorTableCellRenderer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -34,9 +34,9 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public class ColorTableCellRenderer implements TableCellRenderer {
-
+
protected TableCellRenderer delegate;
-
+
protected Color backgroundColor;
public ColorTableCellRenderer(TableCellRenderer delegate, Color backgroundColor) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/LogFileInitializer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/LogFileInitializer.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/LogFileInitializer.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -49,9 +49,9 @@
public class LogFileInitializer {
private static final Logger rootLogger = (Logger) LoggerFactory.getLogger("ROOT");
-
+
private static final String LOG_PATTERN = "%date %level [%thread] %logger [:%line] : %msg%n";
-
+
private File file;
public LogFileInitializer(File file) {
@@ -71,21 +71,21 @@
}
protected Encoder<ILoggingEvent> getEncoder() {
-
+
PatternLayoutEncoder result = new PatternLayoutEncoder();
result.setContext(getContext());
result.setPattern(LOG_PATTERN);
-
+
result.start();
return result;
}
-
+
protected RollingPolicy newRollingPolicy() {
TimeBasedRollingPolicy result = new TimeBasedRollingPolicy();
result.setContext(getContext());
result.setMaxHistory(10);
-
+
Pair<String, String> filePathAndExtension = getFilePathAndExtension();
result.setFileNamePattern(filePathAndExtension.getLeft() +
@@ -95,7 +95,7 @@
return result;
}
-
+
protected FileAppender<ILoggingEvent> newFileAppender(String name) {
RollingFileAppender<ILoggingEvent> result = new RollingFileAppender<ILoggingEvent>();
@@ -113,7 +113,7 @@
result.start();
return result;
}
-
+
protected Pair<String, String> getFilePathAndExtension() {
String filePath = file.getAbsolutePath();
@@ -124,7 +124,7 @@
} else {
filePath = filePath.replace("." + ext, "");
}
-
+
Pair<String, String> result = new ImmutablePair<String, String>(filePath, ext);
return result;
}
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -36,8 +36,18 @@
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.JOptionPane;
+import javax.swing.JRootPane;
+import javax.swing.KeyStroke;
+import javax.swing.UIManager;
+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;
@@ -223,7 +233,7 @@
}
}
- public static void showErrorMessage(Component ui, String message) {
+ public static void showErrorMessage(Component ui, String message) {
JOptionPane.showMessageDialog(
ui,
message,
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/TableDataChangeListener.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/TableDataChangeListener.java 2012-08-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/TableDataChangeListener.java 2012-08-14 13:09:01 UTC (rev 420)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: UI Swing
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -36,11 +36,11 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public class TableDataChangeListener implements PropertyChangeListener {
-
+
public static final int NO_COLUMN_INDEX_TO_EDIT_ON_INSERT = -1;
-
+
protected JXTable table;
-
+
protected AbstractTableModel tableModel;
public TableDataChangeListener(JXTable table,
@@ -53,7 +53,7 @@
public void propertyChange(PropertyChangeEvent evt) {
if (evt instanceof IndexedPropertyChangeEvent) {
- int rowIndex = ((IndexedPropertyChangeEvent)evt).getIndex();
+ int rowIndex = ((IndexedPropertyChangeEvent) evt).getIndex();
Object oldValue = evt.getOldValue();
Object newValue = evt.getNewValue();
@@ -78,7 +78,7 @@
tableModel.fireTableDataChanged();
}
}
-
+
protected int getFirstEditableColumn(int rowIndex) {
for (int columnIndex = 0; columnIndex < tableModel.getColumnCount(); columnIndex++) {
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-14 13:04:50 UTC (rev 419)
+++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-14 13:09:01 UTC (rev 420)
@@ -27,6 +27,7 @@
sammoa.action.home=Home
sammoa.action.home.tip=Home
sammoa.action.import=Import
+sammoa.action.importApplication=Import
sammoa.action.left.tip=LEFT \: create a new Observation for the observer on the left side
sammoa.action.locale.fr=fr
sammoa.action.locale.fr.tip=French
@@ -37,6 +38,7 @@
sammoa.action.nextTransect.tip=NEXT TRANSECT \: choose this transect to be the next one
sammoa.action.onBoard=On Board
sammoa.action.quitExportMaps=Quit
+sammoa.action.quitImportApplication=
sammoa.action.reload.actions=Reload actions
sammoa.action.reload.gps=Reload GPS
sammoa.action.reload.ui=Reload sammoa ui
@@ -64,6 +66,7 @@
sammoa.copyright.text=Version %1$s UMS 3462, Codelutin @ 2012
sammoa.datePattern=dd/MM/yyyy
sammoa.dateTimePattern=dd/MM/yyyy HH\:mm\:ss
+sammoa.dialog.title.importSammoaFile=
sammoa.dialog.title.observerFile=Choose a csv file for observers
sammoa.dialog.title.region=Region
sammoa.dialog.title.speciesFile=Choose a csv file for species
@@ -114,6 +117,7 @@
sammoa.label.flight.immatriculation=Plane imma.\:
sammoa.label.flight.period=Time\:
sammoa.label.flight.platformType=Type\:
+sammoa.label.importApplicationFile=
sammoa.label.observers=Observers\:
sammoa.label.region.code=Code\:
sammoa.label.region.name=Name\:
@@ -228,6 +232,7 @@
sammoa.title.exportshape=Export Maps
sammoa.title.flight=System %1$s - Campaign %2$s - Region %3$s - Flight n°%4$d
sammoa.title.home=Home
+sammoa.title.importApplication=
sammoa.title.validation=
sammoa.validator.campaign.beginDate.required=The begin date must be defined
sammoa.validator.campaign.code.required=The campaign code must be defined
1
0
r419 - trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence
by tchemit@users.forge.codelutin.com 14 Aug '12
by tchemit@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: tchemit
Date: 2012-08-14 15:04:50 +0200 (Tue, 14 Aug 2012)
New Revision: 419
Url: http://forge.codelutin.com/repositories/revision/sammoa/419
Log:
add serialVersionUID
Modified:
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteImpl.java
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteImpl.java 2012-08-14 13:04:08 UTC (rev 418)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteImpl.java 2012-08-14 13:04:50 UTC (rev 419)
@@ -31,6 +31,8 @@
public class RouteImpl extends RouteAbstract {
+ private static final long serialVersionUID = 1L;
+
@Override
public Collection<ObserverPosition> getObserverPosition() {
if (observerPosition == null) {
1
0
14 Aug '12
Author: tchemit
Date: 2012-08-14 15:04:08 +0200 (Tue, 14 Aug 2012)
New Revision: 418
Url: http://forge.codelutin.com/repositories/revision/sammoa/418
Log:
use a simple but efficient service layout and much-much more...
Added:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/java-info.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/java-info.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationModel.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/java-info.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/java-info.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/java-info.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/java-info.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.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/flightController/FlightController.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapModel.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties
trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java
trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java
trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java
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-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -53,7 +53,6 @@
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;
@@ -79,25 +78,17 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class FlightService {
+public class FlightService extends SammoaServiceSupport {
- private static final Logger logger = LoggerFactory.getLogger(FlightService.class);
+ private static final Logger logger =
+ LoggerFactory.getLogger(FlightService.class);
- private static final TimeLog timeLog = new TimeLog(FlightService.class, 500, 1000);
+ private static final TimeLog timeLog =
+ new TimeLog(FlightService.class, 500, 1000);
- protected SammoaContext context;
-
- protected SammoaConfig config;
-
- protected SammoaPersistence persistence;
-
- protected ReferentialService referential;
-
- public FlightService(SammoaContext context) {
- this.context = context;
- this.persistence = context.getPersistence();
- this.config = context.getConfig();
- this.referential = context.getReferentialService();
+ @Override
+ public void setSammoaContext(SammoaContext context) {
+ super.setSammoaContext(context);
}
public List<Flight> getFlights(Campaign campaign) {
@@ -195,8 +186,9 @@
FlightDAO dao = SammoaDAOHelper.getFlightDAO(transaction);
result = dao.findByTopiaId(flightId);
- Preconditions.checkArgument(result != null,
- String.format("%s doesn't exist", flightId));
+ Preconditions.checkArgument(
+ result != null,
+ String.format("%s doesn't exist", flightId));
if (logger.isInfoEnabled()) {
logger.info("Loading flight {} [{}]",
@@ -315,7 +307,8 @@
}
- public List<GeoPoint> getFlightGeoPoints(TopiaContext transaction, Flight flight) {
+ public List<GeoPoint> getFlightGeoPoints(TopiaContext transaction,
+ Flight flight) {
List<GeoPoint> result;
@@ -379,7 +372,9 @@
* @param transects The list of transect to add
* @return the resulting TransectFlight added
*/
- public List<TransectFlight> addTransects(Flight flight, int fromIndex, Iterable<Transect> transects) {
+ public List<TransectFlight> addTransects(Flight flight,
+ int fromIndex,
+ Iterable<Transect> transects) {
List<TransectFlight> result = Lists.newArrayList();
@@ -546,7 +541,8 @@
}
}
- public List<Observation> getObservations(TopiaContext transaction, Flight flight) {
+ public List<Observation> getObservations(TopiaContext transaction,
+ Flight flight) {
List<Observation> result;
try {
@@ -566,7 +562,8 @@
Observer observer,
Position position) {
- Collection<ObserverPosition> observerPositions = route.getObserverPosition();
+ Collection<ObserverPosition> observerPositions =
+ route.getObserverPosition();
TopiaContext transaction = persistence.beginTransaction();
try {
@@ -574,7 +571,8 @@
SammoaDAOHelper.getObserverPositionDAO(transaction);
ObserverPosition observerPosition =
- Iterables.find(observerPositions, ObserverPositions.withPosition(position));
+ Iterables.find(observerPositions,
+ ObserverPositions.withPosition(position));
// Apply switch on the other observer position with the observer
if (observer != null) {
@@ -583,7 +581,9 @@
Observer oldObserver = observerPosition.getObserver();
ObserverPosition otherObserverPosition =
- Iterables.find(observerPositions, ObserverPositions.withObserver(observer), null);
+ Iterables.find(observerPositions,
+ ObserverPositions.withObserver(observer),
+ null);
if (otherObserverPosition != null) {
otherObserverPosition.setObserver(oldObserver);
@@ -623,7 +623,8 @@
SammoaDAOHelper.getTransectFlightDAO(transaction);
TransectFlight result =
- transectFlightDAO.create(TransectFlight.PROPERTY_TRANSECT, transect);
+ transectFlightDAO.create(TransectFlight.PROPERTY_TRANSECT,
+ transect);
int crossingNumber = transect.getNbTimes() + 1;
result.setCrossingNumber(crossingNumber);
@@ -632,9 +633,11 @@
// Update transect for nbTimes
TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(transaction);
transectDAO.update(transect);
- logger.debug("Transect {} saved with nbTimes = {}", transect.getName(), crossingNumber);
+ logger.debug("Transect {} saved with nbTimes = {}",
+ transect.getName(), crossingNumber);
- Collection<ObserverPosition> observerPositions = createObserverPositions(transaction, flight);
+ Collection<ObserverPosition> observerPositions =
+ createObserverPositions(transaction, flight);
result.setObserverPosition(observerPositions);
return result;
@@ -666,7 +669,12 @@
Route previousRoute)
throws TopiaException {
- Route result = createRoute(transaction, flight, beginTime, RouteType.TRANSIT, previousRoute, null);
+ Route result = createRoute(transaction,
+ flight,
+ beginTime,
+ RouteType.TRANSIT,
+ previousRoute,
+ null);
return result;
}
@@ -677,9 +685,16 @@
TransectFlight transectFlight)
throws TopiaException {
- Preconditions.checkArgument(transectFlight != null, "You can't create a leg without any transect");
+ Preconditions.checkArgument(
+ transectFlight != null,
+ "You can't create a leg without any transect");
- Route result = createRoute(transaction, flight, beginTime, RouteType.LEG, previousRoute, transectFlight);
+ Route result = createRoute(transaction,
+ flight,
+ beginTime,
+ RouteType.LEG,
+ previousRoute,
+ transectFlight);
RouteDAO dao = SammoaDAOHelper.getRouteDAO(transaction);
@@ -698,9 +713,17 @@
Observation circleBackCause)
throws TopiaException {
- Preconditions.checkArgument(circleBackCause != null, "You can't create a route without any observation cause");
+ Preconditions.checkArgument(
+ circleBackCause != null,
+ "You can't create a route without any observation cause");
- Route result = createRoute(transaction, flight, beginTime, RouteType.CIRCLE_BACK, previousRoute, null);
+ Route result = createRoute(transaction,
+ flight,
+ beginTime,
+ RouteType.CIRCLE_BACK,
+ previousRoute,
+ null);
+
result.setCircleBackCause(circleBackCause);
return result;
@@ -849,16 +872,17 @@
return result;
}
- protected void debugObserverPositions(String title, Iterable<ObserverPosition> observerPositions) {
+ protected void debugObserverPositions(String title,
+ Iterable<ObserverPosition> observerPositions) {
if (logger.isTraceEnabled()) {
logger.trace("ObserverPosition : " + title);
for (ObserverPosition elmt : observerPositions) {
- logger.trace(String.format(
- "ObserverPosition : %s, %s, %s",
- elmt.getTopiaId(),
- (elmt.getObserver() != null ? elmt.getObserver().getInitials() : "N/A"),
- elmt.getPosition())
+ logger.trace(
+ "ObserverPosition : {}, {}, {}",
+ new Object[]{elmt.getTopiaId(),
+ (elmt.getObserver() != null ? elmt.getObserver().getInitials() : "N/A"),
+ elmt.getPosition()}
);
}
}
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-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -34,7 +34,6 @@
import fr.ulr.sammoa.persistence.Region;
import fr.ulr.sammoa.persistence.RegionDAO;
import fr.ulr.sammoa.persistence.SammoaDAOHelper;
-import fr.ulr.sammoa.persistence.SammoaPersistence;
import fr.ulr.sammoa.persistence.Species;
import fr.ulr.sammoa.persistence.SpeciesDAO;
import fr.ulr.sammoa.persistence.Strate;
@@ -55,20 +54,8 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class ReferentialService {
+public class ReferentialService extends SammoaServiceSupport {
- protected SammoaContext context;
-
- protected SammoaConfig config;
-
- protected SammoaPersistence persistence;
-
- public ReferentialService(SammoaContext context) {
- this.context = context;
- this.persistence = context.getPersistence();
- this.config = context.getConfig();
- }
-
public List<Region> getRegions() {
List<Region> result;
@@ -137,81 +124,6 @@
return result;
}
-// public int importSpecies(String regionId, File file) throws IOException {
-//
-// Reader reader = Files.newReader(file, Charsets.UTF_8);
-//
-// try {
-// int result = 0;
-//
-// TopiaContext transaction = persistence.beginTransaction();
-// try {
-//
-// Region region = SammoaDAOHelper.getRegionDAO(transaction).findByTopiaId(regionId);
-// Preconditions.checkNotNull(region);
-//
-// SpeciesDAO dao =
-// SammoaDAOHelper.getSpeciesDAO(transaction);
-//
-// SpeciesImportModel model = new SpeciesImportModel(region);
-//
-// Import<Species> importCsv = Import.newImport(model, reader);
-//
-// for (Species species : importCsv) {
-//
-// // while importing a species, it does become valid
-// species.setLocalCreation(false);
-//
-// Species speciesExists =
-// dao.findByNaturalId(species.getCode(),
-// species.getRegion());
-//
-// if (speciesExists == null) {
-//
-// dao.create(species);
-//
-// result++;
-//
-// if (logger.isDebugEnabled()) {
-// logger.debug(String.format("Create new species %1$s " +
-// "for region %2$s",
-// species.getCode(),
-// region.getCode()));
-// }
-//
-// } else {
-//
-// 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()));
-// }
-// }
-// }
-//
-// transaction.commitTransaction();
-//
-// } catch (TopiaException e) {
-// throw new TopiaRuntimeException(e);
-//
-// } finally {
-// persistence.endTransaction(transaction);
-// }
-// reader.close();
-//
-// return result;
-// } finally {
-// IOUtils.closeQuietly(reader);
-// }
-// }
-
public List<Campaign> getCampaigns() {
List<Campaign> result;
@@ -386,101 +298,6 @@
}
}
-// public int importTransects(String campaignId, Iterable<Transect> transects) {
-//
-// int result = 0;
-//
-// TopiaContext transaction = persistence.beginTransaction();
-// try {
-//
-// CampaignDAO campaignDAO =
-// SammoaDAOHelper.getCampaignDAO(transaction);
-//
-// Campaign campaign = campaignDAO.findByTopiaId(campaignId);
-// Preconditions.checkArgument(campaign != null,
-// "The topiaId : " + campaignId + " doesn't match any existing campaign");
-//
-// StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(transaction);
-// TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(transaction);
-//
-// // Retrieve directly all strates to avoid multiple select queries to find strates
-// List<Strate> strates = strateDAO.findAllByCampaignOrderedByCode(campaign);
-// Map<String, Strate> strateMap =
-// Maps.uniqueIndex(strates, Strates.toCode());
-//
-// int rowIndex = 0;
-// for (Transect transect : transects) {
-//
-// // This is the link with the source shape file that contains graphic elements
-// int graphicIndex = rowIndex;
-//
-// rowIndex++;
-//
-// String strateCode = Strates.getCode(transect.getStrate());
-//
-// // We check the strate, it must exist
-// // We can't do that in TransectImportModel during parsing because
-// // we need two params : sectorNumber and strateType to create the
-// // strateCode and check the existence. It must be done after parsing
-// Strate existStrate = strateMap.get(strateCode);
-// if (existStrate == null) {
-// throw new ImportRuntimeException(String.format(
-// "Unable to read line %1$d : The strate %2$s doesn't exist",
-// rowIndex,
-// strateCode)
-// );
-// }
-//
-// Transect existTransect = transectDAO.findByNaturalId(transect.getName(), existStrate);
-//
-// // If the existing strate is null, create it otherwise ignore
-// if (existTransect == null) {
-//
-// Transect newTransect = transectDAO.createByNaturalId(transect.getName(), existStrate);
-// newTransect.setLength(transect.getLength());
-// newTransect.setStartX(transect.getStartX());
-// newTransect.setStartY(transect.getStartY());
-// newTransect.setEndX(transect.getEndX());
-// newTransect.setEndY(transect.getEndY());
-// newTransect.setNbTimes(transect.getNbTimes());
-// newTransect.setGraphicIndex(graphicIndex);
-//
-// result++;
-//
-// if (logger.isDebugEnabled()) {
-// logger.debug(String.format("Create new transect %1$s" +
-// "(graphicIndex = %2$d)",
-// newTransect.getName(),
-// graphicIndex)
-// );
-// }
-//
-// } else {
-//
-// existTransect.setGraphicIndex(graphicIndex);
-//
-// if (logger.isWarnEnabled()) {
-// logger.warn(String.format("The transect %1$s already " +
-// "exists and will be ignored " +
-// "(graphicIndex = %2$d)",
-// existTransect.getName(),
-// graphicIndex)
-// );
-// }
-// }
-// }
-//
-// transaction.commitTransaction();
-//
-// } catch (TopiaException e) {
-// throw new TopiaRuntimeException(e);
-//
-// } finally {
-// persistence.endTransaction(transaction);
-// }
-// return result;
-// }
-
public String createTransect(Transect transect) {
Preconditions.checkArgument(transect != null);
@@ -494,10 +311,12 @@
TransectDAO dao = SammoaDAOHelper.getTransectDAO(transaction);
- Transect existTransect = dao.findByNaturalId(transect.getName(), transect.getStrate());
+ Transect existTransect = dao.findByNaturalId(transect.getName(),
+ transect.getStrate());
Preconditions.checkArgument(existTransect == null);
- Transect newTransect = dao.createByNaturalId(transect.getName(), transect.getStrate());
+ Transect newTransect = dao.createByNaturalId(transect.getName(),
+ transect.getStrate());
newTransect.setLocalCreation(true);
result = newTransect.getTopiaId();
@@ -533,88 +352,6 @@
return result;
}
-// public int importStrates(String campaignId, Iterable<Strate> strates) {
-//
-// int result = 0;
-//
-// TopiaContext transaction = persistence.beginTransaction();
-// try {
-//
-// CampaignDAO campaignDAO =
-// SammoaDAOHelper.getCampaignDAO(transaction);
-//
-// Campaign campaign = campaignDAO.findByTopiaId(campaignId);
-// Preconditions.checkArgument(campaign != null,
-// "The topiaId : " + campaignId + " doesn't match any existing campaign");
-//
-// StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(transaction);
-// SectorDAO sectorDAO = SammoaDAOHelper.getSectorDAO(transaction);
-//
-// // Retrieve directly all sectors to avoid multiple select queries to find sectors
-// List<Sector> sectors = sectorDAO.findAllByCampaign(campaign);
-// Map<Integer, Sector> sectorMap =
-// Maps.newHashMap(Maps.uniqueIndex(sectors, Sectors.toSectorNumber()));
-//
-// for (Strate strate : strates) {
-//
-// StrateType strateType = strate.getStrateType();
-// Sector sector = strate.getSector();
-// int sectorNumber = sector.getSectorNumber();
-//
-// Strate existStrate;
-//
-// // Create sector if necessary
-// Sector existSector = sectorMap.get(sectorNumber);
-// if (existSector == null) {
-//
-// existSector = sectorDAO.createByNaturalId(sectorNumber, campaign);
-// existSector.setName(sector.getName());
-// sectorMap.put(sectorNumber, existSector);
-//
-// existStrate = null;
-//
-// } else {
-//
-// // Find existing strate only if sector is not created
-// existStrate = strateDAO.findByNaturalId(strateType, existSector);
-// }
-//
-// // If the existing strate is null, create it otherwise ignore
-// if (existStrate == null) {
-//
-// Strate newStrate = strateDAO.createByNaturalId(strateType, existSector);
-// newStrate.setCode(Strates.getCode(newStrate));
-// newStrate.setName(strate.getName());
-//
-// result++;
-//
-// if (logger.isDebugEnabled()) {
-// logger.debug(String.format("Create new strate %1$s",
-// newStrate.getCode())
-// );
-// }
-//
-// } else {
-//
-// if (logger.isWarnEnabled()) {
-// logger.warn(String.format("The strate %1$s already " +
-// "exists and will be ignored",
-// existStrate.getCode()));
-// }
-// }
-// }
-//
-// transaction.commitTransaction();
-//
-// } catch (TopiaException e) {
-// throw new TopiaRuntimeException(e);
-//
-// } finally {
-// persistence.endTransaction(transaction);
-// }
-// return result;
-// }
-
public List<Observer> getAllObservers(Campaign campaign) {
List<Observer> result;
@@ -640,76 +377,4 @@
return result;
}
-// public int importObservers(String campaignId, File file) throws IOException {
-//
-// Reader reader = Files.newReader(file, Charsets.UTF_8);
-//
-// try {
-// int result = 0;
-// TopiaContext transaction = persistence.beginTransaction();
-// try {
-//
-// Campaign campaign = SammoaDAOHelper.getCampaignDAO(transaction).findByTopiaId(campaignId);
-// Preconditions.checkNotNull(campaign);
-//
-// ObserverDAO observerDAO =
-// SammoaDAOHelper.getObserverDAO(transaction);
-//
-// ObserverImportModel model = new ObserverImportModel(campaign);
-//
-// Import<Observer> importCsv = Import.newImport(model, reader);
-//
-// for (Observer anImportCsv : importCsv) {
-//
-// Observer observer;
-//
-// observer = anImportCsv;
-//
-// Observer observerExists =
-// observerDAO.findByNaturalId(observer.getInitials(), observer.getCampaign());
-//
-// if (observerExists == null) {
-//
-// observerDAO.create(observer);
-//
-// result++;
-//
-// if (logger.isDebugEnabled()) {
-// logger.debug(String.format("Create new observer %1$s " +
-// "for campaign %2$s",
-// observer.getInitials(),
-// campaign.getCode()));
-// }
-//
-// } else {
-//
-// 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()));
-// }
-// }
-// }
-//
-// transaction.commitTransaction();
-//
-// } catch (TopiaException e) {
-// throw new TopiaRuntimeException(e);
-//
-// } finally {
-// persistence.endTransaction(transaction);
-// }
-// reader.close();
-// return result;
-// } finally {
-// IOUtils.closeQuietly(reader);
-// }
-// }
}
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-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -199,11 +199,11 @@
return result;
}
- /** @return {@link SammoaConfigOption#AUDIO_DIRECTORY} value */
- public File getAudioDirectory() {
- File result = getOrCreateDirectory(SammoaConfigOption.AUDIO_DIRECTORY);
- return result;
- }
+// /** @return {@link SammoaConfigOption#AUDIO_DIRECTORY} value */
+// public File getAudioDirectory() {
+// File result = getOrCreateDirectory(SammoaConfigOption.AUDIO_DIRECTORY);
+// return result;
+// }
/** @return {@link SammoaConfigOption#SYSTEM_ID} value */
public String getSystemId() {
@@ -308,7 +308,8 @@
}
public File getCampaignDirectory() {
- return new File(getDataDirectory(), "campaign");
+ File result = getOrCreateDirectory(SammoaConfigOption.CAMPAIGN_DIRECTORY);
+ return result;
}
/**
@@ -325,6 +326,11 @@
"${user.home}/.sammoa",
File.class
),
+ CAMPAIGN_DIRECTORY("campaign.directory",
+ n_("sammoa.config.campaign.directory"),
+ "${data.directory}/campaign",
+ File.class
+ ),
LOG_FILE("log.file",
n_("sammoa.config.log.file"),
"${data.directory}/log/sammoa.log",
@@ -357,12 +363,6 @@
"fdesbois(a)codelutin.com",
String.class
),
- /** Directory where audio files will be stored */
- AUDIO_DIRECTORY("audio.directory",
- n_("sammoa.config.audio.directory"),
- "${data.directory}/audio",
- File.class
- ),
/** The id/name of the current system/computer */
SYSTEM_ID("system.id",
n_("sammoa.config.system.id"),
@@ -381,18 +381,6 @@
"shape/vmap_area_thin.shp",
File.class
),
-// /** The strates shape file */
-// STRATE_SHAPE_FILE("strate.shape.file",
-// n_("sammoa.config.strate.shape.file"),
-// "${data.directory}/map/strates.shp",
-// File.class
-// ),
-// /** The transects shape file */
-// TRANSECT_SHAPE_FILE("transect.shape.file",
-// n_("sammoa.config.transect.shape.file"),
-// "${data.directory}/map/transects.shp",
-// File.class
-// ),
/** The auto commit delay for {@link AutoSaveListener} */
AUTO_COMMIT_DELAY("auto.commit.delay",
n_("sammoa.config.flight.number"),
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-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -24,10 +24,11 @@
*/
package fr.ulr.sammoa.application;
-import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationService;
-import fr.ulr.sammoa.application.io.output.map.ExportMapService;
+import com.google.common.base.Preconditions;
import fr.ulr.sammoa.persistence.SammoaPersistence;
+import java.lang.reflect.Constructor;
+
/**
* Created: 08/06/12
*
@@ -45,8 +46,6 @@
protected ReferentialService referentialService;
- protected ExportMapService exportMapService;
-
public SammoaContext(SammoaConfig config) {
this(config, new SammoaPersistence(
config.getApplicationConfig().getFlatOptions(),
@@ -67,31 +66,34 @@
return persistence;
}
+ public <S extends SammoaService> S newService(Class<S> serviceType) {
+
+ try {
+ Constructor<S> constructor = serviceType.getConstructor();
+ Preconditions.checkNotNull(constructor);
+ S s = constructor.newInstance();
+ s.setSammoaContext(this);
+ return s;
+ } catch (Exception e) {
+ throw new SammoaTechnicalException(
+ "Could not instanciate service " + serviceType, e);
+ }
+ }
+
public FlightService getFlightService() {
if (flightService == null) {
- flightService = new FlightService(this);
+ flightService = newService(FlightService.class);
}
return flightService;
}
public ReferentialService getReferentialService() {
if (referentialService == null) {
- referentialService = new ReferentialService(this);
+ referentialService = newService(ReferentialService.class);
}
return referentialService;
}
- public ExportMapService getExportMapService() {
- if (exportMapService == null) {
- exportMapService = new ExportMapService(this);
- }
- return exportMapService;
- }
-
- public ExportApplicationService newExportApplicationService() {
- return new ExportApplicationService(this);
- }
-
public void open() {
persistence.open(
config.getApplicationConfig().getFlatOptions(),
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,43 @@
+package fr.ulr.sammoa.application;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+/**
+ * Contract for any saommoa service.
+ * <p/>
+ * This contract just allow to inject the {@link SammoaContext} in your service.
+ * <p/>
+ * A default support implement in given: {@link SammoaServiceSupport}.
+ * <p/>
+ * To use a such service, you should not instanciate it by your self but prefer
+ * use the servie factory method: {@link SammoaContext#newService(Class)}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @see SammoaServiceSupport
+ * @since 0.6
+ */
+public interface SammoaService {
+
+ void setSammoaContext(SammoaContext context);
+}
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,69 @@
+package fr.ulr.sammoa.application;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ulr.sammoa.persistence.SammoaPersistence;
+import org.nuiton.topia.TopiaContext;
+
+/**
+ * Sammoa service support.
+ * <p/>
+ * This simple implementation of {@link SammoaService}, offer to keep the
+ * {@link #context}, {@link #config} and {@link #persistence} obejcts.
+ * <p/>
+ * <strong>Note:</strong> should be used for any service! and never
+ * instanciated by hand but via {@link SammoaContext#newService(Class)} method.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class SammoaServiceSupport implements SammoaService {
+
+ protected SammoaContext context;
+
+ protected SammoaConfig config;
+
+ protected SammoaPersistence persistence;
+
+
+ public <S extends SammoaService> S newService(Class<S> serviceType) {
+ return context.newService(serviceType);
+ }
+
+ protected TopiaContext beginTransaction() {
+ TopiaContext tx = persistence.beginTransaction();
+ return tx;
+ }
+
+ protected void endTransaction(TopiaContext tx) {
+ persistence.endTransaction(tx);
+ }
+
+ @Override
+ public void setSammoaContext(SammoaContext context) {
+ this.context = context;
+ this.persistence = context.getPersistence();
+ this.config = context.getConfig();
+ }
+}
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightController.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightController.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightController.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -188,7 +188,6 @@
* <ul>
* <li>add()</li>
* <li>{@link #circleBack(Observation)}</li>
- * <li>{@link #next()}</li>
* <li>{@link #observation(Position)}</li>
* <li>{@link #end()}</li>
* <li>{@link #stop()}</li>
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -116,7 +116,7 @@
this.flight = flight;
this.persistence = context.getPersistence();
- this.service = context.getFlightService();
+ this.service = context.newService(FlightService.class);
this.currentRoute = service.getLastRoute(flight);
this.lastTransect = service.getLastTransectDone(flight);
@@ -278,7 +278,8 @@
}
if (logger.isInfoEnabled()) {
- logger.info("Initialize the FlightController for flight " + flight.getFlightNumber());
+ logger.info("Initialize the FlightController for flight {}",
+ flight.getFlightNumber());
}
initialized = true;
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -62,7 +62,6 @@
/** Properties of the campaign. */
protected final Properties properties;
-
public CampaignStorage(File dataDirectory, String campaignId) {
this.directory = new File(dataDirectory, campaignId);
this.campaignId = campaignId;
@@ -81,6 +80,10 @@
return new File(directory, "map");
}
+ public File getMapFile(String mapFilename) {
+ return new File(getMapDirectory(), mapFilename);
+ }
+
public File getFlightDirectory() {
return new File(directory, "flight");
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -70,6 +70,7 @@
public File getAudioFile(String filename) {
return new File(getAudioDirectory(), filename);
}
+
public File getPropertiesFile() {
return new File(directory, "flight.properties");
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvService.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvService.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -25,13 +25,14 @@
import com.google.common.base.Preconditions;
import com.google.common.io.Files;
-import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.application.SammoaServiceSupport;
import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.CampaignDAO;
import fr.ulr.sammoa.persistence.Observer;
import fr.ulr.sammoa.persistence.ObserverDAO;
import fr.ulr.sammoa.persistence.Region;
+import fr.ulr.sammoa.persistence.RegionDAO;
import fr.ulr.sammoa.persistence.SammoaDAOHelper;
-import fr.ulr.sammoa.persistence.SammoaPersistence;
import fr.ulr.sammoa.persistence.Species;
import fr.ulr.sammoa.persistence.SpeciesDAO;
import org.apache.commons.io.Charsets;
@@ -53,17 +54,11 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
*/
-public class ImportCsvService {
+public class ImportCsvService extends SammoaServiceSupport {
private static final Logger logger =
LoggerFactory.getLogger(ImportCsvService.class);
- protected SammoaPersistence persistence;
-
- public ImportCsvService(SammoaContext context) {
- this.persistence = context.getPersistence();
- }
-
public int importSpecies(String regionId, File file) throws IOException {
Reader reader = Files.newReader(file, Charsets.UTF_8);
@@ -74,11 +69,12 @@
TopiaContext transaction = persistence.beginTransaction();
try {
- Region region = SammoaDAOHelper.getRegionDAO(transaction).findByTopiaId(regionId);
+ RegionDAO regionDAO = SammoaDAOHelper.getRegionDAO(transaction);
+ Region region = regionDAO.findByTopiaId(regionId);
Preconditions.checkNotNull(region);
+ String regionCode = region.getCode();
- SpeciesDAO dao =
- SammoaDAOHelper.getSpeciesDAO(transaction);
+ SpeciesDAO dao = SammoaDAOHelper.getSpeciesDAO(transaction);
SpeciesImportModel model = new SpeciesImportModel(region);
@@ -86,40 +82,10 @@
for (Species species : importCsv) {
- // while importing a species, it does become valid
- species.setLocalCreation(false);
+ boolean isNew = importSpecies(dao, species, regionCode);
- Species speciesExists =
- dao.findByNaturalId(species.getCode(),
- species.getRegion());
-
- if (speciesExists == null) {
-
- dao.create(species);
-
+ if (isNew) {
result++;
-
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Create new species %1$s " +
- "for region %2$s",
- species.getCode(),
- region.getCode()));
- }
-
- } else {
-
- 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()));
- }
}
}
@@ -132,13 +98,54 @@
persistence.endTransaction(transaction);
}
reader.close();
-
return result;
} finally {
IOUtils.closeQuietly(reader);
}
}
+ protected boolean importSpecies(SpeciesDAO dao,
+ Species species,
+ String regionCode) throws TopiaException {
+ // while importing a species, it does become valid
+ species.setLocalCreation(false);
+
+ Species speciesExists =
+ dao.findByNaturalId(species.getCode(),
+ species.getRegion());
+
+ boolean newSpecies = false;
+ if (speciesExists == null) {
+
+ dao.create(species);
+
+ newSpecies = true;
+
+ if (logger.isDebugEnabled()) {
+ logger.debug(
+ "Create new species {} for region {}",
+ species.getCode(), regionCode);
+ }
+
+ } else {
+
+ 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(
+ "The species {} already exists and is updated",
+ species.getCode());
+ }
+ }
+
+ return newSpecies;
+ }
+
public int importObservers(String campaignId, File file) throws IOException {
Reader reader = Files.newReader(file, Charsets.UTF_8);
@@ -148,52 +155,23 @@
TopiaContext transaction = persistence.beginTransaction();
try {
- Campaign campaign = SammoaDAOHelper.getCampaignDAO(transaction).findByTopiaId(campaignId);
+ CampaignDAO campaignDAO = SammoaDAOHelper.getCampaignDAO(transaction);
+ Campaign campaign = campaignDAO.findByTopiaId(campaignId);
Preconditions.checkNotNull(campaign);
+ String campaignCode = campaign.getCode();
- ObserverDAO observerDAO =
- SammoaDAOHelper.getObserverDAO(transaction);
+ ObserverDAO dao = SammoaDAOHelper.getObserverDAO(transaction);
ObserverImportModel model = new ObserverImportModel(campaign);
Import<Observer> importCsv = Import.newImport(model, reader);
- for (Observer anImportCsv : importCsv) {
+ for (Observer observer : importCsv) {
- Observer observer;
+ boolean isNew = importObserver(dao, observer, campaignCode);
- observer = anImportCsv;
-
- Observer observerExists =
- observerDAO.findByNaturalId(observer.getInitials(), observer.getCampaign());
-
- if (observerExists == null) {
-
- observerDAO.create(observer);
-
+ if (isNew) {
result++;
-
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Create new observer %1$s " +
- "for campaign %2$s",
- observer.getInitials(),
- campaign.getCode()));
- }
-
- } else {
-
- 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()));
- }
}
}
@@ -211,4 +189,43 @@
IOUtils.closeQuietly(reader);
}
}
+
+ protected boolean importObserver(ObserverDAO dao,
+ Observer observer,
+ String campaignCode) throws TopiaException {
+ boolean newEntity = false;
+
+ Observer observerExists = dao.findByNaturalId(observer.getInitials(),
+ observer.getCampaign());
+
+ if (observerExists == null) {
+
+ dao.create(observer);
+
+ newEntity = true;
+
+ if (logger.isDebugEnabled()) {
+
+ logger.debug(
+ "Create new observer {} for campaign {}",
+ observer.getInitials(), campaignCode);
+ }
+
+ } else {
+
+ observerExists.setEmail(observer.getEmail());
+ observerExists.setFirstName(observer.getFirstName());
+ observerExists.setLastName(observer.getLastName());
+ observerExists.setOrganization(observer.getOrganization());
+ observerExists.setPilot(observer.isPilot());
+ dao.update(observerExists);
+
+ if (logger.isInfoEnabled()) {
+ logger.info(
+ "The observer {} already exists and is updated",
+ observer.getInitials());
+ }
+ }
+ return newEntity;
+ }
}
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/java-info.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/java-info.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/java-info.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,28 @@
+/**
+ * Base package for csv imports.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.application.io.input.csv;/*
+ * #%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%
+ */
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/csv/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -25,11 +25,10 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
-import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.application.SammoaServiceSupport;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.CampaignDAO;
import fr.ulr.sammoa.persistence.SammoaDAOHelper;
-import fr.ulr.sammoa.persistence.SammoaPersistence;
import fr.ulr.sammoa.persistence.Sector;
import fr.ulr.sammoa.persistence.SectorDAO;
import fr.ulr.sammoa.persistence.Sectors;
@@ -55,18 +54,12 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
*/
-public class ImportMapService {
+public class ImportMapService extends SammoaServiceSupport {
private static final Logger logger =
LoggerFactory.getLogger(ImportMapService.class);
- protected SammoaPersistence persistence;
-
- public ImportMapService(SammoaContext context) {
- this.persistence = context.getPersistence();
- }
-
public int importTransects(String campaignId, Iterable<Transect> transects) {
int result = 0;
@@ -79,7 +72,8 @@
Campaign campaign = campaignDAO.findByTopiaId(campaignId);
Preconditions.checkArgument(campaign != null,
- "The topiaId : " + campaignId + " doesn't match any existing campaign");
+ "The topiaId : " + campaignId +
+ " doesn't match any existing campaign");
StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(transaction);
TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(transaction);
@@ -129,10 +123,10 @@
result++;
if (logger.isDebugEnabled()) {
- logger.debug(String.format("Create new transect %1$s" +
- "(graphicIndex = %2$d)",
- newTransect.getName(),
- graphicIndex)
+ logger.debug("Create new transect {}" +
+ "(graphicIndex = {})",
+ newTransect.getName(),
+ graphicIndex
);
}
@@ -141,11 +135,11 @@
existTransect.setGraphicIndex(graphicIndex);
if (logger.isWarnEnabled()) {
- logger.warn(String.format("The transect %1$s already " +
- "exists and will be ignored " +
- "(graphicIndex = %2$d)",
- existTransect.getName(),
- graphicIndex)
+ logger.warn("The transect {} already " +
+ "exists and will be ignored " +
+ "(graphicIndex = {})",
+ existTransect.getName(),
+ graphicIndex
);
}
}
@@ -174,7 +168,8 @@
Campaign campaign = campaignDAO.findByTopiaId(campaignId);
Preconditions.checkArgument(campaign != null,
- "The topiaId : " + campaignId + " doesn't match any existing campaign");
+ "The topiaId : " + campaignId +
+ " doesn't match any existing campaign");
StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(transaction);
SectorDAO sectorDAO = SammoaDAOHelper.getSectorDAO(transaction);
@@ -182,7 +177,8 @@
// Retrieve directly all sectors to avoid multiple select queries to find sectors
List<Sector> sectors = sectorDAO.findAllByCampaign(campaign);
Map<Integer, Sector> sectorMap =
- Maps.newHashMap(Maps.uniqueIndex(sectors, Sectors.toSectorNumber()));
+ Maps.newHashMap(Maps.uniqueIndex(sectors,
+ Sectors.toSectorNumber()));
for (Strate strate : strates) {
@@ -218,17 +214,17 @@
result++;
if (logger.isDebugEnabled()) {
- logger.debug(String.format("Create new strate %1$s",
- newStrate.getCode())
+ logger.debug("Create new strate {}",
+ newStrate.getCode()
);
}
} else {
if (logger.isWarnEnabled()) {
- logger.warn(String.format("The strate %1$s already " +
- "exists and will be ignored",
- existStrate.getCode()));
+ logger.warn("The strate {} already " +
+ "exists and will be ignored",
+ existStrate.getCode());
}
}
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -47,15 +47,21 @@
private static final Logger logger =
LoggerFactory.getLogger(ShpImporter.class);
+ protected final ImportModel<E> model;
+
+ protected final String copyFileName;
+
+ public ShpImporter(ImportModel<E> model, String copyFileName) {
+ this.model = model;
+ this.copyFileName = copyFileName;
+ }
+
protected abstract String onDbfLoaded(Iterable<E> elements,
CampaignStorage storage);
- protected abstract ImportModel<E> getModel();
+ public String importShape(File file,
+ CampaignStorage storage) throws IOException {
- protected abstract String getCopyFileName();
-
- public String importShape(File file, CampaignStorage storage) throws IOException {
-
File dbfFile;
String fileName = file.getName();
File sourceDirectory = file.getParentFile();
@@ -65,7 +71,8 @@
final String fileNameWithoutExt = fileName.substring(0, extIndex);
if (logger.isDebugEnabled()) {
- logger.debug("Source directory '" + sourceDirectory.getAbsolutePath() + "' and fileName '" + fileNameWithoutExt + "'");
+ logger.debug("Source directory '{}' and fileName '{}'",
+ sourceDirectory.getAbsolutePath(), fileNameWithoutExt);
}
if (!ext.equals("dbf")) {
@@ -73,20 +80,21 @@
fileName = fileNameWithoutExt + "dbf";
if (logger.isDebugEnabled()) {
- logger.debug(String.format("Use dbfFile %s for import", fileName));
+ logger.debug("Use dbfFile {} for import", fileName);
}
dbfFile = new File(sourceDirectory, fileName);
if (!dbfFile.exists()) {
- throw new FileNotFoundException("Can't found dbf file '" + dbfFile.getAbsolutePath() + "' for import");
+ throw new FileNotFoundException(
+ "Can't found dbf file '" + dbfFile + "' for import");
}
} else {
dbfFile = file;
}
- DbfImport<E> importer = new DbfImport<E>(getModel(), dbfFile.toURI().toURL());
+ DbfImport<E> importer = new DbfImport<E>(model, dbfFile.toURI().toURL());
String result = onDbfLoaded(importer, storage);
@@ -98,10 +106,9 @@
int extIndex = fullName.lastIndexOf(extension);
String name = fullName.substring(0, extIndex);
if (logger.isDebugEnabled()) {
- logger.debug(String.format("Read file : %s [ext = %s] -> check equals for %s",
- fullName,
- extension,
- name)
+ logger.debug(
+ "Read file : {} [ext = {}] -> check equals for {}",
+ new Object[]{fullName, extension, name}
);
}
return fileNameWithoutExt.equals(name);
@@ -111,12 +118,12 @@
for (String name : files) {
String extension = Files.getFileExtension(name);
File sourceFile = new File(sourceDirectory, name);
- File targetFile = new File(storage.getMapDirectory(), getCopyFileName() + "." + extension);
+ File targetFile = new File(storage.getMapDirectory(),
+ copyFileName + "." + extension);
if (logger.isInfoEnabled()) {
- logger.info(String.format("Copy file '%1$s' to '%2$s'",
- sourceFile.getAbsolutePath(),
- targetFile.getAbsolutePath())
- );
+ logger.info("Copy file '{}' to '{}'",
+ sourceFile.getAbsolutePath(),
+ targetFile.getAbsolutePath());
}
FileUtils.copyFile(sourceFile, targetFile);
}
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/java-info.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/java-info.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/java-info.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,30 @@
+/**
+ * Base package for map imports.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.application.io.input.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%
+ */
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationModel.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationModel.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationModel.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,61 @@
+package fr.ulr.sammoa.application.io.input.sammoa;
+
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Lists;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Model of sammoa import.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class ImportApplicationModel {
+
+ public static ImportApplicationModel newModel(File importFile,
+ List<String> flightIds) {
+ ImportApplicationModel result = new ImportApplicationModel();
+ result.importFile = importFile;
+ result.flightIds = Lists.newArrayList(flightIds);
+ return result;
+ }
+
+ /** Import file that contains all the stuff to import. */
+ protected File importFile;
+
+ /** All flight ids to import from the import file. */
+ protected List<String> flightIds;
+
+ public File getImportFile() {
+ return importFile;
+ }
+
+ public List<String> getFlightIds() {
+ return flightIds;
+ }
+}
\ No newline at end of file
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,63 @@
+package fr.ulr.sammoa.application.io.input.sammoa;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ulr.sammoa.application.SammoaServiceSupport;
+import org.nuiton.util.TimeLog;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Service to import sammoa files.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class ImportApplicationService extends SammoaServiceSupport {
+
+ /** Logger. */
+ private static final Logger logger =
+ LoggerFactory.getLogger(ImportApplicationService.class);
+
+ private static final TimeLog timeLog =
+ new TimeLog(ImportApplicationService.class);
+
+ public void importApplication(ImportApplicationModel model) {
+
+ if (logger.isInfoEnabled()) {
+ logger.info("Start Application import to {} :: {}",
+ model.getImportFile());
+ }
+
+ long startTime = TimeLog.getTime();
+
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ //BOUH!
+ }
+
+ timeLog.log(startTime, "importApplication", "after Callback execution");
+ }
+}
\ No newline at end of file
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/java-info.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/java-info.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/java-info.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,30 @@
+/**
+ * Base package for sammo import.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.application.io.input.sammoa;
+
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/java-info.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/java-info.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/java-info.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,28 @@
+/**
+ * Base package for all import/export operations.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.application.io;/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapModel.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapModel.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapModel.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -30,7 +30,6 @@
import fr.ulr.sammoa.persistence.Strate;
import java.io.File;
-import java.io.Serializable;
import java.util.Date;
import java.util.List;
@@ -40,10 +39,8 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.5
*/
-public class ExportMapModel implements Serializable {
+public class ExportMapModel {
- private static final long serialVersionUID = 1L;
-
public static ExportMapModel newModel(File exportDirectory,
String exportFilename,
Campaign campaign,
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -32,8 +32,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
import fr.ulr.sammoa.application.FlightService;
-import fr.ulr.sammoa.application.SammoaConfig;
-import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.application.SammoaServiceSupport;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.GeoPoint;
@@ -46,7 +45,6 @@
import fr.ulr.sammoa.persistence.Route;
import fr.ulr.sammoa.persistence.RouteType;
import fr.ulr.sammoa.persistence.Routes;
-import fr.ulr.sammoa.persistence.SammoaPersistence;
import fr.ulr.sammoa.persistence.Species;
import fr.ulr.sammoa.persistence.Strate;
import fr.ulr.sammoa.persistence.Transect;
@@ -71,28 +69,15 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.5
*/
-public class ExportMapService {
+public class ExportMapService extends SammoaServiceSupport {
private static final Logger logger =
LoggerFactory.getLogger(ExportMapService.class);
private static final TimeLog timeLog = new TimeLog(ExportMapService.class);
- protected SammoaContext context;
+ protected final DateFormat timeFormat = new SimpleDateFormat("HHmmss");
- protected SammoaConfig config;
-
- protected SammoaPersistence persistence;
-
- protected DateFormat timeFormat;
-
- public ExportMapService(SammoaContext context) {
- this.context = context;
- this.persistence = context.getPersistence();
- this.config = context.getConfig();
- this.timeFormat = new SimpleDateFormat("HHmmss");
- }
-
public void exportEffortsMap(ExportMapModel dataModel) {
Preconditions.checkNotNull(dataModel.getCampaign());
Preconditions.checkNotNull(dataModel.getBeginDate());
@@ -152,7 +137,7 @@
EsriGraphicList graphicList = new EsriPointList();
- FlightService flightService = context.getFlightService();
+ FlightService flightService = newService(FlightService.class);
Campaign campaign = dataModel.getCampaign();
Region region = campaign.getRegion();
@@ -160,7 +145,7 @@
List<RouteType> routeTypes = dataModel.getRouteTypes();
List<Strate> strates = dataModel.getStrates();
- TopiaContext tx = context.getPersistence().beginTransaction();
+ TopiaContext tx = beginTransaction();
try {
// get flights for campaign (and between begin - end date)
@@ -306,7 +291,7 @@
timeLog.log(startTime, "exportEffortsMap", "after EsriShapeExport execution");
} finally {
- context.getPersistence().endTransaction(tx);
+ endTransaction(tx);
}
}
@@ -373,10 +358,10 @@
List<RouteType> routeTypes = dataModel.getRouteTypes();
List<Strate> strates = dataModel.getStrates();
- TopiaContext tx = context.getPersistence().beginTransaction();
+ TopiaContext tx = beginTransaction();
try {
- FlightService flightService = context.getFlightService();
+ FlightService flightService = newService(FlightService.class);
// get flights for campaign (and between begin - end date)
Iterable<Flight> flights = flightService.getFlights(
@@ -550,7 +535,7 @@
timeLog.log(startTime, "exportObservationsMap", "after EsriShapeExport execution");
} finally {
- context.getPersistence().endTransaction(tx);
+ endTransaction(tx);
}
}
@@ -585,7 +570,7 @@
Campaign campaign = dataModel.getCampaign();
Region region = campaign.getRegion();
- FlightService flightService = context.getFlightService();
+ FlightService flightService = newService(FlightService.class);
// get flights for campaign (and between begin - end date)
Iterable<Flight> flights = flightService.getFlights(campaign,
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/java-info.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/java-info.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/java-info.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,28 @@
+/**
+ * Base package for map export operations.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.application.io.output.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%
+ */
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -27,18 +27,15 @@
import fr.ulr.sammoa.persistence.Flight;
import java.io.File;
-import java.io.Serializable;
/**
- * Model of export application.
+ * Model of sammoa export.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
*/
-public class ExportApplicationModel implements Serializable {
+public class ExportApplicationModel {
- private static final long serialVersionUID = 1L;
-
public static ExportApplicationModel newModel(File exportDirectory,
String exportFilename,
Campaign campaign,
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -23,12 +23,10 @@
* #L%
*/
-import fr.ulr.sammoa.application.SammoaConfig;
-import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.application.SammoaServiceSupport;
import fr.ulr.sammoa.application.io.CampaignStorage;
import fr.ulr.sammoa.application.io.CampaignStorages;
import fr.ulr.sammoa.persistence.Campaign;
-import fr.ulr.sammoa.persistence.SammoaPersistence;
import org.nuiton.util.TimeLog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,7 +37,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
*/
-public class ExportApplicationService {
+public class ExportApplicationService extends SammoaServiceSupport {
/** Logger. */
private static final Logger logger =
@@ -49,18 +47,6 @@
private static final TimeLog timeLog =
new TimeLog(ExportApplicationService.class);
- protected final SammoaContext context;
-
- protected final SammoaConfig config;
-
- protected final SammoaPersistence persistence;
-
- public ExportApplicationService(SammoaContext context) {
- this.context = context;
- this.persistence = context.getPersistence();
- this.config = context.getConfig();
- }
-
public void exportApplication(ExportApplicationModel model) {
if (logger.isInfoEnabled()) {
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/java-info.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/java-info.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/java-info.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -0,0 +1,28 @@
+/**
+ * Base package for sammoa export operation.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.application.io.output.sammoa;/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-08-14 13:04:08 UTC (rev 418)
@@ -9,6 +9,7 @@
sammoa.config.effort.number=
sammoa.config.flight.number=
sammoa.config.fly.mode=
+sammoa.config.campaign.directory=Directory where are stored campaign data (maps, flight audio files,...)
sammoa.config.gps.check.period=Time in seconds between each GPS capture
sammoa.config.gps.device=GPS device port
sammoa.config.gps.handler=GpsHandler class \: fr.ulr.sammoa.application.device.gps.GpsHandlerGpylon or fr.ulr.sammoa.application.device.gps.FakeGpsHandler
Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java
===================================================================
--- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -66,7 +66,7 @@
SammoaContext context = new SammoaContext(config, database.getPersistence());
- FlightService service = new FlightService(context);
+ FlightService service = context.newService(FlightService.class);
Campaign campaign = database.createCampaign("PACOMM", "FRANCE");
@@ -83,8 +83,7 @@
SammoaContext context = new SammoaContext(config, database.getPersistence());
- FlightService service = new FlightService(context);
- ReferentialService referential = new ReferentialService(context);
+ FlightService service = context.newService(FlightService.class);
Campaign campaign = database.createCampaign("PACOMM", "FRANCE");
Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java
===================================================================
--- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -62,7 +62,7 @@
SammoaContext context = new SammoaContext(config, database.getPersistence());
- ImportCsvService instance = new ImportCsvService(context);
+ ImportCsvService instance = context.newService(ImportCsvService.class);
Campaign campaign = database.createCampaign("PACOMM-2012", "FRANCE");
Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java
===================================================================
--- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java 2012-08-13 22:23:13 UTC (rev 417)
+++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java 2012-08-14 13:04:08 UTC (rev 418)
@@ -98,7 +98,7 @@
campaign.setBeginDate(DateUtil.createDate(1, 1, 2012));
campaign.setEndDate(DateUtil.createDate(31, 12, 2012));
- FlightService flightService = new FlightService(context);
+ FlightService flightService = context.newService(FlightService.class);
Flight flight = flightService.createFlight(campaign);
flight.setBeginDate(DateUtil.createDate(18, 0, 12, 18, 7, 2012));
@@ -108,7 +108,7 @@
transaction.commitTransaction();
- ExportMapService exportMapService = new ExportMapService(context);
+ ExportMapService exportMapService = context.newService(ExportMapService.class);
File exportDirectory = database.getTestBasedir();
1
0
r417 - trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application
by tchemit@users.forge.codelutin.com 13 Aug '12
by tchemit@users.forge.codelutin.com 13 Aug '12
13 Aug '12
Author: tchemit
Date: 2012-08-14 00:23:13 +0200 (Tue, 14 Aug 2012)
New Revision: 417
Url: http://forge.codelutin.com/repositories/revision/sammoa/417
Log:
remove obsolete packages
Removed:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/csv/
1
0
r416 - trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application
by tchemit@users.forge.codelutin.com 13 Aug '12
by tchemit@users.forge.codelutin.com 13 Aug '12
13 Aug '12
Author: tchemit
Date: 2012-08-14 00:21:06 +0200 (Tue, 14 Aug 2012)
New Revision: 416
Url: http://forge.codelutin.com/repositories/revision/sammoa/416
Log:
remove obsolete packages
Removed:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/
1
0