Tutti-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
February 2013
- 6 participants
- 236 discussions
r335 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-persistence/src/main/xmi tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service tutti-service/src/main/java/fr/ifremer/tutti/service
by tchemit@users.forge.codelutin.com 05 Feb '13
by tchemit@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: tchemit
Date: 2013-02-05 15:44:38 +0100 (Tue, 05 Feb 2013)
New Revision: 335
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/335
Log:
#1838: [REFERENTIEL] - Import / Export des r?\195?\169f?\195?\169rentiels (add import api)
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceTest.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-05 14:29:36 UTC (rev 334)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-05 14:44:38 UTC (rev 335)
@@ -136,18 +136,18 @@
List<Vessel> getAllFishingVessel();
/**
- * Get all species with no {@link Species#cruiseCode} filled.
+ * Get all species with no {@link Species#surveyCode} filled.
*
- * @return all species with no {@code cruiseCode} filled at all.
+ * @return all species with no {@code surveyCode} filled at all.
* @since 0.1
*/
List<Species> getAllSpecies();
/**
- * Get all species with {@link Species#cruiseCode} filled by optional protocol.
+ * Get all species with {@link Species#surveyCode} filled by optional protocol.
*
* @param protocol optional protocol to fill some species cruisecode.
- * @return all species with {@code cruiseCode} filled for species definied in protocol.
+ * @return all species with {@code surveyCode} filled for species definied in protocol.
* @since 1.0
*/
List<Species> getAllSpecies(TuttiProtocol protocol);
@@ -184,6 +184,46 @@
boolean isSortedQualitativeValue(CaracteristicQualitativeValue value);
+ /**
+ * Import given temporary species.
+ *
+ * @param species species to import
+ * @return imported species
+ * @since 1.0
+ */
+ @Transactional(readOnly = false)
+ List<Species> importTemporarySpecies(List<Species> species);
+
+ /**
+ * Import given temporary vessels.
+ *
+ * @param vessels vessels to import
+ * @return imported vessels
+ * @since 1.0
+ */
+ @Transactional(readOnly = false)
+ List<Vessel> importTemporaryVessel(List<Vessel> vessels);
+
+ /**
+ * Import given temporary persons.
+ *
+ * @param persons persons to import
+ * @return imported persons
+ * @since 1.0
+ */
+ @Transactional(readOnly = false)
+ List<Person> importTemporaryPerson(List<Person> persons);
+
+ /**
+ * Import given temporary gears.
+ *
+ * @param gears gears to import
+ * @return imported gears
+ * @since 1.0
+ */
+ @Transactional(readOnly = false)
+ List<Gear> importTemporaryGear(List<Gear> gears);
+
//------------------------------------------------------------------------//
//-- Program methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-05 14:29:36 UTC (rev 334)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-05 14:44:38 UTC (rev 335)
@@ -58,6 +58,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.Status;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
import org.apache.commons.io.FileUtils;
@@ -254,10 +255,10 @@
@Override
public List<Species> getAllSpecies(TuttiProtocol protocol) {
List<Species> result = getAllSpecies();
- if (protocol!=null && !protocol.isSpeciesEmpty()) {
- Map<String, Species> map =TuttiEntities.splitById(result);
+ if (protocol != null && !protocol.isSpeciesEmpty()) {
+ Map<String, Species> map = TuttiEntities.splitById(result);
for (SpeciesProtocol speciesProtocol : protocol.getSpecies()) {
- map.get(speciesProtocol.getSpeciesId()).setCruiseCode(speciesProtocol.getCruiseCode());
+ map.get(speciesProtocol.getSpeciesId()).setSurveyCode(speciesProtocol.getSurveyCode());
}
}
return result;
@@ -379,7 +380,72 @@
return value != null && value.getId().equals("311");
}
+ @Override
+ public List<Species> importTemporarySpecies(List<Species> species) {
+ Status status = new Status();
+ status.setId("2");
+ String name = getKey(Species.class, null);
+ for (Species toCreate : species) {
+ Species created = create(name, toCreate, false);
+ created.setStatus(status);
+ }
+ persistToFile(name);
+ }
+
+ @Override
+ public List<Vessel> importTemporaryVessel(List<Vessel> vessels) {
+ Status status = new Status();
+ status.setId("2");
+
+ String nameScientific = getKey(Vessel.class, "Scientific");
+ String nameFishing = getKey(Vessel.class, "Fishing");
+ for (Vessel toCreate : vessels) {
+ Vessel created;
+ if (toCreate.isScientificVessel()) {
+ created = create(nameScientific, toCreate, false);
+ } else {
+ created = create(nameFishing, toCreate, false);
+ }
+ created.setStatus(status);
+ }
+ persistToFile(nameScientific);
+ persistToFile(nameFishing);
+ }
+
+ @Override
+ public List<Person> importTemporaryPerson(List<Person> persons) {
+ Status status = new Status();
+ status.setId("2");
+
+ String name = getKey(Person.class, null);
+ for (Person toCreate : persons) {
+ Person created = create(name, toCreate, false);
+ created.setStatus(status);
+ }
+ persistToFile(name);
+ }
+
+ @Override
+ public List<Gear> importTemporaryGear(List<Gear> gears) {
+ Status status = new Status();
+ status.setId("2");
+
+ String nameScientific = getKey(Gear.class, "Scientific");
+ String nameFishing = getKey(Gear.class, "Fishing");
+ for (Gear toCreate : gears) {
+ Gear created;
+ if (toCreate.isScientificGear()) {
+ created = create(nameScientific, toCreate, false);
+ } else {
+ created = create(nameFishing, toCreate, false);
+ }
+ created.setStatus(status);
+ }
+ persistToFile(nameScientific);
+ persistToFile(nameFishing);
+ }
+
//------------------------------------------------------------------------//
//-- Program methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-05 14:29:36 UTC (rev 334)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-05 14:44:38 UTC (rev 335)
@@ -61,6 +61,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.List;
@@ -210,7 +211,7 @@
if (protocol != null && !protocol.isSpeciesEmpty()) {
Map<String, Species> map = TuttiEntities.splitById(result);
for (SpeciesProtocol speciesProtocol : protocol.getSpecies()) {
- map.get(speciesProtocol.getSpeciesId()).setCruiseCode(speciesProtocol.getCruiseCode());
+ map.get(speciesProtocol.getSpeciesId()).setSurveyCode(speciesProtocol.getSurveyCode());
}
}
return result;
@@ -286,6 +287,30 @@
return referentialService.getGear(gearId);
}
+ @Override
+ @Transactional(readOnly = false)
+ public void importTemporarySpecies(List<Species> species) {
+ referentialService.importTemporarySpecies(species);
+ }
+
+ @Override
+ @Transactional(readOnly = false)
+ public void importTemporaryVessel(List<Vessel> vessels) {
+ referentialService.importTemporaryVessel(vessels);
+ }
+
+ @Override
+ @Transactional(readOnly = false)
+ public void importTemporaryPerson(List<Person> persons) {
+ referentialService.importTemporaryPerson(persons);
+ }
+
+ @Override
+ @Transactional(readOnly = false)
+ public void importTemporaryGear(List<Gear> gears) {
+ referentialService.importTemporaryGear(gears);
+ }
+
//------------------------------------------------------------------------//
//-- Program methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-02-05 14:29:36 UTC (rev 334)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-02-05 14:44:38 UTC (rev 335)
@@ -169,4 +169,40 @@
Caracteristic getCaracteristic(Integer pmfmId);
boolean isSortedQualitativeValue(CaracteristicQualitativeValue value);
+
+ /**
+ * Import given temporary species.
+ *
+ * @param species species to import
+ * @since 1.0
+ */
+ @Transactional(readOnly = false)
+ List<Species> importTemporarySpecies(List<Species> species);
+
+ /**
+ * Import given temporary vessels.
+ *
+ * @param vessels vessels to import
+ * @since 1.0
+ */
+ @Transactional(readOnly = false)
+ List<Vessel> importTemporaryVessel(List<Vessel> vessels);
+
+ /**
+ * Import given temporary persons.
+ *
+ * @param persons persons to import
+ * @since 1.0
+ */
+ @Transactional(readOnly = false)
+ List<Person> importTemporaryPerson(List<Person> persons);
+
+ /**
+ * Import given temporary gears.
+ *
+ * @param gears gears to import
+ * @since 1.0
+ */
+ @Transactional(readOnly = false)
+ List<Gear> importTemporaryGear(List<Gear> gears);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-02-05 14:29:36 UTC (rev 334)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-02-05 14:44:38 UTC (rev 335)
@@ -421,8 +421,7 @@
Caracteristic result = getCaracteristic(pmfmId);
// Search the qualitative value to skip
- for (Iterator iterator = result.getQualitativeValue().iterator(); iterator.hasNext(); ) {
- CaracteristicQualitativeValue qv = (CaracteristicQualitativeValue) iterator.next();
+ for (CaracteristicQualitativeValue qv : result.getQualitativeValue()) {
if (qv != null && qv.getId() != null
&& enumeration.QUALITATIVE_UNSORTED_ID.equals(Integer.valueOf(qv.getId()))) {
result.removeQualitativeValue(qv);
@@ -462,6 +461,30 @@
return target;
}
+ @Override
+ public List<Species> importTemporarySpecies(List<Species> species) {
+ //TODO
+ return null;
+ }
+
+ @Override
+ public List<Vessel> importTemporaryVessel(List<Vessel> vessels) {
+ //TODO
+ return null;
+ }
+
+ @Override
+ public List<Person> importTemporaryPerson(List<Person> persons) {
+ //TODO
+ return null;
+ }
+
+ @Override
+ public List<Gear> importTemporaryGear(List<Gear> gears) {
+ //TODO
+ return null;
+ }
+
//------------------------------------------------------------------------//
//-- Internal methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-02-05 14:29:36 UTC (rev 334)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-02-05 14:44:38 UTC (rev 335)
@@ -69,7 +69,7 @@
"- !SpeciesProtocol\n" +
" id: 1\n" +
" calcifySampleEnabled: true\n" +
- " cruiseCode: BAR\n" +
+ " surveyCode: BAR\n" +
" lengthStepPmfmId: 1394\n" +
" maturityEnabled: true\n" +
" sexEnabled: true\n" +
@@ -80,7 +80,7 @@
" ageEnabled: true\n" +
" calcifySampleEnabled: true\n" +
" countIfNoFrequencyEnabled: true\n" +
- " cruiseCode: CHIN\n" +
+ " surveyCode: CHIN\n" +
" lengthStepPmfmId: 323\n" +
" maturityEnabled: true\n" +
" sexEnabled: true\n" +
@@ -146,7 +146,7 @@
Assert.assertNotNull(sp1);
Assert.assertEquals("1", sp1.getId());
Assert.assertEquals("11242", sp1.getSpeciesId());
- Assert.assertEquals("BAR", sp1.getCruiseCode());
+ Assert.assertEquals("BAR", sp1.getSurveyCode());
Assert.assertEquals("1394", sp1.getLengthStepPmfmId());
Assert.assertFalse(sp1.isAgeEnabled());
Assert.assertTrue(sp1.isCalcifySampleEnabled());
@@ -160,7 +160,7 @@
Assert.assertNotNull(sp2);
Assert.assertEquals("2", sp2.getId());
Assert.assertEquals("3835", sp2.getSpeciesId());
- Assert.assertEquals("CHIN", sp2.getCruiseCode());
+ Assert.assertEquals("CHIN", sp2.getSurveyCode());
Assert.assertEquals("323", sp2.getLengthStepPmfmId());
Assert.assertTrue(sp2.isAgeEnabled());
Assert.assertTrue(sp2.isCalcifySampleEnabled());
@@ -185,7 +185,7 @@
SpeciesProtocol sp1 = new SpeciesProtocol();
sp1.setId("1");
sp1.setSpeciesId("11242");
- sp1.setCruiseCode("BAR");
+ sp1.setSurveyCode("BAR");
sp1.setLengthStepPmfmId("1394");
sp1.setCalcifySampleEnabled(true);
sp1.setMaturityEnabled(true);
@@ -196,7 +196,7 @@
SpeciesProtocol sp2 = new SpeciesProtocol();
sp2.setId("2");
sp2.setSpeciesId("3835");
- sp2.setCruiseCode("CHIN");
+ sp2.setSurveyCode("CHIN");
sp2.setLengthStepPmfmId("323");
sp2.setAgeEnabled(true);
sp2.setCalcifySampleEnabled(true);
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceTest.java 2013-02-05 14:29:36 UTC (rev 334)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceTest.java 2013-02-05 14:44:38 UTC (rev 335)
@@ -25,6 +25,7 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
import fr.ifremer.adagio.core.service.technical.CacheService;
import fr.ifremer.tutti.persistence.DatabaseFixtures;
import fr.ifremer.tutti.persistence.DatabaseResource;
@@ -46,6 +47,7 @@
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
+import org.junit.Ignore;
import org.junit.Test;
import org.nuiton.util.ApplicationConfig;
@@ -320,6 +322,227 @@
persist(Caracteristic.class, CaracteristicEnum.MacroWasteSizeCategory.name(), result);
}
+ @Ignore
+ @Test
+ public void importSpecies() {
+ List<Species> species = Lists.newArrayList();
+
+ long timestamp1 = System.nanoTime();
+ Species sp1 = new Species();
+ sp1.setId("Don't care" + timestamp1);
+ sp1.setRefTaxCode("Don't care" + timestamp1);
+ sp1.setSurveyCode("Don't care" + timestamp1);
+ sp1.setName("Genus name" + timestamp1);
+ species.add(sp1);
+
+ long timestamp2 = System.nanoTime();
+ Species sp2 = new Species();
+ sp2.setId("Don't care" + timestamp2);
+ sp2.setRefTaxCode("Don't care" + timestamp2);
+ sp2.setSurveyCode("Don't care" + timestamp2);
+ sp2.setName("Genus name" + timestamp2);
+ species.add(sp2);
+
+ Assert.assertNull(service.getSpecies(sp1.getId()));
+ Assert.assertNull(service.getSpecies(sp2.getId()));
+
+ List<Species> speciesList = service.importTemporarySpecies(species);
+ Assert.assertNotNull(speciesList);
+ Assert.assertEquals(2, speciesList.size());
+
+ Species createdSp1 = speciesList.get(0);
+ Assert.assertNotNull(createdSp1);
+ Assert.assertEquals(sp1.getName(), createdSp1.getName());
+ Assert.assertNotNull(createdSp1.getRefTaxCode());
+ Assert.assertNotSame(sp1.getRefTaxCode(), createdSp1.getRefTaxCode());
+ Assert.assertNull(createdSp1.getSurveyCode());
+ Assert.assertNotNull(createdSp1.getId());
+ Assert.assertNotSame(sp1.getId(), createdSp1.getId());
+ Assert.assertEquals(createdSp1, service.getSpecies(createdSp1.getId()));
+
+ Species createdSp2 = speciesList.get(1);
+ Assert.assertNotNull(createdSp2);
+ Assert.assertEquals(sp2.getName(), createdSp2.getName());
+ Assert.assertNull(createdSp2.getRefTaxCode());
+ Assert.assertNull(createdSp2.getSurveyCode());
+ Assert.assertNotNull(createdSp2.getId());
+ Assert.assertNotSame(sp2.getId(), createdSp2.getId());
+ Assert.assertEquals(createdSp2, service.getSpecies(createdSp2.getId()));
+ }
+
+ @Ignore
+ @Test
+ public void importVessel() {
+ List<Vessel> vessels = Lists.newArrayList();
+
+ // scientificVessel
+ long timestamp1 = System.nanoTime();
+ Vessel v1 = new Vessel();
+ v1.setId("Don't care" + timestamp1);
+ v1.setName("Name" + timestamp1);
+ v1.setInternalRegistrationCode("Immat" + timestamp1);
+ v1.setScientificVessel(true);
+ vessels.add(v1);
+
+ // fishingVessel
+ long timestamp2 = System.nanoTime();
+ Vessel v2 = new Vessel();
+ v2.setId("Don't care" + timestamp2);
+ v2.setName("Name" + timestamp2);
+ v2.setInternalRegistrationCode("Immat" + timestamp2);
+ v1.setScientificVessel(false);
+ vessels.add(v2);
+
+ Assert.assertNull(service.getVessel(v1.getId()));
+ Assert.assertNull(service.getVessel(v2.getId()));
+
+ List<Vessel> vesselList = service.importTemporaryVessel(vessels);
+
+ Assert.assertNotNull(vesselList);
+ Assert.assertEquals(2, vesselList.size());
+
+ List<Vessel> allScientificVessel = service.getAllScientificVessel();
+ List<Vessel> allFishingVessel = service.getAllFishingVessel();
+
+ Vessel createdV1 = vesselList.get(0);
+ Assert.assertNotNull(createdV1);
+ Assert.assertEquals(v1.getName(), createdV1.getName());
+ Assert.assertEquals(v1.getInternalRegistrationCode(), createdV1.getInternalRegistrationCode());
+ Assert.assertNotNull(createdV1.getId());
+ Assert.assertNotSame(v1.getId(), createdV1.getId());
+ Assert.assertEquals(createdV1, service.getVessel(createdV1.getId()));
+
+ Assert.assertTrue(allScientificVessel.contains(createdV1));
+ Assert.assertFalse(allFishingVessel.contains(createdV1));
+
+ Vessel createdV2 = vesselList.get(1);
+ Assert.assertNotNull(createdV2);
+ Assert.assertEquals(v2.getName(), createdV2.getName());
+ Assert.assertEquals(v2.getInternalRegistrationCode(), createdV2.getInternalRegistrationCode());
+ Assert.assertNotNull(createdV2.getId());
+ Assert.assertNotSame(v2.getId(), createdV2.getId());
+ Assert.assertEquals(createdV2, service.getVessel(createdV2.getId()));
+ Assert.assertFalse(allScientificVessel.contains(createdV1));
+ Assert.assertTrue(allFishingVessel.contains(createdV1));
+ }
+
+ @Ignore
+ @Test
+ public void importPerson() {
+ List<Person> persons = Lists.newArrayList();
+
+ long timestamp1 = System.nanoTime();
+ Person p1 = new Person();
+ p1.setId("Don't care" + timestamp1);
+ p1.setName("Don't care" + timestamp1);
+ p1.setFirstName("FirstName" + timestamp1);
+ p1.setLastName("MastName" + timestamp1);
+ p1.setDescription("Dont care" + timestamp1);
+ p1.setDescription("Dont care" + timestamp1);
+ persons.add(p1);
+
+ long timestamp2 = System.nanoTime();
+ Person p2 = new Person();
+ p2.setId("Don't care" + timestamp2);
+ p2.setName("Don't care" + timestamp2);
+ p2.setFirstName("FirstName" + timestamp2);
+ p2.setLastName("LastName" + timestamp2);
+ p2.setDescription("Don't care" + timestamp2);
+ p2.setDepartment("Don't care" + timestamp2);
+ persons.add(p2);
+
+ Assert.assertNull(service.getSpecies(p1.getId()));
+ Assert.assertNull(service.getSpecies(p2.getId()));
+
+ List<Person> personList = service.importTemporaryPerson(persons);
+
+ Assert.assertNotNull(personList);
+ Assert.assertEquals(2, personList.size());
+
+ Person createdP1 = personList.get(0);
+ Assert.assertNotNull(createdP1);
+ Assert.assertEquals(p1.getFirstName(), createdP1.getFirstName());
+ Assert.assertEquals(p1.getLastName(), createdP1.getLastName());
+
+ Assert.assertNull(createdP1.getName());
+ Assert.assertNull(createdP1.getDepartment());
+ Assert.assertNull(createdP1.getDescription());
+
+ Assert.assertNotNull(createdP1.getId());
+ Assert.assertNotSame(p1.getId(), createdP1.getId());
+
+ Assert.assertEquals(createdP1, service.getPerson(Integer.valueOf(createdP1.getId())));
+
+
+ Person createdP2 = personList.get(1);
+ Assert.assertNotNull(createdP2);
+ Assert.assertEquals(p2.getFirstName(), createdP2.getFirstName());
+ Assert.assertEquals(p2.getLastName(), createdP2.getLastName());
+
+ Assert.assertNull(createdP1.getName());
+ Assert.assertNull(createdP1.getDepartment());
+ Assert.assertNull(createdP1.getDescription());
+
+ Assert.assertNotNull(createdP2.getId());
+ Assert.assertNotSame(p2.getId(), createdP2.getId());
+
+ Assert.assertEquals(createdP2, service.getPerson(Integer.valueOf(createdP2.getId())));
+ }
+
+ @Ignore
+ @Test
+ public void importGear() {
+ List<Gear> gears = Lists.newArrayList();
+
+ // scientific gear
+ long timestamp1 = System.nanoTime();
+ Gear g1 = new Gear();
+ g1.setId("Don't care" + timestamp1);
+ g1.setDescription("Don't care" + timestamp1);
+ g1.setScientificGear(true);
+ g1.setName("Name" + timestamp1);
+ g1.setLabel("Label" + timestamp1);
+ gears.add(g1);
+
+ // fishing gear
+ long timestamp2 = System.nanoTime();
+ Gear g2 = new Gear();
+ g2.setId("Don't care" + timestamp2);
+ g2.setDescription("Don't care" + timestamp2);
+ g2.setName("Name" + timestamp2);
+ g2.setLabel("Label" + timestamp2);
+ g1.setScientificGear(false);
+
+ gears.add(g2);
+
+ List<Gear> gearList = service.importTemporaryGear(gears);
+
+ List<Gear> allScientificGear = service.getAllScientificGear();
+ List<Gear> allFishingGear = service.getAllFishingGear();
+
+ Gear createdG1 = gearList.get(0);
+ Assert.assertNotNull(createdG1);
+ Assert.assertEquals(g1.getName(), createdG1.getName());
+ Assert.assertEquals(g1.getLabel(), createdG1.getLabel());
+
+ Assert.assertNotNull(createdG1.getId());
+ Assert.assertNotSame(g1.getId(), createdG1.getId());
+ Assert.assertEquals(createdG1, service.getGear(Integer.valueOf(createdG1.getId())));
+ Assert.assertTrue(allScientificGear.contains(createdG1));
+ Assert.assertFalse(allFishingGear.contains(createdG1));
+
+ Gear createdG2 = gearList.get(1);
+ Assert.assertNotNull(createdG2);
+ Assert.assertEquals(g2.getName(), createdG2.getName());
+ Assert.assertEquals(g2.getLabel(), createdG2.getLabel());
+
+ Assert.assertNotNull(createdG2.getId());
+ Assert.assertNotSame(g2.getId(), createdG2.getId());
+ Assert.assertEquals(createdG2, service.getGear(Integer.valueOf(createdG2.getId())));
+ Assert.assertFalse(allScientificGear.contains(createdG1));
+ Assert.assertTrue(allFishingGear.contains(createdG1));
+ }
+
protected <S extends IdAware> void persistList(Class<S> type, List<S> result) {
persistList(type, null, result);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-05 14:29:36 UTC (rev 334)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-05 14:44:38 UTC (rev 335)
@@ -312,6 +312,26 @@
return driver.getGear(gearCode);
}
+ @Override
+ public List<Species> importTemporarySpecies(List<Species> species) {
+ return driver.importTemporarySpecies(species);
+ }
+
+ @Override
+ public List<Vessel> importTemporaryVessel(List<Vessel> vessels) {
+ return driver.importTemporaryVessel(vessels);
+ }
+
+ @Override
+ public List<Person> importTemporaryPerson(List<Person> persons) {
+ return driver.importTemporaryPerson(persons);
+ }
+
+ @Override
+ public List<Gear> importTemporaryGear(List<Gear> gears) {
+ return driver.importTemporaryGear(gears);
+ }
+
//------------------------------------------------------------------------//
//-- Program methods --//
//------------------------------------------------------------------------//
@@ -484,6 +504,11 @@
}
@Override
+ public void changeSpeciesBatchSpecies(String batchId, Species species) {
+ driver.changeSpeciesBatchSpecies(batchId, species);
+ }
+
+ @Override
public List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(String speciesBatchId) {
return driver.getAllSpeciesBatchFrequency(speciesBatchId);
}
1
0
r334 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation resources/i18n
by kmorin@users.forge.codelutin.com 05 Feb '13
by kmorin@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: kmorin
Date: 2013-02-05 15:29:36 +0100 (Tue, 05 Feb 2013)
New Revision: 334
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/334
Log:
add attachment button to fishing operation
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java (from rev 332, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java 2013-02-05 14:29:36 UTC (rev 334)
@@ -0,0 +1,31 @@
+package fr.ifremer.tutti.ui.swing.content.operation;
+
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public class AttachmentsAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ public AttachmentsAction(EditFishingOperationUIHandler handler) {
+ super(handler,
+ "attachments",
+ "edit-attachment",
+ _("tutti.action.attachments", 0),
+ _("tutti.action.attachments.tip"),
+ true);
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+ //TODO
+ }
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-05 14:07:43 UTC (rev 333)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-05 14:29:36 UTC (rev 334)
@@ -456,3 +456,7 @@
#importCasinoButton {
_tuttiAction: {ImportCasinoAction.class};
}
+
+#attachmentsButton {
+ _tuttiAction: {AttachmentsAction.class};
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-02-05 14:07:43 UTC (rev 333)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-02-05 14:29:36 UTC (rev 334)
@@ -455,6 +455,7 @@
<cell columns='6'>
<JPanel layout='{new GridLayout(1,0)}'>
<JButton id='importCasinoButton'/>
+ <JButton id='attachmentsButton'/>
</JPanel>
</cell>
</row>
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 14:07:43 UTC (rev 333)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 14:29:36 UTC (rev 334)
@@ -3,6 +3,8 @@
tutti.action.about=À propos
tutti.action.about.tip=À Propos
tutti.action.addSpecies.tip=Ajouter une espèce
+tutti.action.attachments=Pièces jointes (%s)
+tutti.action.attachments.tip=Pièces jointes
tutti.action.cancel=Annuler
tutti.action.cancel.editCruise=Annuler
tutti.action.cancel.editCruise.tip=Annuler l'édition (ou la création) de la campagne
1
0
05 Feb '13
Author: kmorin
Date: 2013-02-05 15:07:43 +0100 (Tue, 05 Feb 2013)
New Revision: 333
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/333
Log:
- new protocol: filter scientific vessels by default
- clone protocol: let the name but in error
- fishing operation: distance in meters + add coordinate editor type in labels
- catches: row in orange if to confirm
- catches: remove computed weight
- catches: readd titiles
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -475,7 +475,11 @@
}
protected String decorate(Object object) {
- return getDecorator(object.getClass(), null).toString(object);
+ String result = "";
+ if (object != null) {
+ getDecorator(object.getClass(), null).toString(object);
+ }
+ return result;
}
protected <O> ListCellRenderer newListCellRender(Class<O> type) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -200,6 +200,10 @@
public Color getColorCellWithValue() {
return applicationConfig.getOptionAsColor(TuttiApplicationConfigOption.COLOR_CELL_WITH_VALUE.getKey());
}
+
+ public Color getColorRowToConfirm() {
+ return applicationConfig.getOptionAsColor(TuttiApplicationConfigOption.COLOR_ROW_TO_CONFIRM.getKey());
+ }
public KeyStroke getShortcutClosePopup() {
return applicationConfig.getOptionAsKeyStroke(TuttiApplicationConfigOption.SHORTCUT_CLOSE_POPUP.getKey());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -154,6 +154,13 @@
new Color(128, 255, 128).toString(),
Color.class
),
+
+ COLOR_ROW_TO_CONFIRM(
+ "tutti.ui.color.rowToConfirm",
+ n_("tutti.option.ui.color.rowToConfirm.description"),
+ Color.ORANGE.toString(),
+ Color.class
+ ),
SHORTCUT_CLOSE_POPUP(
"tutti.ui.shortcut.closePopup",
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -109,6 +109,7 @@
.addOption(TuttiApplicationConfigOption.COLOR_ROW_INVALID)
.addOption(TuttiApplicationConfigOption.COLOR_ROW_READ_ONLY)
.addOption(TuttiApplicationConfigOption.COLOR_CELL_WITH_VALUE)
+ .addOption(TuttiApplicationConfigOption.COLOR_ROW_TO_CONFIRM)
.addOption(TuttiApplicationConfigOption.DATE_FORMAT)
.addOption(TuttiApplicationConfigOption.COORDINATE_EDITOR_TYPE);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -179,7 +179,7 @@
EditCruiseUIModel model = getModel();
- model.setVesselType(VesselTypeEnum.ALL);
+ model.setVesselType(model.isCreate() ? VesselTypeEnum.SCIENTIFIC : VesselTypeEnum.ALL);
// Change vessel list and gear list when vessel type changes
model.addPropertyChangeListener(EditCruiseUIModel.PROPERTY_VESSEL_TYPE, new PropertyChangeListener() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-05 14:07:43 UTC (rev 333)
@@ -108,12 +108,12 @@
}
#gearLongitudeLabel {
- text: "tutti.label.fishingOperation.gearLongitude";
+ text: {_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())};
actionIcon: "coordinates";
}
#gearLatitudeLabel {
- text: "tutti.label.fishingOperation.gearLatitude";
+ text: {_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())};
actionIcon: "coordinates";
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -179,7 +179,7 @@
&& latE != null && longE != null) {
LatLng start = new LatLng(latS, longS);
LatLng end = new LatLng(latE, longE);
- Double distance = LatLngTool.distance(start, end, LengthUnit.KILOMETER);
+ Double distance = LatLngTool.distance(start, end, LengthUnit.METER);
source.setTrawlDistance(distance.floatValue());
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -28,11 +28,14 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import java.awt.BorderLayout;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -41,6 +44,18 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.ErrorDialogUI;
/**
* Handler of UI {@link FishingOperationsUI}.
@@ -57,6 +72,11 @@
private final FishingOperationsUI ui;
private final PersistenceService persistenceService;
+
+ private static final ExecutorService executorService =
+ Executors.newSingleThreadExecutor();
+
+ private static final Timer t = new Timer();
protected SelectFishingOperationAction selectFishingOperationAction;
@@ -284,4 +304,6 @@
// FishingOperation operation = getModel().getSelectedFishingOperation();
// selectFishingOperation(operation);
// }
+
+
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-02-05 14:07:43 UTC (rev 333)
@@ -106,10 +106,6 @@
layout:{speciesTabPanelLayout};
}
-#speciesTabCreateBatchReminderLabel {
- title: {_("tutti.title.createBatch")};
-}
-
#speciesTable {
border: {BorderFactory.createTitledBorder(_("tutti.legend.catch.species"))};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-02-05 14:07:43 UTC (rev 333)
@@ -309,7 +309,7 @@
<SplitSpeciesBatchUI id='speciesTabSplitBatch'
constructorParams='this'/>
</JXTitledPanel>
- <JXTitledPanel id='speciesTabFrequencyEditorLabel'
+ <JXTitledPanel id='speciesTabFrequencyEditorReminderLabel'
constraints='EditCatchesUIHandler.EDIT_FREQUENCY_CARD'>
<SpeciesFrequencyUI id='speciesTabFrequencyEditor'
constructorParams='speciesTabContent'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -39,10 +39,10 @@
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
-import java.awt.Component;
-import java.awt.Container;
-import java.awt.LayoutManager;
+import org.jdesktop.swingx.JXTitledPanel;
+import static org.nuiton.i18n.I18n._;
+
/**
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
@@ -268,36 +268,40 @@
registerValidators(getValidator(), ui.getSpeciesTabContent().getHandler().getValidator());
}
- public void setSelectedCard(String card) {
- Component selectedComponent = getTabPanel().getSelectedComponent();
- if (selectedComponent.getClass().isAssignableFrom(JPanel.class)) {
- JPanel panel = (JPanel) selectedComponent;
- LayoutManager layoutManager = panel.getLayout();
- if (layoutManager.getClass().isAssignableFrom(CardLayout2Ext.class)) {
- CardLayout2Ext layout = (CardLayout2Ext) layoutManager;
- layout.setSelected(card);
+ public void setSpeciesSelectedCard(String card) {
+ JPanel panel = ui.getSpeciesTabPanel();
+ CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout();
+ layout.setSelected(card);
- if (MAIN_CARD.equals(card)) {
- registerValidators();
+ if (MAIN_CARD.equals(card)) {
+ registerValidators();
- } else {
- Container cardContainer = (Container) layout.getComponent(panel, card);
- TuttiUI tuttiUi = null;
- if (TuttiUI.class.isInstance(cardContainer)) {
- tuttiUi = (TuttiUI) cardContainer;
-
- } else {
- for (Component comp : cardContainer.getComponents()) {
- if (TuttiUI.class.isInstance(comp)) {
- tuttiUi = (TuttiUI) comp;
- }
- }
- }
- if (tuttiUi != null) {
- registerValidators(tuttiUi.getHandler().getValidator());
- }
- }
+ } else {
+ TuttiUI tuttiUi = null;
+ JXTitledPanel titlePanel = null;
+ String title = "";
+ if (CREATE_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabCreateBatch();
+ titlePanel = ui.getSpeciesTabCreateBatchReminderLabel();
+ title = "tutti.title.createBatch";
+
+ } else if (SPLIT_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabSplitBatch();
+ titlePanel = ui.getSpeciesTabSplitBatchReminderLabel();
+ title = "tutti.title.splitBatch";
+
+ } else if (EDIT_FREQUENCY_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabFrequencyEditor();
+ titlePanel = ui.getSpeciesTabFrequencyEditorReminderLabel();
+ title = "tutti.title.editFrequency";
}
+
+ if (tuttiUi != null) {
+ registerValidators(tuttiUi.getHandler().getValidator());
+ }
+ if (titlePanel != null) {
+ titlePanel.setTitle(ui.getSpeciesTabFishingOperationReminderLabel().getTitle() + " - " + _(title));
+ }
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -94,8 +94,6 @@
public static final String PROPERTY_COMPUTED_NUMBER = "computedNumber";
- public static final String PROPERTY_COMPUTED_WEIGHT = "computedWeight";
-
public static final String PROPERTY_ATTACHMENTS = "attachments";
public static final String PROPERTY_BATCH_PARENT = "batchParent";
@@ -182,18 +180,11 @@
protected Integer number;
/**
- * Total computed weight (from frequencies).
- *
- * @since 0.2
- */
- protected Float computedWeight;
-
- /**
* Total computed number (from frequencies).
*
* @since 0.2
*/
- protected Float computedNumber;
+ protected Integer computedNumber;
/**
* Comment on this catches.
@@ -569,22 +560,11 @@
firePropertyChange(PROPERTY_FREQUENCY, null, frequency);
}
- public Float getComputedWeight() {
- return computedWeight;
- }
-
- public void setComputedWeight(Float computedWeight) {
- Object oldValue = getComputedWeight();
- this.computedWeight = computedWeight;
- firePropertyChange(PROPERTY_COMPUTED_WEIGHT, oldValue,
- computedWeight);
- }
-
- public Float getComputedNumber() {
+ public Integer getComputedNumber() {
return computedNumber;
}
- public void setComputedNumber(Float computedNumber) {
+ public void setComputedNumber(Integer computedNumber) {
Object oldValue = getComputedNumber();
this.computedNumber = computedNumber;
firePropertyChange(PROPERTY_COMPUTED_NUMBER, oldValue,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -58,6 +58,8 @@
import fr.ifremer.tutti.ui.swing.util.editor.AttachmentCellComponent;
import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+import java.awt.Color;
+import java.awt.Component;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.context.JAXXContextEntryDef;
@@ -80,6 +82,9 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.jdesktop.swingx.decorator.ComponentAdapter;
+import org.jdesktop.swingx.decorator.HighlightPredicate;
+import org.jdesktop.swingx.decorator.Highlighter;
import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
@@ -635,8 +640,35 @@
table.setModel(tableModel);
table.setColumnModel(columnModel);
+ Color toConfirmColor = getConfig().getColorRowToConfirm();
+ // paint the cell in orange if the row is to confirm
+ Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate() {
+
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ int rowIndex = adapter.convertRowIndexToModel(adapter.row);
+ SpeciesBatchRowModel row = getTableModel().getEntry(rowIndex);
+ return row.getSpeciesToConfirm();
+ }
+
+ }, toConfirmColor);
+ table.addHighlighter(attachmentHighlighter);
+
initBatchTable(table, columnModel, tableModel);
+
+ // paint the cell in dark orange if the row is to confirm and the cell is not editable
+ attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate() {
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ int rowIndex = adapter.convertRowIndexToModel(adapter.row);
+ SpeciesBatchRowModel row = getTableModel().getEntry(rowIndex);
+ return row.getSpeciesToConfirm() && !adapter.isEditable();
+ }
+
+ }, toConfirmColor.darker());
+ table.addHighlighter(attachmentHighlighter);
+
getModel().addPropertyChangeListener(SpeciesBatchUIModel.PROPERTY_TABLE_VIEW_MODE, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
@@ -673,7 +705,7 @@
CreateSpeciesBatchUI createBatchEditor = parent.getSpeciesTabCreateBatch();
createBatchEditor.getHandler().openUI(getModel());
- parent.getHandler().setSelectedCard(EditCatchesUIHandler.CREATE_BATCH_CARD);
+ parent.getHandler().setSpeciesSelectedCard(EditCatchesUIHandler.CREATE_BATCH_CARD);
}
public void addSpeciesBatch(CreateSpeciesBatchUIModel createModel) {
@@ -743,7 +775,7 @@
SplitSpeciesBatchUI splitBatchEditor = parent.getSpeciesTabSplitBatch();
splitBatchEditor.getHandler().editBatch(parentBatch);
- parent.getHandler().setSelectedCard(EditCatchesUIHandler.SPLIT_BATCH_CARD);
+ parent.getHandler().setSpeciesSelectedCard(EditCatchesUIHandler.SPLIT_BATCH_CARD);
}
}
@@ -806,12 +838,12 @@
}
public void updateTotalFromFrequencies(SpeciesBatchRowModel row) {
- Float totalNumber = null;
+ Integer totalNumber = null;
Float totalWeight = null;
List<SpeciesFrequencyRowModel> frequency = row.getFrequency();
if (CollectionUtils.isNotEmpty(frequency)) {
- totalNumber = 0f;
+ totalNumber = 0;
totalWeight = 0f;
for (SpeciesFrequencyRowModel frequencyModel : frequency) {
totalNumber += frequencyModel.getNumber();
@@ -829,7 +861,6 @@
}
row.setComputedNumber(totalNumber);
- row.setComputedWeight(totalWeight);
}
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -142,7 +142,7 @@
frequencyEditor.getHandler().editBatch(editRow, this);
// open frequency editor
- parent.getHandler().setSelectedCard(EditCatchesUIHandler.EDIT_FREQUENCY_CARD);
+ parent.getHandler().setSpeciesSelectedCard(EditCatchesUIHandler.EDIT_FREQUENCY_CARD);
}
public void validateEdition(SpeciesFrequencyUIModel frequencyModel) {
@@ -223,11 +223,9 @@
Preconditions.checkNotNull(editRow, "No editRow found in editor.");
- Object result;
+ Object result = null;
if (columnIdentifier == SpeciesBatchTableModel.COMPUTED_NUMBER) {
result = editRow.getComputedNumber();
- } else {
- result = editRow.getComputedWeight();
}
if (log.isInfoEnabled()) {
log.info("editor value (" + columnIdentifier + "): " + result);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -51,12 +51,8 @@
public static final String PROPERTY_WEIGHT = "weight";
- public static final String PROPERTY_COMPUTED_WEIGHT = "computedWeight";
-
-
public static final String PROPERTY_LENGHT_STEP_CARACTERISTIC = "lengthStepCaracteristic";
-
/**
* Length step.
*
@@ -79,13 +75,6 @@
protected Float weight;
/**
- * Computed weight from number + relation taille-poids.
- *
- * @since 0.2
- */
- protected Float computedWeight;
-
- /**
* Length step caracteristic.
*
* @since 0.3
@@ -157,16 +146,6 @@
firePropertyChange(PROPERTY_WEIGHT, oldValue, weight);
}
- public Float getComputedWeight() {
- return computedWeight;
- }
-
- public void setComputedWeight(Float computedWeight) {
- Object oldValue = getComputedWeight();
- this.computedWeight = computedWeight;
- firePropertyChange(PROPERTY_COMPUTED_WEIGHT, oldValue, computedWeight);
- }
-
public Caracteristic getLengthStepCaracteristic() {
return lengthStepCaracteristic;
}
@@ -177,12 +156,6 @@
firePropertyChange(PROPERTY_LENGHT_STEP_CARACTERISTIC, oldValue, lengthStepCaracteristic);
}
-// //TODO Use validator
-// @Override
-// public boolean isValid() {
-// return lengthStep != null && number != null && lengthStepCaracteristic != null;
-// }
-
@Override
public int compareTo(SpeciesFrequencyRowModel o) {
int result = ordering.compare(lengthStep, o.lengthStep);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -60,11 +60,6 @@
n_("tutti.table.species.frequency.header.weight"),
n_("tutti.table.species.frequency.header.weight"));
- public static final ColumnIdentifier<SpeciesFrequencyRowModel> COMPUTED_WEIGHT = ColumnIdentifier.newId(
- SpeciesFrequencyRowModel.PROPERTY_COMPUTED_WEIGHT,
- n_("tutti.table.species.frequency.header.computedWeight"),
- n_("tutti.table.species.frequency.header.computedWeight"));
-
private final SpeciesFrequencyUIModel uiModel;
private final Map<Float, SpeciesFrequencyRowModel> rowCache;
@@ -74,7 +69,7 @@
super(columnModel, true, true);
this.uiModel = uiModel;
this.rowCache = Maps.newTreeMap();
- setNoneEditableCols(COMPUTED_WEIGHT);
+ setNoneEditableCols();
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -89,8 +89,7 @@
super(context,
SpeciesFrequencyRowModel.PROPERTY_LENGTH_STEP,
SpeciesFrequencyRowModel.PROPERTY_NUMBER,
- SpeciesFrequencyRowModel.PROPERTY_WEIGHT,
- SpeciesFrequencyRowModel.PROPERTY_COMPUTED_WEIGHT);
+ SpeciesFrequencyRowModel.PROPERTY_WEIGHT);
this.ui = ui;
}
@@ -257,13 +256,6 @@
TuttiUI.DECIMAL3_PATTERN);
}
- { // ComputedWeight
-
- addFloatColumnToModel(columnModel,
- SpeciesFrequencyTableModel.COMPUTED_WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
- }
-
// create table model
SpeciesFrequencyTableModel tableModel =
new SpeciesFrequencyTableModel(columnModel, model);
@@ -295,7 +287,7 @@
getModel().setValid(false);
EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
- parent.getHandler().setSelectedCard(EditCatchesUIHandler.MAIN_CARD);
+ parent.getHandler().setSpeciesSelectedCard(EditCatchesUIHandler.MAIN_CARD);
}
//------------------------------------------------------------------------//
@@ -415,7 +407,7 @@
newRow.setLengthStepCaracteristic(rowModel.getLengthStepCaracteristic());
newRow.setLengthStep(rowModel.getLengthStep());
newRow.setNumber(rowModel.getNumber());
- newRow.setComputedWeight(rowModel.getComputedWeight());
+ newRow.setWeight(rowModel.getWeight());
editFrequency.add(newRow);
}
@@ -476,8 +468,8 @@
ui.getValidator().setBean(model);
model.setRows(editFrequency);
- model.setStep(lengthStep);
model.setLengthStepCaracteristic(lengthStepCaracteristic);
+ model.setSimpleCount(speciesBatch.getComputedNumber());
SpeciesFrequencyUIModel.ConfigurationMode mode = SpeciesFrequencyUIModel.ConfigurationMode.SIMPLE;
if (protocol != null) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -180,7 +180,7 @@
getModel().setValid(false);
EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
- parent.getHandler().setSelectedCard(EditCatchesUIHandler.MAIN_CARD);
+ parent.getHandler().setSpeciesSelectedCard(EditCatchesUIHandler.MAIN_CARD);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -232,7 +232,7 @@
getModel().setValid(false);
EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
- parent.getHandler().setSelectedCard(EditCatchesUIHandler.MAIN_CARD);
+ parent.getHandler().setSpeciesSelectedCard(EditCatchesUIHandler.MAIN_CARD);
}
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -221,7 +221,6 @@
if (mustClone != null && mustClone) {
ui.setContextValue(false, MainUIHandler.CLONE_PROTOCOL);
model.setId(null);
- model.setName(null);
}
} else {
@@ -265,12 +264,13 @@
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.WEIGHT_ENABLED, table);
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.COUNT_IF_NO_FREQUENCY_ENABLED, table);
- addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.CALCIFY_SAMPLE_ENABLED, table);
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.SIZE_ENABLED, table);
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.SEX_ENABLED, table);
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.MATURITY_ENABLED, table);
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.AGE_ENABLED, table);
+
+ addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.CALCIFY_SAMPLE_ENABLED, table);
EditProtocolSpeciesTableModel tableModel =
new EditProtocolSpeciesTableModel(columnModel);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-02-05 14:07:43 UTC (rev 333)
@@ -47,7 +47,6 @@
import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor;
import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
import org.jdesktop.swingx.decorator.ComponentAdapter;
-import org.jdesktop.swingx.decorator.HighlightPredicate;
import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.table.TableColumnExt;
import org.nuiton.util.decorator.Decorator;
@@ -75,6 +74,7 @@
import java.util.Enumeration;
import java.util.List;
import java.util.Set;
+import org.jdesktop.swingx.decorator.HighlightPredicate;
import static org.nuiton.i18n.I18n._;
@@ -298,25 +298,15 @@
Highlighter commentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
new HighlightPredicate.AndHighlightPredicate(
new HighlightPredicate.IdentifierHighlightPredicate(SpeciesBatchTableModel.COMMENT),
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- boolean result = adapter.getValue() != null;
- return result;
- }
- }), cellWithValueColor);
+ new HighlightPredicate.NotHighlightPredicate(new HighlightPredicate.EqualsHighlightPredicate())
+ ), cellWithValueColor);
table.addHighlighter(commentHighlighter);
Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
new HighlightPredicate.AndHighlightPredicate(
new HighlightPredicate.IdentifierHighlightPredicate(SpeciesBatchTableModel.ATTACHMENTS),
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- boolean result = adapter.getValue() != null;
- return result;
- }
- }), cellWithValueColor);
+ new HighlightPredicate.NotHighlightPredicate(new HighlightPredicate.EqualsHighlightPredicate())
+ ), cellWithValueColor);
table.addHighlighter(attachmentHighlighter);
// paint in a special color inValid rows
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 14:01:13 UTC (rev 332)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 14:07:43 UTC (rev 333)
@@ -174,8 +174,8 @@
tutti.label.fishingOperation.fishingOperationValid=Trait valide
tutti.label.fishingOperation.gear=Engin
tutti.label.fishingOperation.gearDate=Date
-tutti.label.fishingOperation.gearLatitude=Latitude
-tutti.label.fishingOperation.gearLongitude=Longitude
+tutti.label.fishingOperation.gearLatitude=Latitude (%s)
+tutti.label.fishingOperation.gearLongitude=Longitude (%s)
tutti.label.fishingOperation.gearShootingEnd=Fin de traine
tutti.label.fishingOperation.gearShootingStart=Début de traine
tutti.label.fishingOperation.gearTime=Heure
@@ -185,7 +185,7 @@
tutti.label.fishingOperation.stationNumber=Code Station
tutti.label.fishingOperation.strata=Strate
tutti.label.fishingOperation.subStrata=Sous strate
-tutti.label.fishingOperation.trawlDistance=Distance chalutée
+tutti.label.fishingOperation.trawlDistance=Distance chalutée (m)
tutti.label.fishingOperation.vessel=Navire
tutti.label.frequencyConfiguration.lengthStepCaracteristic=Type de mesure
tutti.label.frequencyConfiguration.maxStep=Classe max
@@ -273,6 +273,7 @@
tutti.option.ui.color.cellWithValue.description=Couleur d'une cellule avec des données
tutti.option.ui.color.rowInvalid.description=Ligne invalide
tutti.option.ui.color.rowReadOnly.description=Cellule non éditable
+tutti.option.ui.color.rowToConfirm.description=Ligne à confirmer
tutti.option.ui.config.file.description=Chemin du fichier de configuration des interfaces graphiques
tutti.option.ui.coordinateEditorType.description=Type de l'éditeur de coordonnées
tutti.option.ui.dateFormat.description=Format de dates
@@ -370,11 +371,12 @@
tutti.title.create.cruise=Créer une nouvelle campagne
tutti.title.create.program=Créer une nouvelle série de campagne
tutti.title.create.protocol=Créer un nouveau protocol de saisie
-tutti.title.createBatch=Créer un lot pour une nouvelle espèce
+tutti.title.createBatch=Création d'un lot
tutti.title.edit.cruise=Éditer une campagne existante
tutti.title.edit.operations=Saisie des opérations de pêches (%s)
tutti.title.edit.program=Éditer une série de campagne existante
tutti.title.edit.protocol=Éditer un protocol de saisie existant
+tutti.title.editFrequency=Mensuration
tutti.title.home=Sélection de la campagne
tutti.title.noSelectedCruise=Pas de campagne sélectionné
tutti.title.noSelectedProgram=Pas de série de campagne sélectionné
@@ -382,6 +384,7 @@
tutti.title.selectedCruise=Campagne %s
tutti.title.selectedProgram=Série de campagne %s
tutti.title.selectedProtocol=Protocole %s
+tutti.title.splitBatch=Catégorisation du lot
tutti.title.validate.operations=Validation des opérations de pêches (%s)
tutti.to.be.done=< A FAIRE >
tutti.tooltip.attachment.none=Pas de pièce-jointes
1
0
r332 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service
by kmorin@users.forge.codelutin.com 05 Feb '13
by kmorin@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: kmorin
Date: 2013-02-05 15:01:13 +0100 (Tue, 05 Feb 2013)
New Revision: 332
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/332
Log:
default decorator
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-05 09:48:26 UTC (rev 331)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-05 14:01:13 UTC (rev 332)
@@ -211,7 +211,7 @@
private static final long serialVersionUID = 1L;
public VesselDecorator() throws IllegalArgumentException, NullPointerException {
- super(Vessel.class, "${name}$s#${internalRegistrationCode}$s", DecoratorService.SEPARATOR, " - ");
+ super(Vessel.class, "${internalRegistrationCode}$s#${name}$s", DecoratorService.SEPARATOR, " - ");
}
@Override
1
0
r331 - in trunk/tutti-persistence/src: main/java/fr/ifremer/tutti/persistence main/java/fr/ifremer/tutti/persistence/service test/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 05 Feb '13
by tchemit@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: tchemit
Date: 2013-02-05 10:48:26 +0100 (Tue, 05 Feb 2013)
New Revision: 331
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/331
Log:
add changeSpeciesBatchSpecies method
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImplTest.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -299,6 +299,9 @@
@Transactional(readOnly = false)
void deleteSpeciesSubBatch(String id);
+ @Transactional(readOnly = false)
+ void changeSpeciesBatchSpecies(String batchId, Species species);
+
List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(
String speciesBatchId);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -628,6 +628,11 @@
persistToFile(SpeciesBatch.class.getName());
}
+ @Override
+ public void changeSpeciesBatchSpecies(String batchId, Species species) {
+ throw new IllegalStateException("method 'changeSpeciesBatchSpecies' not implemented");
+ }
+
protected void collectChilds(SpeciesBatch bean, Set<SpeciesBatch> collected) {
if (!bean.isChildBatchsEmpty()) {
for (SpeciesBatch batch : bean.getChildBatchs()) {
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -457,6 +457,11 @@
}
@Override
+ public void changeSpeciesBatchSpecies(String batchId, Species species) {
+ speciesBatchService.changeSpeciesBatchSpecies(batchId, species);
+ }
+
+ @Override
public List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(String speciesBatchId) {
return speciesBatchService.getAllSpeciesBatchFrequency(speciesBatchId);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -27,6 +27,7 @@
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -61,7 +62,17 @@
@Transactional(readOnly = false)
void deleteSpeciesSubBatch(String id);
+ /**
+ * Change the species in the given {@code batchId} and in all his
+ * sub batches.
+ *
+ * @param batchId id of the root species batch to treat
+ * @param species species to affect to all batches
+ */
@Transactional(readOnly = false)
+ void changeSpeciesBatchSpecies(String batchId, Species species);
+
+ @Transactional(readOnly = false)
List<SpeciesBatchFrequency> saveSpeciesBatchFrequency(String speciesBatchId,
List<SpeciesBatchFrequency> frequencies);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -229,6 +229,11 @@
}
@Override
+ public void changeSpeciesBatchSpecies(String batchId, Species species) {
+ //TODO
+ }
+
+ @Override
public List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(
String speciesBatchId) {
List<SpeciesBatchFrequency> results = Lists.newArrayList();
@@ -239,6 +244,7 @@
@Override
public List<SpeciesBatchFrequency> saveSpeciesBatchFrequency(
String speciesBatchId, List<SpeciesBatchFrequency> frequencies) {
+ //TODO
return frequencies;
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImplTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImplTest.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImplTest.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -113,6 +113,11 @@
}
@Test
+ public void changeSpeciesBatchSpecies() {
+ //TODO
+ }
+
+ @Test
public void createAndSaveCatchBatch() throws Exception {
CatchBatch catchBatch = null;
CatchBatch createdCatchBatch = null;
1
0
05 Feb '13
Author: tchemit
Date: 2013-02-05 10:19:16 +0100 (Tue, 05 Feb 2013)
New Revision: 330
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/330
Log:
improve action api
add nuiton-profiling (just to test application)
begin of referential import screen
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java
trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java
Modified:
trunk/pom.xml
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
trunk/tutti-ui-swing/src/main/resources/log4j.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/pom.xml 2013-02-05 09:19:16 UTC (rev 330)
@@ -132,7 +132,7 @@
<h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
- <jaxxVersion>2.5.9</jaxxVersion>
+ <jaxxVersion>2.5.10-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
@@ -270,6 +270,12 @@
</dependency>
<dependency>
+ <groupId>org.swinglabs.swingx</groupId>
+ <artifactId>swingx-action</artifactId>
+ <version>${swingXVersion}</version>
+ </dependency>
+
+ <dependency>
<groupId>com.ezware.oxbow</groupId>
<artifactId>swing-bits</artifactId>
<version>0.5.0</version>
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/pom.xml 2013-02-05 09:19:16 UTC (rev 330)
@@ -230,6 +230,12 @@
<dependency>
<groupId>org.nuiton</groupId>
+ <artifactId>nuiton-profiling</artifactId>
+ <version>2.7-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
<artifactId>nuiton-utils</artifactId>
</dependency>
@@ -325,6 +331,11 @@
</dependency>
<dependency>
+ <groupId>org.swinglabs.swingx</groupId>
+ <artifactId>swingx-action</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>com.ezware.oxbow</groupId>
<artifactId>swing-bits</artifactId>
</dependency>
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java (from rev 324, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,59 @@
+
+package fr.ifremer.tutti.ui.swing;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import java.awt.event.ActionEvent;
+
+/**
+ * Abstract action defining actions which sets the screen of the application.
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public abstract class AbstractChangeScreenAction extends AbstractTuttiAction<TuttiUIContext, MainUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected AbstractChangeScreenAction(MainUIHandler handler,
+ String name,
+ String icon,
+ String text,
+ String tip,
+ boolean hideBody) {
+ super(handler, name, icon, text, tip, hideBody);
+ }
+
+ @Override
+ protected boolean prepareAction(ActionEvent event) {
+ boolean result = super.prepareAction(event);
+ result &= getHandler().getCurrentHandler().canCloseUI(getNextScreen());
+ return result;
+ }
+
+ /** @return the next screen to display. */
+ protected abstract TuttiScreen getNextScreen();
+
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -25,6 +25,7 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
import fr.ifremer.tutti.service.DecoratorService;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.ErrorDialogUI;
@@ -42,6 +43,7 @@
import javax.swing.border.TitledBorder;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
+import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
@@ -71,6 +73,8 @@
private final boolean hideBody;
+ private final static Object lock = new Object();
+
protected abstract void doAction(ActionEvent event) throws Exception;
protected AbstractTuttiAction(H handler,
@@ -117,33 +121,75 @@
boolean doAction = prepareAction(event);
if (doAction) {
- executorService.submit(new Runnable() {
- @Override
- public void run() {
- TimerTask timer = new ActionTimerTask(getActionName(), getActionDescription());
+ boolean useTimer;
- t.schedule(timer, 500);
- try {
+ synchronized (lock) {
+ useTimer = actions.isEmpty();
- doAction(event);
- } catch (Throwable e) {
- if (log.isErrorEnabled()) {
- log.error("Error:" + e.getMessage(), e);
- }
- if (e instanceof Exception) {
- ErrorDialogUI.showError((Exception) e);
- }
- } finally {
- if (log.isInfoEnabled()) {
- log.info("After action: " + this);
- }
- timer.cancel();
+ actions.add(AbstractTuttiAction.this);
+ }
- releaseAction(event);
+ if (useTimer) {
+
+ // a new thread action
+
+ executorService.submit(new Runnable() {
+ @Override
+ public void run() {
+
+ runAction(true, event);
}
+ });
+
+ } else {
+
+ runAction(false, event);
+ }
+ }
+ }
+
+ protected void runAction(boolean useTimer, ActionEvent event) {
+
+ TimerTask timer = null;
+ if (useTimer) {
+
+ // there is already anohter action in pool, no timer
+
+ timer = new ActionTimerTask(this);
+
+ t.schedule(timer, 500);
+ }
+
+ try {
+
+ this.doAction(event);
+ } catch (Throwable e) {
+ if (log.isErrorEnabled()) {
+ log.error("Error:" + e.getMessage(), e);
+ }
+ if (e instanceof Exception) {
+ ErrorDialogUI.showError((Exception) e);
+ }
+ } finally {
+ if (log.isInfoEnabled()) {
+ log.info("After action: " + this);
+ }
+ if (timer != null) {
+
+ timer.cancel();
+ }
+
+ try {
+ this.releaseAction(event);
+ } finally {
+
+
+ synchronized (lock) {
+ actions.remove(AbstractTuttiAction.this);
}
- });
+ }
+
}
}
@@ -163,8 +209,14 @@
putValue(MNEMONIC_KEY, key);
}
- protected class ActionTimerTask extends TimerTask {
+ public boolean isHideBody() {
+ return hideBody;
+ }
+ private final static Set<Object> actions = Sets.newHashSet();
+
+ protected static class ActionTimerTask<A extends AbstractTuttiAction> extends TimerTask {
+
private final Object lock = new Object();
protected boolean canceled;
@@ -175,9 +227,12 @@
private JDialog d;
- public ActionTimerTask(String actionName, String actionDescription) {
- this.actionName = actionName;
- this.actionDescription = actionDescription;
+ private final A action;
+
+ public ActionTimerTask(A action) {
+ this.action = action;
+ this.actionName = action.getActionName();
+ this.actionDescription = action.getActionDescription();
}
@Override
@@ -186,16 +241,15 @@
if (canceled) {
if (log.isInfoEnabled()) {
- log.info("Task [" + AbstractTuttiAction.this + "] was already canceled, do nothing");
+ log.info("Task [" + action + "] was already canceled, do nothing");
}
} else {
- MainUI ui = getContext().getMainUI();
+ MainUI ui = action.getContext().getMainUI();
-
if (log.isDebugEnabled()) {
- log.debug("Task [" + AbstractTuttiAction.this + "] is started, show waiting dialog");
+ log.debug("Task [" + action + "] is started, show waiting dialog");
}
JPanel panel = new JPanel(new BorderLayout());
@@ -236,11 +290,11 @@
synchronized (lock) {
canceled = true;
if (log.isInfoEnabled()) {
- log.info("Task [" + AbstractTuttiAction.this + "] canceled.");
+ log.info("Task [" + action + "] canceled.");
}
boolean cancel = super.cancel();
- updateBusyState(getContext().getMainUI(), false);
+ updateBusyState(action.getContext().getMainUI(), false);
if (d != null) {
d.setVisible(false);
@@ -253,12 +307,12 @@
if (busy) {
// ui bloquee
- if (hideBody) {
+ if (action.isHideBody()) {
ui.getBody().setVisible(false);
}
} else {
// ui debloquee
- if (hideBody) {
+ if (action.isHideBody()) {
ui.getBody().setVisible(true);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -42,6 +42,7 @@
import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.reflect.ConstructorUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXDatePicker;
@@ -50,6 +51,8 @@
import org.nuiton.validator.bean.simple.SimpleBeanValidator;
import javax.swing.AbstractAction;
+import javax.swing.AbstractButton;
+import javax.swing.Action;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComponent;
import javax.swing.JDialog;
@@ -116,6 +119,15 @@
return new DefaultComboBoxModel(items);
}
+ public DefaultComboBoxModel newComboActionModel(Class<? extends AbstractTuttiAction>... actionNames) {
+ List<Object> items = Lists.newArrayListWithCapacity(actionNames.length);
+ for (Class<? extends AbstractTuttiAction> actionName : actionNames) {
+ Action action = createAction(actionName);
+ items.add(action);
+ }
+ return new DefaultComboBoxModel(items.toArray());
+ }
+
@Override
public void showInformationMessage(String message) {
context.showInformationMessage(message);
@@ -268,6 +280,13 @@
}
jLabel.setText("<html>" + text + "</strong>");
}
+ } else if (component instanceof AbstractButton) {
+ AbstractButton abstractButton = (AbstractButton) component;
+ Class<? extends AbstractTuttiAction> actionName = (Class<? extends AbstractTuttiAction>) abstractButton.getClientProperty("tuttiAction");
+ if (actionName != null) {
+ Action action = createAction(actionName);
+ abstractButton.setAction(action);
+ }
}
// else if (component instanceof JMenuItem) {
@@ -280,6 +299,44 @@
}
}
+ protected <A extends AbstractTuttiAction> A createAction(Class<A> actionName) {
+ A action = null;
+ if (actionName != null) {
+ try {
+ action = (A) ConstructorUtils.invokeConstructor(
+ actionName, this);
+ } catch (Exception e) {
+ throw new RuntimeException(
+ "Could not instanciate action " + actionName, e);
+ }
+ }
+ return action;
+ }
+
+ protected void doAction(AbstractButton button, ActionEvent event) {
+ button.getAction().actionPerformed(event);
+ }
+
+ protected void registerValidators(SwingValidator... validators) {
+ MainUI main = context.getMainUI();
+ Preconditions.checkNotNull(
+ main, "No mainUI registred in application context");
+ MainUIHandler handler = main.getHandler();
+ handler.clearValidators();
+ for (SwingValidator validator : validators) {
+ handler.registerValidator(validator);
+ }
+ }
+
+ protected void clearValidators() {
+ MainUI main = context.getMainUI();
+ Preconditions.checkNotNull(
+ main, "No mainUI registred in application context");
+ MainUIHandler handler = main.getHandler();
+ handler.clearValidators();
+ }
+
+
/**
* Prépare un component de choix d'entités pour un type d'entité donné et
* pour un service de persistance donné.
@@ -400,7 +457,7 @@
picker.getEditor().setEditable(false);
}
- protected <O> Decorator<O> getDecorator(Class<O> type, String name) {
+ public <O> Decorator<O> getDecorator(Class<O> type, String name) {
DecoratorService decoratorService =
context.getService(DecoratorService.class);
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -1,57 +0,0 @@
-
-package fr.ifremer.tutti.ui.swing;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import java.awt.event.ActionEvent;
-
-/**
- * Abstract action defining actions which sets the screen of the application.
- *
- * @author kmorin <kmorin(a)codelutin.com>
- * @since 1.0
- */
-public abstract class ChangeScreenAction extends AbstractTuttiAction<TuttiUIContext, MainUIHandler> {
-
- protected ChangeScreenAction(MainUIHandler handler,
- String name,
- String icon,
- String text,
- String tip,
- boolean hideBody) {
- super(handler, name, icon, text, tip, hideBody);
- }
-
- @Override
- protected boolean prepareAction(ActionEvent event) {
- boolean result = super.prepareAction(event);
- result &= getHandler().getCurrentHandler().canCloseUI(getNextScreen());
- return result;
- }
-
- /** @return the next screen to display. */
- protected abstract TuttiScreen getNextScreen();
-
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -38,7 +38,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditSelectedCruiseAction extends ChangeScreenAction {
+public class EditSelectedCruiseAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -36,7 +36,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditSelectedCruiseCatchesAction extends ChangeScreenAction {
+public class EditSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -38,7 +38,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditSelectedProgramAction extends ChangeScreenAction {
+public class EditSelectedProgramAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -38,7 +38,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditSelectedProtocolAction extends ChangeScreenAction {
+public class EditSelectedProtocolAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -58,22 +58,22 @@
#menuActionSelectCruise {
enabled: {model.getScreen() != TuttiScreen.SELECT_CRUISE};
- action: {selectCruiseAction};
+ _tuttiAction: {SelectCruiseAction.class};
}
#menuActionEditProgram {
enabled: {model.getScreen() != TuttiScreen.EDIT_PROGRAM && model.isProgramFilled()};
- action: {editProgramAction};
+ _tuttiAction: {EditSelectedProgramAction.class};
}
#menuActionEditCruise {
enabled: {model.getScreen() != TuttiScreen.EDIT_CRUISE && model.isCruiseFilled()};
- action: {editCruiseAction};
+ _tuttiAction: {EditSelectedCruiseAction.class};
}
#menuActionEditProtocol {
enabled: {model.getScreen() != TuttiScreen.EDIT_PROTOCOL && model.isProtocolFilled()};
- action: {editProtocolAction};
+ _tuttiAction: {EditSelectedProtocolAction.class};
}
#menuActionEditCatches {
@@ -81,7 +81,7 @@
!TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(model.getValidationContext())
|| model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
) && model.isCruiseFilled()};
- action: {editCatchesAction};
+ _tuttiAction: {EditSelectedCruiseCatchesAction.class};
}
#menuActionValidateCatches {
@@ -89,7 +89,7 @@
!TuttiUIContext.VALIDATION_CONTEXT_VALIDATE.equals(model.getValidationContext())
|| model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
) && model.isCruiseFilled()};
- action: {validateCatchesAction};
+ _tuttiAction: {ValidateSelectedCruiseCatchesAction.class};
}
#menuSynchronisations {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -39,17 +39,6 @@
<MainUIHandler id='handler'
initializer='getContextValue(MainUIHandler.class)'/>
- <SelectCruiseAction id='selectCruiseAction' constructorParams='handler'/>
- <EditSelectedProtocolAction id='editProtocolAction'
- constructorParams='handler'/>
- <EditSelectedProgramAction id='editProgramAction'
- constructorParams='handler'/>
- <EditSelectedCruiseAction id='editCruiseAction' constructorParams='handler'/>
- <EditSelectedCruiseCatchesAction id='editCatchesAction'
- constructorParams='handler'/>
- <ValidateSelectedCruiseCatchesAction id='validateCatchesAction'
- constructorParams='handler'/>
-
<script><![CDATA[
public MainUI(TuttiUIContext context) {
@@ -62,15 +51,6 @@
protected void $afterCompleteSetup() {
getHandler().afterInitUI();
}
-
- public void registerValidator(SwingValidator validator) {
- handler.registerValidator(validator);
- }
-
- public void clearValidators() {
- handler.clearValidators();
- }
-
]]></script>
<!-- menu -->
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -107,6 +107,8 @@
// Sync to error dialog
ErrorDialogUI.init(ui);
+ initUI(ui);
+
// Init SwingSession
SwingSession swingSession = context.getSwingSession();
swingSession.add(ui);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -34,7 +34,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class SelectCruiseAction extends ChangeScreenAction {
+public class SelectCruiseAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -36,7 +36,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class ValidateSelectedCruiseCatchesAction extends ChangeScreenAction {
+public class ValidateSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -125,6 +125,8 @@
#filterVesselLabel {
text: "tutti.label.filterVesselType";
+ _strongStyle: true;
+ actionIcon: filter;
}
#filterVesselAllButton {
@@ -180,12 +182,12 @@
}
#saveButton {
- action: {saveCruiseAction};
+ _tuttiAction: {SaveCruiseAction.class};
enabled: {model.isModify() && model.isValid()};
}
#cancelButton {
- action: {cancelEditCruiseAction};
+ _tuttiAction: {CancelEditCruiseAction.class};
}
#generateNameButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -74,10 +74,6 @@
<EditCruiseUIModel id='model'
initializer='getContextValue(EditCruiseUIModel.class)'/>
- <SaveCruiseAction id='saveCruiseAction' constructorParams='handler'/>
- <CancelEditCruiseAction id='cancelEditCruiseAction'
- constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -32,7 +32,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import jaxx.runtime.JAXXUtil;
@@ -252,9 +251,7 @@
// if new fishingOperation can already cancel his creation
model.setModify(model.isCreate());
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(validator);
+ registerValidators(validator);
}
@@ -263,8 +260,7 @@
if (log.isInfoEnabled()) {
log.info("closing: " + ui);
}
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
+ clearValidators();
}
@Override
@@ -275,7 +271,7 @@
result = answer == JOptionPane.NO_OPTION;
if (answer == JOptionPane.YES_OPTION) {
ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- ui.getSaveCruiseAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
}
}
return result;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -42,11 +42,11 @@
#editProgramButton {
enabled: {model.isProgramFound()};
- action: {editProgramAction};
+ _tuttiAction: {EditProgramAction.class};
}
#newProgramButton {
- action: {newProgramAction};
+ _tuttiAction: {NewProgramAction.class};
}
#cruiseLabel {
@@ -63,12 +63,12 @@
#editCruiseButton {
enabled: {model.isProgramFound() && model.isCruiseFound()};
- action: {editCruiseAction}
+ _tuttiAction: {EditCruiseAction.class};
}
#newCruiseButton {
enabled: {model.isProgramFound()};
- action: {newCruiseAction};
+ _tuttiAction: {NewCruiseAction.class};
}
#protocolLabel {
@@ -84,22 +84,22 @@
}
#newProtocolComboBox {
- model: {handler.newComboModel(newProtocolAction, importProtocolAction)};
+ model: {handler.newComboActionModel(NewProtocolAction.class, ImportProtocolAction.class)};
renderer: {new ActionListCellRenderer()};
}
#editProtocolComboBox {
- model: {handler.newComboModel(editProtocolAction, cloneProtocolAction, exportProtocolAction, deleteProtocolAction)};
+ model: {handler.newComboActionModel(EditProtocolAction.class, CloneProtocolAction.class, ExportProtocolAction.class, DeleteProtocolAction.class)};
enabled: {model.isProtocolFound()};
renderer: {new ActionListCellRenderer()};
}
#editCatchesButton {
- action: {editCatchesAction};
+ _tuttiAction: {EditCatchesAction.class};
enabled: {model.isValid() && uiContext.isCruiseFilled()};
}
#validateCatchesButton {
- action: {validateCatchesAction};
+ _tuttiAction: {ValidateCatchesAction.class};
enabled: {model.isValid() && uiContext.isCruiseFilled()};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -66,24 +66,6 @@
<SwingValidatorMessageTableModel id='errorTableModel'/>
- <NewProgramAction id='newProgramAction' constructorParams='handler'/>
- <EditProgramAction id='editProgramAction' constructorParams='handler'/>
-
- <NewCruiseAction id='newCruiseAction' constructorParams='handler'/>
- <EditCruiseAction id='editCruiseAction' constructorParams='handler'/>
-
- <NewProtocolAction id='newProtocolAction' constructorParams='handler'/>
- <ImportProtocolAction id='importProtocolAction' constructorParams='handler'/>
-
- <EditProtocolAction id='editProtocolAction' constructorParams='handler'/>
- <CloneProtocolAction id='cloneProtocolAction' constructorParams='handler'/>
- <ExportProtocolAction id='exportProtocolAction' constructorParams='handler'/>
- <DeleteProtocolAction id='deleteProtocolAction' constructorParams='handler'/>
-
- <EditCatchesAction id='editCatchesAction' constructorParams='handler'/>
- <ValidateCatchesAction id='validateCatchesAction'
- constructorParams='handler'/>
-
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='program' component='programCombobox'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -31,7 +31,6 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
import jaxx.runtime.validator.swing.SwingValidator;
@@ -153,6 +152,8 @@
@Override
public void afterInitUI() {
+ initUI(ui);
+
SelectCruiseUIModel model = getModel();
initBeanComboBox(ui.getProgramCombobox(),
@@ -226,9 +227,7 @@
}
});
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(getValidator());
+ registerValidators(getValidator());
listenValidatorValid(getValidator(), model);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -46,6 +46,8 @@
/** Logger. */
private static final Log log = LogFactory.getLog(SaveFishingOperationAction.class);
+ private final SelectFishingOperationAction delegate;
+
public CancelEditFishingOperationAction(EditFishingOperationUIHandler handler) {
super(handler,
"cancelFishingOperation",
@@ -54,6 +56,7 @@
_("tutti.action.cancel.editFishingOperation.tip"),
true
);
+ delegate = new SelectFishingOperationAction(handler.getParentUi().getHandler());
}
/**
@@ -66,17 +69,26 @@
*/
@Override
protected void doAction(ActionEvent event) throws Exception {
- FishingOperationsUIHandler parentHandler = getHandler().getParentUi().getHandler();
+ FishingOperationsUI parentUi = getHandler().getParentUi();
+ FishingOperationsUIHandler parentHandler = parentUi.getHandler();
if (getModel().isCreate()) {
if (log.isInfoEnabled()) {
log.info("Cancel edition for fishingOperation ");
}
// cancel to create a new fishingOperation
- parentHandler.closeCurrentFishingOperation();
+ parentUi.getFishingOperationTabContent().getHandler().selectFishingOperation(null);
+ parentUi.getCatchesTabContent().getHandler().selectFishingOperation(null, "");
+// parentHandler.closeCurrentFishingOperation();
} else {
- parentHandler.reloadFishingOperation();
+
+ // reload fishing operation
+ delegate.setFishingOperation(parentHandler.getModel().getSelectedFishingOperation());
+ delegate.doAction(event);
+// parentHandler.reloadFishingOperation();
}
+
+ //TODO ca sert à quoi ?
if (event.getSource() != null
&& event.getSource().getClass().isAssignableFrom(EditFishingOperationUIHandler.class)) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -445,20 +445,14 @@
text: {model.getComment()};
}
-#noTraitPane {
- text: "tutti.label.no.fishingOperation.selected";
- horizontalAlignment: {JLabel.CENTER};
-}
-
#saveButton {
- action: {saveFishingOperationAction};
+ _tuttiAction: {SaveFishingOperationAction.class};
}
#cancelButton {
- action: {cancelFishingOperationAction};
+ _tuttiAction: {CancelEditFishingOperationAction.class};
}
#importCasinoButton {
- actionIcon: casino-import;
- text: "tutti.action.casino-import";
+ _tuttiAction: {ImportCasinoAction.class};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -78,12 +78,6 @@
<EditFishingOperationUIModel id='model'
initializer='getContextValue(EditFishingOperationUIModel.class)'/>
- <SaveFishingOperationAction id='saveFishingOperationAction'
- constructorParams='handler'/>
-
- <CancelEditFishingOperationAction id='cancelFishingOperationAction'
- constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' context='validate' bean='model'
@@ -460,8 +454,7 @@
<row>
<cell columns='6'>
<JPanel layout='{new GridLayout(1,0)}'>
- <JButton id='importCasinoButton'
- onActionPerformed='handler.importCasino()'/>
+ <JButton id='importCasinoButton'/>
</JPanel>
</cell>
</row>
@@ -540,5 +533,4 @@
</JPanel>
- <JLabel id='noTraitPane'/>
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -39,7 +39,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Zone;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
@@ -58,11 +57,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.swing.JLabel;
import javax.swing.JOptionPane;
-import javax.swing.JPanel;
import javax.swing.JTabbedPane;
-import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
@@ -131,24 +127,24 @@
model.setCoordinateEditorType(getConfig().getCoordinateEditorType());
model.setValidationContext(getContext().getValidationContext());
- model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_EMPTY, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- JPanel form = ui.getFishingOperationPane();
- JLabel noContentPane = ui.getNoTraitPane();
+// model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_EMPTY, new PropertyChangeListener() {
+// @Override
+// public void propertyChange(PropertyChangeEvent evt) {
+// JPanel form = ui.getFishingOperationPane();
+// JLabel noContentPane = ui.getNoTraitPane();
+//
+// Boolean empty = (Boolean) evt.getNewValue();
+// ui.remove(form);
+// ui.remove(noContentPane);
+// if (empty) {
+// ui.add(noContentPane, BorderLayout.CENTER);
+// } else {
+// ui.add(form, BorderLayout.CENTER);
+// }
+// ui.repaint();
+// }
+// });
- Boolean empty = (Boolean) evt.getNewValue();
- ui.remove(form);
- ui.remove(noContentPane);
- if (empty) {
- ui.add(noContentPane, BorderLayout.CENTER);
- } else {
- ui.add(form, BorderLayout.CENTER);
- }
- ui.repaint();
- }
- });
-
model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_STRATA, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
@@ -232,7 +228,7 @@
final EditFishingOperationUIModel model = getModel();
initUI(ui);
-
+
initBeanList(ui.getSaisisseurList(),
persistenceService.getAllPerson(),
model.getSaisisseur());
@@ -245,12 +241,12 @@
Lists.<Gear>newArrayList(),
null);
- Cruise cruise = TuttiUIUtil.getCruise(ui);
+ Cruise cruise = TuttiUIUtil.getCruise(context);
Preconditions.checkNotNull(cruise,
"Could not find cruise in ui context");
ui.getMultirigAggregationField().setEnabled(cruise.getMultirigNumber() != 1);
- Program program = TuttiUIUtil.getProgram(ui);
+ Program program = TuttiUIUtil.getProgram(context);
Preconditions.checkNotNull(program,
"Could not find program in ui context");
@@ -332,7 +328,6 @@
}
});
}
-
}
@Override
@@ -342,8 +337,7 @@
log.info("closing: " + ui);
}
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
+ clearValidators();
closeUI(ui.getGearShootingTabContent());
closeUI(ui.getEnvironmentTabContent());
@@ -358,7 +352,7 @@
ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
switch (answer) {
case JOptionPane.OK_OPTION:
- ui.getSaveFishingOperationAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
break;
}
result = answer == JOptionPane.NO_OPTION;
@@ -374,11 +368,11 @@
ActionEvent event = new ActionEvent(this, newIndex, null);
switch (answer) {
case JOptionPane.OK_OPTION:
- ui.getSaveFishingOperationAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
break;
case JOptionPane.NO_OPTION:
- ui.getCancelFishingOperationAction().actionPerformed(event);
+ doAction(ui.getCancelButton(), event);
break;
}
}
@@ -387,9 +381,7 @@
@Override
public void onShowTab(int currentIndex, int newIndex) {
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(ui.getValidator());
+ registerValidators(ui.getValidator());
}
@Override
@@ -498,10 +490,6 @@
}
}
- public void importCasino() {
- //TODO
- }
-
public FishingOperationsUI getParentUi() {
return parentUi;
}
@@ -523,7 +511,7 @@
// reset sub strata combo
ui.getSubStrataComboBox().setData(null);
- Zone zone = TuttiUIUtil.getProgram(ui).getZone();
+ Zone zone = TuttiUIUtil.getProgram(context).getZone();
String zoneId = zone.getId();
String strataId = newStrata == null ? null : newStrata.getId();
@@ -566,7 +554,7 @@
// reset localite combo
ui.getLocationComboBox().setData(null);
- Zone zone = TuttiUIUtil.getProgram(ui).getZone();
+ Zone zone = TuttiUIUtil.getProgram(context).getZone();
String zoneId = zone.getId();
FishingOperationLocation strata = model.getStrata();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -29,8 +29,7 @@
}
#newFishingOperationButton {
- text: "tutti.action.new";
- actionIcon: add;
+ _tuttiAction: {NewFishingOperationAction.class};
}
#fishingOperationComboBox {
@@ -41,3 +40,8 @@
#catchesTab {
enabled: {model.getSelectedFishingOperation() != null};
}
+
+#noTraitPane {
+ text: "tutti.label.no.fishingOperation.selected";
+ horizontalAlignment: {JLabel.CENTER};
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -55,6 +55,8 @@
<FishingOperationsUIModel id='model'
initializer='getContextValue(FishingOperationsUIModel.class)'/>
+
+
<Table fill='both' id='topPanel' constraints='BorderLayout.NORTH'>
<!-- FishingOperations fishingOperation -->
@@ -64,13 +66,14 @@
genericType='FishingOperation'/>
</cell>
<cell anchor='east'>
- <JButton id='newFishingOperationButton'
- onActionPerformed='getHandler().createNewFishingOperation()'/>
+ <JButton id='newFishingOperationButton'/>
</cell>
</row>
</Table>
- <JTabbedPane id='tabPane' constraints='BorderLayout.CENTER'>
+ <JLabel id='noTraitPane' constraints='BorderLayout.CENTER'/>
+
+ <JTabbedPane id='tabPane'>
<tab id='fishingOperationTab' title='tutti.label.tab.fishingOperation'>
<EditFishingOperationUI id='fishingOperationTabContent'
constructorParams='this'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -24,12 +24,9 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.persistence.entities.referential.Gear;
-import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
@@ -39,15 +36,12 @@
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.decorator.Decorator;
import javax.swing.JTabbedPane;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
-import static org.nuiton.i18n.I18n._;
-
/**
* Handler of UI {@link FishingOperationsUI}.
*
@@ -64,6 +58,8 @@
private final PersistenceService persistenceService;
+ protected SelectFishingOperationAction selectFishingOperationAction;
+
public FishingOperationsUIHandler(TuttiUI parentUI,
FishingOperationsUI ui) {
super(parentUI.getHandler().getContext());
@@ -71,6 +67,10 @@
persistenceService = context.getService(PersistenceService.class);
}
+ public FishingOperationsUI getUi() {
+ return ui;
+ }
+
@Override
public void beforeInitUI() {
@@ -87,15 +87,16 @@
Cruise cruise = persistenceService.getCruise(cruiseId);
// store it in context
- TuttiUIUtil.setCruise(ui, cruise);
- TuttiUIUtil.setProgram(ui, cruise.getProgram());
+ TuttiUIUtil.setCruise(context, cruise);
+ TuttiUIUtil.setProgram(context, cruise.getProgram());
TuttiProtocol protocol;
if (getContext().isProtocolFilled()) {
// load existing protocol
- protocol = persistenceService.getProtocol(getContext().getProtocolId());
+ protocol = persistenceService.getProtocol(
+ getContext().getProtocolId());
if (log.isInfoEnabled()) {
log.info("Loading existing protocol: " + protocol);
@@ -106,7 +107,7 @@
protocol = null;
}
- TuttiUIUtil.setProtocol(ui, protocol);
+ TuttiUIUtil.setProtocol(context, protocol);
List<FishingOperation> fishingOperations =
persistenceService.getAllFishingOperation(cruiseId);
@@ -130,9 +131,11 @@
@Override
public void afterInitUI() {
+ initUI(ui);
+
+ selectFishingOperationAction = createAction(SelectFishingOperationAction.class);
FishingOperationsUIModel model = getModel();
- initUI(ui);
List<FishingOperation> fishingOperations = model.getFishingOperation();
@@ -143,15 +146,26 @@
model.addPropertyChangeListener(FishingOperationsUIModel.PROPERTY_SELECTED_FISHING_OPERATION, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- log.debug("propertyChange " + FishingOperationsUIModel.PROPERTY_SELECTED_FISHING_OPERATION);
- selectFishingOperation((FishingOperation) evt.getNewValue());
+ if (log.isDebugEnabled()) {
+ log.debug("propertyChange " + FishingOperationsUIModel.PROPERTY_SELECTED_FISHING_OPERATION);
+ }
+
+ if (!getModel().isValueIsAdjusting()) {
+
+ // only rebuild stuff if model is not adjusting
+ selectFishingOperationAction.setFishingOperation((FishingOperation) evt.getNewValue());
+ selectFishingOperationAction.actionPerformed(null);
+// selectFishingOperation((FishingOperation) evt.getNewValue());
+ }
}
});
model.addPropertyChangeListener(FishingOperationsUIModel.PROPERTY_FISHING_OPERATION, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- log.debug("propertyChange " + FishingOperationsUIModel.PROPERTY_FISHING_OPERATION);
+ if (log.isDebugEnabled()) {
+ log.debug("propertyChange " + FishingOperationsUIModel.PROPERTY_FISHING_OPERATION);
+ }
ui.getFishingOperationComboBox().setData(null);
ui.getFishingOperationComboBox().setData((List<FishingOperation>) evt.getNewValue());
}
@@ -194,118 +208,80 @@
}
@Override
- protected JTabbedPane getTabPanel() {
+ public JTabbedPane getTabPanel() {
return ui.getTabPane();
}
- public void createNewFishingOperation() {
+// public void selectFishingOperation(FishingOperation fishingOperation) {
+//
+// if (log.isInfoEnabled()) {
+// log.info("New selected fishingOperation: " + fishingOperation);
+// }
+//
+// // back to general tab of fishingOperation tabs
+// ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
+//
+// if (fishingOperation != null) {
+// Decorator<FishingOperation> decorator =
+// getDecorator(FishingOperation.class, null);
+//
+// String fishingOperationText =
+// _("tutti.label.traitReminder",
+// decorator.toString(fishingOperation));
+//
+// // propagate fishingOperation to his tabs
+// ui.getFishingOperationTabContent().getHandler().selectFishingOperation(fishingOperation);
+// if (ui.getFishingOperationTabContent().getModel().isCreate()) {
+// // back to fishingOperation tab
+// ui.getTabPane().setSelectedIndex(0);
+// }
+//
+// ui.getCatchesTabContent().getHandler().selectFishingOperation(fishingOperation,
+// fishingOperationText);
+//
+// // repaint tabs
+// ui.getTabPane().repaint();
+//
+// } else {
+// ui.getFishingOperationTabContent().getHandler().clearFishingOperation();
+// // back to fishingOperation tab
+// ui.getTabPane().setSelectedIndex(0);
+// }
+// }
- FishingOperationsUIModel model = getModel();
+// public void closeCurrentFishingOperation() {
+// ui.getFishingOperationTabContent().getHandler().selectFishingOperation(null);
+// ui.getCatchesTabContent().getHandler().selectFishingOperation(null, "");
+// }
- // deselect selected fishingOperation
- model.setSelectedFishingOperation(null);
+// public void saveFishingOperation(FishingOperation toSave) {
+//
+// // persist the fishingOperation
+//
+// boolean create = toSave.getId() == null;
+// FishingOperationsUIModel model = getModel();
+// FishingOperation savedFishingOperation;
+//
+// if (create) {
+//
+// savedFishingOperation = persistenceService.createFishingOperation(toSave);
+// model.addFishingOperation(savedFishingOperation);
+// model.setSelectedFishingOperation(savedFishingOperation);
+//
+// } else {
+// savedFishingOperation = persistenceService.saveFishingOperation(toSave);
+//
+// // add the saved fishingOperation to fishingOperation list
+// List<FishingOperation> data = model.getFishingOperation();
+//
+// FishingOperation existingFishingOperation =
+// TuttiEntities.findById(data, savedFishingOperation.getId());
+// model.updateFishingOperation(existingFishingOperation, savedFishingOperation);
+// }
+// }
- // use a new empty fishingOperation
- FishingOperation newFishingOperation = new FishingOperation();
- Cruise cruise = TuttiUIUtil.getCruise(ui);
- newFishingOperation.setCruise(cruise);
-
- //TODO Should select vessel from possible one ?
- List<Vessel> vessels = cruise.getVessel();
- if (vessels.size() == 1) {
- newFishingOperation.setVessel(vessels.get(0));
- }
-
- //TODO Should select gear from possible one ?
- List<Gear> gears = cruise.getGear();
- if (gears.size() == 1) {
- newFishingOperation.setGear(gears.get(0));
- }
-
- if (cruise.getMultirigNumber() == 1) {
- newFishingOperation.setMultirigAggregation("1");
- }
-
- // by default use the current day with no time information
-// Date currentDate = DateUtils.setMinutes(
-// DateUtils.setHours(new Date(), 0), 0);
-
- newFishingOperation.setGearShootingStartDate(null);
- newFishingOperation.setGearShootingEndDate(null);
-
- selectFishingOperation(newFishingOperation);
- }
-
- public void selectFishingOperation(FishingOperation fishingOperation) {
-
- if (log.isInfoEnabled()) {
- log.info("New selected fishingOperation: " + fishingOperation);
- }
-
- // back to general tab of fishingOperation tabs
- ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
-
- if (fishingOperation != null) {
- Decorator<FishingOperation> decorator =
- getDecorator(FishingOperation.class, null);
-
- String fishingOperationText =
- _("tutti.label.traitReminder",
- decorator.toString(fishingOperation));
-
- // propagate fishingOperation to his tabs
- ui.getFishingOperationTabContent().getHandler().selectFishingOperation(fishingOperation);
- if (ui.getFishingOperationTabContent().getModel().isCreate()) {
- // back to fishingOperation tab
- ui.getTabPane().setSelectedIndex(0);
- }
-
- ui.getCatchesTabContent().getHandler().selectFishingOperation(fishingOperation,
- fishingOperationText);
-
- // repaint tabs
- ui.getTabPane().repaint();
-
- } else {
- ui.getFishingOperationTabContent().getHandler().clearFishingOperation();
- // back to fishingOperation tab
- ui.getTabPane().setSelectedIndex(0);
- }
- }
-
- public void closeCurrentFishingOperation() {
- ui.getFishingOperationTabContent().getHandler().selectFishingOperation(null);
- ui.getCatchesTabContent().getHandler().selectFishingOperation(null, "");
- }
-
- public void saveFishingOperation(FishingOperation toSave) {
-
- // persist the fishingOperation
-
- boolean create = toSave.getId() == null;
- FishingOperationsUIModel model = getModel();
- FishingOperation savedFishingOperation;
-
- if (create) {
-
- savedFishingOperation = persistenceService.createFishingOperation(toSave);
- model.addFishingOperation(savedFishingOperation);
- model.setSelectedFishingOperation(savedFishingOperation);
-
- } else {
- savedFishingOperation = persistenceService.saveFishingOperation(toSave);
-
- // add the saved fishingOperation to fishingOperation list
- List<FishingOperation> data = model.getFishingOperation();
-
- FishingOperation existingFishingOperation =
- TuttiEntities.findById(data, savedFishingOperation.getId());
- model.updateFishingOperation(existingFishingOperation, savedFishingOperation);
- }
- }
-
- public void reloadFishingOperation() {
- FishingOperation operation = getModel().getSelectedFishingOperation();
- selectFishingOperation(operation);
- }
+// public void reloadFishingOperation() {
+// FishingOperation operation = getModel().getSelectedFishingOperation();
+// selectFishingOperation(operation);
+// }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -48,6 +48,8 @@
protected FishingOperation selectedFishingOperation;
+ private boolean valueIsAdjusting;
+
public List<FishingOperation> getFishingOperation() {
return fishingOperation;
}
@@ -87,8 +89,16 @@
}
public void setSelectedFishingOperation(FishingOperation selectedFishingOperation) {
- Object oldValue = Lists.newArrayList(getSelectedFishingOperation());
+ Object oldValue = getSelectedFishingOperation();
this.selectedFishingOperation = selectedFishingOperation;
firePropertyChange(PROPERTY_SELECTED_FISHING_OPERATION, oldValue, selectedFishingOperation);
}
+
+ public void setValueIsAdjusting(boolean valueIsAdjusting) {
+ this.valueIsAdjusting = valueIsAdjusting;
+ }
+
+ public boolean isValueIsAdjusting() {
+ return valueIsAdjusting;
+ }
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,56 @@
+package fr.ifremer.tutti.ui.swing.content.operation;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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.ifremer.tutti.ui.swing.AbstractTuttiAction;
+
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ImportCasinoAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ public ImportCasinoAction(EditFishingOperationUIHandler handler) {
+ super(handler,
+ "importCasino",
+ "casino-import",
+ _("tutti.action.importCasino"),
+ _("tutti.action.importCasino.tip"),
+ true);
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+ //TODO
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,108 @@
+package fr.ifremer.tutti.ui.swing.content.operation;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+
+import java.awt.event.ActionEvent;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class NewFishingOperationAction extends AbstractTuttiAction<FishingOperationsUIModel, FishingOperationsUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ private final SelectFishingOperationAction delegate;
+
+ public NewFishingOperationAction(FishingOperationsUIHandler handler) {
+ super(handler,
+ "newFishingOperation",
+ "add",
+ null,
+ _("tutti.action.newFishingOperation.tip"),
+ true);
+
+ delegate = new SelectFishingOperationAction(getHandler());
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+
+ FishingOperationsUIModel model = getModel();
+
+ model.setValueIsAdjusting(true);
+
+ try {
+ // deselect selected fishingOperation
+ model.setSelectedFishingOperation(null);
+
+ // use a new empty fishingOperation
+ FishingOperation newFishingOperation = new FishingOperation();
+ Cruise cruise = TuttiUIUtil.getCruise(getContext());
+ newFishingOperation.setCruise(cruise);
+
+ //TODO Should select vessel from possible one ?
+ List<Vessel> vessels = cruise.getVessel();
+ if (vessels.size() == 1) {
+ newFishingOperation.setVessel(vessels.get(0));
+ }
+
+ //TODO Should select gear from possible one ?
+ List<Gear> gears = cruise.getGear();
+ if (gears.size() == 1) {
+ newFishingOperation.setGear(gears.get(0));
+ }
+
+ if (cruise.getMultirigNumber() == 1) {
+ newFishingOperation.setMultirigAggregation("1");
+ }
+
+ // by default use the current day with no time information
+// Date currentDate = DateUtils.setMinutes(
+// DateUtils.setHours(new Date(), 0), 0);
+
+ newFishingOperation.setGearShootingStartDate(null);
+ newFishingOperation.setGearShootingEndDate(null);
+
+ delegate.setFishingOperation(newFishingOperation);
+ delegate.doAction(event);
+
+ } finally {
+ model.setValueIsAdjusting(false);
+ }
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -26,7 +26,9 @@
*/
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
@@ -39,6 +41,7 @@
import org.apache.commons.logging.LogFactory;
import java.awt.event.ActionEvent;
+import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -80,7 +83,8 @@
EditFishingOperationUIHandler handler = getHandler();
FishingOperationsUIHandler parentHandler = getHandler().getParentUi().getHandler();
- TuttiBeanMonitor<EditFishingOperationUIModel> monitor = handler.getFishingOperationMonitor();
+ TuttiBeanMonitor<EditFishingOperationUIModel> monitor =
+ handler.getFishingOperationMonitor();
// previous fishingOperation was modified, let's save it
EditFishingOperationUIModel beanToSave = monitor.getBean();
@@ -129,7 +133,7 @@
getModel().setModify(false);
// persist current fishingOperation
- parentHandler.saveFishingOperation(toSave);
+ saveFishingOperation(toSave);
}
if (event.getSource() != null) {
@@ -145,4 +149,31 @@
}
}
+ protected void saveFishingOperation(FishingOperation toSave) {
+
+ PersistenceService service =
+ getContext().getService(PersistenceService.class);
+
+ boolean create = toSave.getId() == null;
+ FishingOperationsUIModel model = getHandler().getParentUi().getModel();
+ FishingOperation savedFishingOperation;
+
+ if (create) {
+
+ savedFishingOperation = service.createFishingOperation(toSave);
+ model.addFishingOperation(savedFishingOperation);
+ model.setSelectedFishingOperation(savedFishingOperation);
+
+ } else {
+ savedFishingOperation = service.saveFishingOperation(toSave);
+
+ // add the saved fishingOperation to fishingOperation list
+ List<FishingOperation> data = model.getFishingOperation();
+
+ FishingOperation existingFishingOperation =
+ TuttiEntities.findById(data, savedFishingOperation.getId());
+ model.updateFishingOperation(existingFishingOperation, savedFishingOperation);
+ }
+ }
+
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,133 @@
+package fr.ifremer.tutti.ui.swing.content.operation;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.decorator.Decorator;
+
+import javax.swing.JLabel;
+import javax.swing.JTabbedPane;
+import java.awt.BorderLayout;
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class SelectFishingOperationAction extends AbstractTuttiAction<FishingOperationsUIModel, FishingOperationsUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(SelectFishingOperationAction.class);
+
+ protected FishingOperation fishingOperation;
+
+ public SelectFishingOperationAction(FishingOperationsUIHandler handler) {
+ super(handler,
+ "selectFishingOperation",
+ "select",
+ null,
+ _("tutti.action.selectFishingOperation.tip"),
+ true);
+ }
+
+ public void setFishingOperation(FishingOperation fishingOperation) {
+ this.fishingOperation = fishingOperation;
+ }
+
+ @Override
+ protected void releaseAction(ActionEvent event) {
+ fishingOperation = null;
+ super.releaseAction(event);
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+
+ if (log.isInfoEnabled()) {
+ log.info("New selected fishingOperation: " + fishingOperation);
+ }
+
+ FishingOperationsUI ui = getHandler().getUi();
+
+ JTabbedPane form = ui.getTabPane();
+ JLabel noContentPane = ui.getNoTraitPane();
+
+ if (fishingOperation == null) {
+
+ // nothing to display
+
+ ui.remove(form);
+
+ // just display <no trait!>
+ ui.add(noContentPane, BorderLayout.CENTER);
+
+ } else {
+
+ // select a fishing operation
+
+ Decorator<FishingOperation> decorator =
+ getDecorator(FishingOperation.class, null);
+
+ String fishingOperationText =
+ _("tutti.label.traitReminder",
+ decorator.toString(fishingOperation));
+
+ // propagate fishingOperation to his tabs
+ ui.getFishingOperationTabContent().getHandler().selectFishingOperation(fishingOperation);
+ if (ui.getFishingOperationTabContent().getModel().isCreate()) {
+
+ // back to fishingOperation tab
+ ui.getTabPane().setSelectedIndex(0);
+ }
+
+ ui.getCatchesTabContent().getHandler().selectFishingOperation(fishingOperation,
+ fishingOperationText);
+
+ // back to general tab of fishingOperation tabs
+ ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
+
+ ui.remove(noContentPane);
+
+ // wait last minute to display (avoid dirty display effects)
+ ui.add(form, BorderLayout.CENTER);
+
+ // repaint tabs
+// ui.getTabPane().repaint();
+
+ }
+
+ ui.repaint();
+ }
+}
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -234,8 +234,7 @@
}
#importPupitriButton {
- actionIcon: pupitri-import;
- text: "tutti.action.pupitri-import";
+ _tuttiAction: {ImportPupitriAction.class};
}
#benthosTab {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -284,8 +284,7 @@
<row>
<cell columns='2'>
<JPanel layout='{new GridLayout(1,0)}'>
- <JButton id='importPupitriButton'
- onActionPerformed='handler.importPupitri()'/>
+ <JButton id='importPupitriButton'/>
</JPanel>
</cell>
</row>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -27,8 +27,6 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
@@ -267,16 +265,9 @@
}
protected void registerValidators() {
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(getValidator());
- main.registerValidator(ui.getSpeciesTabContent().getHandler().getValidator());
+ registerValidators(getValidator(), ui.getSpeciesTabContent().getHandler().getValidator());
}
- public void importPupitri() {
- //TODO
- }
-
public void setSelectedCard(String card) {
Component selectedComponent = getTabPanel().getSelectedComponent();
if (selectedComponent.getClass().isAssignableFrom(JPanel.class)) {
@@ -303,9 +294,7 @@
}
}
if (tuttiUi != null) {
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(tuttiUi.getHandler().getValidator());
+ registerValidators(tuttiUi.getHandler().getValidator());
}
}
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,56 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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.ifremer.tutti.ui.swing.AbstractTuttiAction;
+
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ImportPupitriAction extends AbstractTuttiAction<EditCatchesUIModel, EditCatchesUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ public ImportPupitriAction(EditCatchesUIHandler handler) {
+ super(handler,
+ "importPupitri",
+ "pupitri-import",
+ _("tutti.action.importPupitri"),
+ _("tutti.action.importPupitri.tip"),
+ true);
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+ //TODO
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -115,12 +115,12 @@
//------------------------------------------------------------------------//
@Override
- protected AccidentalBatchTableModel getTableModel() {
+ public AccidentalBatchTableModel getTableModel() {
return (AccidentalBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -118,12 +118,12 @@
//------------------------------------------------------------------------//
@Override
- protected BenthosBatchTableModel getTableModel() {
+ public BenthosBatchTableModel getTableModel() {
return (BenthosBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -115,12 +115,12 @@
//------------------------------------------------------------------------//
@Override
- protected MacroWasteBatchTableModel getTableModel() {
+ public MacroWasteBatchTableModel getTableModel() {
return (MacroWasteBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -116,12 +116,12 @@
//------------------------------------------------------------------------//
@Override
- protected PlanktonBatchTableModel getTableModel() {
+ public PlanktonBatchTableModel getTableModel() {
return (PlanktonBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -108,19 +108,19 @@
}
#removeSpeciesBatchMenu {
- action: {removeSpeciesBatchAction};
+ _tuttiAction: {RemoveSpeciesBatchAction.class};
mnemonic: R;
enabled: {model.isTableViewModeAll() && model.isRemoveSpeciesBatchEnabled()};
}
#removeSpeciesSubBatchMenu {
- action: {removeSpeciesSubBatchAction};
+ _tuttiAction: {RemoveSpeciesSubBatchAction.class};
mnemonic: R;
enabled: {model.isTableViewModeAll() && model.isRemoveSpeciesSubBatchEnabled()};
}
#renameSpeciesBatchMenu {
- action: {renameSpeciesBatchAction};
+ _tuttiAction: {RenameSpeciesBatchAction.class};
enabled: {model.isTableViewModeAll() && model.isRenameSpeciesBatchEnabled()};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -65,13 +65,6 @@
<SwingValidatorMessageTableModel id='errorTableModel'/>
- <RenameSpeciesBatchAction id='renameSpeciesBatchAction'
- constructorParams='handler'/>
- <RemoveSpeciesBatchAction id='removeSpeciesBatchAction'
- constructorParams='handler'/>
- <RemoveSpeciesSubBatchAction id='removeSpeciesSubBatchAction'
- constructorParams='handler'/>
-
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='speciesTotalWeight' component='speciesTotalWeightField'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -240,12 +240,12 @@
//------------------------------------------------------------------------//
@Override
- protected SpeciesBatchTableModel getTableModel() {
+ public SpeciesBatchTableModel getTableModel() {
return (SpeciesBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
@@ -406,10 +406,7 @@
// get loaded protocol
- protocol = TuttiUIUtil.getProtocol(ui);
- Preconditions.checkNotNull(
- protocol,
- "Could not find protocol in ui context");
+ protocol = TuttiUIUtil.getProtocol(context);
lengthCaracterics = Lists.newArrayListWithCapacity(
protocol.sizeLengthClassesPmfmId());
@@ -461,7 +458,7 @@
// get loaded protocol
- TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui);
+ TuttiProtocol protocol = TuttiUIUtil.getProtocol(context);
Preconditions.checkNotNull(protocol,
"Could not find protocol in ui context");
@@ -1005,8 +1002,8 @@
getModel().setRenameSpeciesBatchEnabled(enableRename);
}
- protected void collectChilds(SpeciesBatchRowModel row,
- Set<SpeciesBatchRowModel> collectedRows) {
+ public void collectChilds(SpeciesBatchRowModel row,
+ Set<SpeciesBatchRowModel> collectedRows) {
if (!row.isBatchLeaf()) {
@@ -1113,7 +1110,7 @@
columnIdentifier);
}
- protected void removeFromSpeciesUsed(SpeciesBatchRowModel row) {
+ public void removeFromSpeciesUsed(SpeciesBatchRowModel row) {
Preconditions.checkNotNull(row);
Preconditions.checkNotNull(row.getSpecies());
Preconditions.checkNotNull(row.getSortedUnsortedCategoryValue());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -99,12 +99,12 @@
//------------------------------------------------------------------------//
@Override
- protected SpeciesFrequencyTableModel getTableModel() {
+ public SpeciesFrequencyTableModel getTableModel() {
return (SpeciesFrequencyTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
@@ -183,7 +183,7 @@
if (context.isProtocolFilled()) {
// get loaded protocol
- protocol = TuttiUIUtil.getProtocol(ui);
+ protocol = TuttiUIUtil.getProtocol(context);
Preconditions.checkNotNull(protocol,
"Could not find protocol in ui context");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -53,7 +53,7 @@
}
#addSpeciesButton {
- action: {addSpeciesAction};
+ _tuttiAction: {AddSpeciesAction.class};
}
#sortedUnsortedCategoryLabel {
@@ -91,18 +91,3 @@
mnemonic: A;
text: "tutti.action.cancel";
}
-
-#messagePanel {
- border: {BorderFactory.createTitledBorder(_("tutti.title.messages"))};
- /*height: 200;
- width: 500;*/
-}
-
-#errorTable {
- rowSelectionAllowed: true;
- autoCreateRowSorter: true;
- autoResizeMode: {JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS};
- cellSelectionEnabled: false;
- selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- model: {errorTableModel};
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -68,8 +68,6 @@
<CreateSpeciesBatchUIModel id='model'
initializer='getContextValue(CreateSpeciesBatchUIModel.class)'/>
- <AddSpeciesAction id='addSpeciesAction' constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -95,12 +95,12 @@
//------------------------------------------------------------------------//
@Override
- protected SplitSpeciesBatchTableModel getTableModel() {
+ public SplitSpeciesBatchTableModel getTableModel() {
return (SplitSpeciesBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -66,7 +66,7 @@
//------------------------------------------------------------------------//
@Override
- protected TM getTableModel() {
+ public TM getTableModel() {
return (TM) getTable().getModel();
}
@@ -206,7 +206,7 @@
}
model.setCaracteristicMap(caracteristicMap);
- TuttiProtocol protocol = TuttiUIUtil.getProtocol(getUI());
+ TuttiProtocol protocol = TuttiUIUtil.getProtocol(context);
List<String> pmfmIds = Lists.newArrayList();
if (protocol != null) {
List<String> protocolPmfmId = getProtocolPmfmIds(protocol);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -98,7 +98,7 @@
//------------------------------------------------------------------------//
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getEnvironmentTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -99,7 +99,7 @@
//------------------------------------------------------------------------//
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getGearShootingTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -107,7 +107,7 @@
//------------------------------------------------------------------------//
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getHydrologyTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -60,10 +60,10 @@
}
#saveButton {
- action: {saveProgramAction};
+ _tuttiAction: {SaveProgramAction.class};
enabled: {model.isModify() && model.isValid()};
}
#cancelButton {
- action: {cancelEditProgramAction};
+ _tuttiAction: {CancelEditProgramAction.class};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -61,10 +61,6 @@
<EditProgramUIModel id='model'
initializer='getContextValue(EditProgramUIModel.class)'/>
- <SaveProgramAction id='saveProgramAction' constructorParams='handler'/>
- <CancelEditProgramAction id='cancelEditProgramAction'
- constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -27,7 +27,6 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
@@ -99,6 +98,8 @@
@Override
public void afterInitUI() {
+ initUI(ui);
+
EditProgramUIModel model = getModel();
initBeanComboBox(ui.getZoneComboBox(),
persistenceService.getAllProgramZone(),
@@ -107,9 +108,7 @@
SwingValidator validator = ui.getValidator();
listenValidatorValid(validator, model);
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(validator);
+ registerValidators(validator);
// if new program can already cancel his creation
model.setModify(model.isCreate());
@@ -120,8 +119,7 @@
if (log.isInfoEnabled()) {
log.info("closing: " + ui);
}
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
+ clearValidators();
}
@Override
@@ -132,7 +130,7 @@
result = answer == JOptionPane.NO_OPTION;
if (answer == JOptionPane.YES_OPTION) {
ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- ui.getSaveProgramAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
}
}
return result;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -64,11 +64,11 @@
#saveButton {
enabled: {model.isModify() && model.isValid()};
- action: {saveProtocolAction};
+ _tuttiAction: {SaveProtocolAction.class};
}
#cancelButton {
- action: {cancelEditProtocolAction};
+ _tuttiAction: {CancelEditProtocolAction.class};
}
#speciesComboBox {
@@ -104,28 +104,23 @@
}
#importSpecies {
- actionIcon: import;
- action: {importProtocolSpeciesAction};
+ _tuttiAction: {ImportProtocolSpeciesAction.class};
}
#exportSpecies {
- actionIcon: export;
- action: {exportProtocolSpeciesAction};
+ _tuttiAction: {ExportProtocolSpeciesAction.class};
}
#importCaracteristic {
- actionIcon: import;
- action: {importProtocolCaracteristicAction};
+ _tuttiAction: {ImportProtocolCaracteristicAction.class};
}
#exportCaracteristic {
- actionIcon: export;
- action: {exportProtocolCaracteristicAction};
+ _tuttiAction: {ExportProtocolCaracteristicAction.class};
}
#exportAllCaracteristic {
- actionIcon: export;
- action: {exportAllCaracteristicAction};
+ _tuttiAction: {ExportAllCaracteristicAction.class};
}
#gearList {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -68,24 +68,6 @@
<EditProtocolUIModel id='model'
initializer='getContextValue(EditProtocolUIModel.class)'/>
- <CancelEditProtocolAction id='cancelEditProtocolAction'
- constructorParams='handler'/>
- <SaveProtocolAction id='saveProtocolAction' constructorParams='handler'/>
- <ImportProtocolCaracteristicAction id='importProtocolCaracteristicAction'
- constructorParams='handler'/>
-
- <ExportProtocolCaracteristicAction id='exportProtocolCaracteristicAction'
- constructorParams='handler'/>
-
- <ExportAllCaracteristicAction id='exportAllCaracteristicAction'
- constructorParams='handler'/>
-
- <ImportProtocolSpeciesAction id='importProtocolSpeciesAction'
- constructorParams='handler'/>
-
- <ExportProtocolSpeciesAction id='exportProtocolSpeciesAction'
- constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -31,7 +31,6 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
@@ -98,12 +97,12 @@
//------------------------------------------------------------------------//
@Override
- protected EditProtocolSpeciesTableModel getTableModel() {
+ public EditProtocolSpeciesTableModel getTableModel() {
return (EditProtocolSpeciesTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getSpeciesTable();
}
@@ -244,9 +243,7 @@
SwingValidator validator = ui.getValidator();
listenValidatorValid(validator, model);
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(validator);
+ registerValidators(validator);
// create table model
@@ -361,8 +358,7 @@
if (log.isInfoEnabled()) {
log.info("closing: " + ui);
}
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
+ clearValidators();
}
@Override
@@ -373,7 +369,7 @@
result = answer == JOptionPane.NO_OPTION;
if (answer == JOptionPane.YES_OPTION) {
ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- ui.getSaveProtocolAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
}
}
return result;
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,23 @@
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,136 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ 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='homePanel' layout='{new BorderLayout()}'>
+ <!--implements='fr.ifremer.tutti.ui.swing.TuttiUI<SelectCruiseUIModel, SelectCruiseUIHandler>'>-->
+
+ <import>
+
+ fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
+ fr.ifremer.tutti.ui.swing.util.ActionListCellRenderer
+
+ jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
+
+ static org.nuiton.i18n.I18n._
+ </import>
+
+ <!--<script><![CDATA[-->
+
+ <!--protected TuttiUIContext uiContext;-->
+
+ <!--public SelectCruiseUI(TuttiUI parentUI) {-->
+ <!--JAXXUtil.initContext(this, parentUI);-->
+ <!--uiContext = parentUI.getHandler().getContext();-->
+ <!--SelectCruiseUIHandler handler =-->
+ <!--new SelectCruiseUIHandler(parentUI, this);-->
+ <!--setContextValue(handler);-->
+ <!--handler.beforeInitUI();-->
+ <!--}-->
+
+ <!--protected void $afterCompleteSetup() {-->
+ <!--handler.afterInitUI();-->
+ <!--}-->
+ <!--]]></script>-->
+
+ <!--<SelectCruiseUIHandler id='handler'-->
+ <!--initializer='getContextValue(SelectCruiseUIHandler.class)'/>-->
+
+ <!--<SelectCruiseUIModel id='model'-->
+ <!--initializer='getContextValue(SelectCruiseUIModel.class)'/>-->
+
+ <SwingValidatorMessageTableModel id='errorTableModel'/>
+
+ <!--<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'-->
+ <!--uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>-->
+ <!--<field name='program' component='programCombobox'/>-->
+ <!--<field name='cruise' component='cruiseCombobox'/>-->
+ <!--<field name='protocol' component='protocolCombobox'/>-->
+ <!--</BeanValidator>-->
+
+ <!--<Table fill='both' constraints='BorderLayout.CENTER'>-->
+ <!--<row>-->
+ <!--<cell anchor='west'>-->
+ <!--<JLabel id='programLabel'/>-->
+ <!--</cell>-->
+ <!--<cell weightx='1.0'>-->
+ <!--<BeanComboBox id='programCombobox' constructorParams='this'-->
+ <!--genericType='Program'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<JPanel layout='{new GridLayout(1,0)}'>-->
+ <!--<JButton id='editProgramButton'/>-->
+ <!--<!–onActionPerformed='handler.showSelectedProgram()'/>–>-->
+ <!--<JButton id='newProgramButton'/>-->
+ <!--<!–onActionPerformed='handler.showNewProgram()'/>–>-->
+ <!--</JPanel>-->
+ <!--</cell>-->
+ <!--</row>-->
+ <!--<row>-->
+ <!--<cell>-->
+ <!--<JLabel id='cruiseLabel'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<BeanComboBox id='cruiseCombobox' constructorParams='this'-->
+ <!--genericType='Cruise'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<JPanel layout='{new GridLayout(1,0)}'>-->
+ <!--<JButton id='editCruiseButton'/>-->
+ <!--<!–onActionPerformed='handler.showSelectedCruise()'/>–>-->
+ <!--<JButton id='newCruiseButton'/>-->
+ <!--<!–onActionPerformed='handler.showNewCruise()'/>–>-->
+ <!--</JPanel>-->
+ <!--</cell>-->
+ <!--</row>-->
+ <!--<row>-->
+ <!--<cell>-->
+ <!--<JLabel id='protocolLabel'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<BeanComboBox id='protocolCombobox' constructorParams='this'-->
+ <!--genericType='TuttiProtocol'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<JPanel layout='{new GridLayout(1,0)}'>-->
+ <!--<JComboBox id='editProtocolComboBox'-->
+ <!--onMouseEntered='if (editProtocolComboBox.isEnabled()) { editProtocolComboBox.showPopup(); }'-->
+ <!--onActionPerformed='handler.startExistingProtocolAction(event)'/>-->
+ <!--<JComboBox id='newProtocolComboBox'-->
+ <!--onMouseEntered='newProtocolComboBox.showPopup()'-->
+ <!--onActionPerformed='handler.startNewProtocolAction(event)'/>-->
+ <!--</JPanel>-->
+ <!--</cell>-->
+ <!--</row>-->
+ <!--<row>-->
+ <!--<cell columns='3'>-->
+ <!--<JPanel layout='{new GridLayout(1,0)}'>-->
+ <!--<JButton id='editCatchesButton'/>-->
+ <!--<!–onActionPerformed='handler.showFillCatches()'/>–>-->
+ <!--<JButton id='validateCatchesButton'/>-->
+ <!--<!–onActionPerformed='handler.showValidateCatches()'/>–>-->
+ <!--</JPanel>-->
+ <!--</cell>-->
+ <!--</row>-->
+ <!--</Table>-->
+</JPanel>
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,32 @@
+package fr.ifremer.tutti.ui.swing.content.referential;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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%
+ */
+
+/**
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ManageReferentialUIHandler {
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -29,7 +29,7 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.TuttiServiceTechnicalException;
-import jaxx.runtime.JAXXContext;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.context.JAXXContextEntryDef;
import org.apache.commons.beanutils.PropertyUtils;
@@ -74,42 +74,54 @@
private static final JAXXContextEntryDef<TuttiProtocol> PROTOCOL_ENTRY =
JAXXUtil.newContextEntryDef("loadedProtocol", TuttiProtocol.class);
- public static Program getProgram(JAXXContext context) {
- return PROGRAM_ENTRY.getContextValue(context);
+// public static Program getProgram(JAXXContext context) {
+// return PROGRAM_ENTRY.getContextValue(context);
+// }
+
+// public static Cruise getCruise(JAXXContext context) {
+// return CRUISE_ENTRY.getContextValue(context);
+// }
+
+// public static TuttiProtocol getProtocol(JAXXContext context) {
+// return PROTOCOL_ENTRY.getContextValue(context);
+// }
+
+ public static Program getProgram(TuttiUIContext context) {
+ return PROGRAM_ENTRY.getContextValue(context.getMainUI());
}
- public static Cruise getCruise(JAXXContext context) {
- return CRUISE_ENTRY.getContextValue(context);
+ public static Cruise getCruise(TuttiUIContext context) {
+ return CRUISE_ENTRY.getContextValue(context.getMainUI());
}
- public static TuttiProtocol getProtocol(JAXXContext context) {
- return PROTOCOL_ENTRY.getContextValue(context);
+ public static TuttiProtocol getProtocol(TuttiUIContext context) {
+ return PROTOCOL_ENTRY.getContextValue(context.getMainUI());
}
- public static void setProgram(JAXXContext context, Program value) {
+ public static void setProgram(TuttiUIContext context, Program value) {
if (value == null) {
- PROGRAM_ENTRY.removeContextValue(context);
+ PROGRAM_ENTRY.removeContextValue(context.getMainUI());
} else {
- PROGRAM_ENTRY.setContextValue(context, value);
+ PROGRAM_ENTRY.setContextValue(context.getMainUI(), value);
}
}
- public static void setCruise(JAXXContext context, Cruise value) {
+ public static void setCruise(TuttiUIContext context, Cruise value) {
if (value == null) {
- CRUISE_ENTRY.removeContextValue(context);
+ CRUISE_ENTRY.removeContextValue(context.getMainUI());
} else {
- CRUISE_ENTRY.setContextValue(context, value);
+ CRUISE_ENTRY.setContextValue(context.getMainUI(), value);
}
}
- public static void setProtocol(JAXXContext context, TuttiProtocol value) {
+ public static void setProtocol(TuttiUIContext context, TuttiProtocol value) {
if (value == null) {
- PROTOCOL_ENTRY.removeContextValue(context);
+ PROTOCOL_ENTRY.removeContextValue(context.getMainUI());
} else {
- PROTOCOL_ENTRY.setContextValue(context, value);
+ PROTOCOL_ENTRY.setContextValue(context.getMainUI(), value);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -94,13 +94,13 @@
* @return the table model handled byt the main table.
* @since 0.2
*/
- protected abstract AbstractTuttiTableModel<R> getTableModel();
+ public abstract AbstractTuttiTableModel<R> getTableModel();
/**
* @return the main table of the ui.
* @since 0.2
*/
- protected abstract JXTable getTable();
+ public abstract JXTable getTable();
/**
* Validates the given row.
Added: trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml (rev 0)
+++ trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,41 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ 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%
+ -->
+<!DOCTYPE aspectj PUBLIC
+ "-//AspectJ//DTD//EN"
+ "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
+<aspectj>
+ <weaver options="-verbose"/>
+ <aspects>
+ <concrete-aspect name="org.nuiton.profiling.NuitonTraceTestAspect"
+ extends="org.nuiton.profiling.NuitonTrace">
+ <pointcut name="executeMethod"
+ expression="
+ execution(* fr.ifremer.tutti.ui.swing.util..*(..))
+ ||execution(* fr.ifremer.tutti.ui.swing.content..*(..))
+ ||execution(* org.nuiton.util.decorator..*(..))
+ ||execution(* jaxx.runtime.swing.editor.bean.BeanComboBox.*(..))
+ "/>
+ </concrete-aspect>
+ </aspects>
+</aspectj>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 09:19:16 UTC (rev 330)
@@ -50,15 +50,20 @@
tutti.action.exportProtocolSpecies.tip=Exporter les espèces du protocole
tutti.action.generate=Générer
tutti.action.generateCampaignName=Générer le nom
+tutti.action.importCasino=Import Casino
+tutti.action.importCasino.tip=Import Casino
tutti.action.importProtocol=Importer
tutti.action.importProtocol.tip=Importer un protocole
tutti.action.importProtocolCaracteristic=Importer les caractéristiques
tutti.action.importProtocolCaracteristic.tip=importer les caractéristiques dans le protocole
tutti.action.importProtocolSpecies=Importer les espèces
tutti.action.importProtocolSpecies.tip=importer les espèces dans le protocole
+tutti.action.importPupitri=Import Pupitri
+tutti.action.importPupitri.tip=Import Pupitri
tutti.action.new=Nouveau
tutti.action.newCruise=Nouveau
tutti.action.newCruise.tip=Créer une nouvelle campagne
+tutti.action.newFishingOperation.tip=Créer une nouvelle opération de pêche
tutti.action.newProgram=Nouveau
tutti.action.newProgram.tip=Créer une nouvelle série de campagne
tutti.action.newProtocol=Nouveau
@@ -87,6 +92,7 @@
tutti.action.saveProtocol.tip=Enregistrer le protocol
tutti.action.selectCruise=Sélectionner une campagne
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
+tutti.action.selectFishingOperation.tip=Chargement d'une opération de pêche
tutti.action.site=Site
tutti.action.site.tip=Accéder au site du projet Tutti
tutti.action.splitSpeciesBatch=Catégoriser le lot
Modified: trunk/tutti-ui-swing/src/main/resources/log4j.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/log4j.properties 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/resources/log4j.properties 2013-02-05 09:19:16 UTC (rev 330)
@@ -38,5 +38,8 @@
# tutti levels
log4j.logger.fr.ifremer=INFO
-log4j.logger.org.nuiton.util=INFO
+log4j.logger.fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler=WARN
+log4j.logger.fr.ifremer.tutti.ui.swing.util.table=WARN
+log4j.logger.org.nuiton.util=WARN
log4j.logger.org.nuiton.util.ApplicationUpdater=DEBUG
+#log4j.logger.jaxx.runtime.swing.editor.bean.BeanComboBox=DEBUG
1
0
r329 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service
by tchemit@users.forge.codelutin.com 05 Feb '13
by tchemit@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: tchemit
Date: 2013-02-05 10:15:28 +0100 (Tue, 05 Feb 2013)
New Revision: 329
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/329
Log:
Improve decorator api
Added:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-05 09:14:56 UTC (rev 328)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-05 09:15:28 UTC (rev 329)
@@ -39,10 +39,8 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
-import org.apache.commons.jxpath.JXPathContext;
import org.nuiton.util.decorator.Decorator;
import org.nuiton.util.decorator.DecoratorProvider;
-import org.nuiton.util.decorator.MultiJXPathDecorator;
import java.io.Serializable;
@@ -110,26 +108,26 @@
@Override
protected void loadDecorators() {
- registerMultiJXPathDecorator(Program.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Cruise.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Zone.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Program.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Cruise.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - ");
+ registerTuttiDecorator(Zone.class, "${label}$s#${name}$s", SEPARATOR, " - ");
// registerMultiJXPathDecorator(Vessel.class, "${name}$s#${internalRegistrationCode}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Country.class, "${label}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " ");
- registerMultiJXPathDecorator(FishingOperationLocation.class, "${label}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
- registerMultiJXPathDecorator(CaracteristicQualitativeValue.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, "${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Country.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " ");
+ registerTuttiDecorator(FishingOperationLocation.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - ");
+// registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
+ registerTuttiDecorator(CaracteristicQualitativeValue.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Species.class, "${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
// registerMultiJXPathDecorator(Species.class, SPECIES_BY_CRUISE_CODE, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, SPECIES_BY_REF_TAX_CODE, "${refTaxCode}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, SPECIES_BY_GENUS, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(SpeciesProtocol.class, "${speciesId}", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Attachment.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(LabelAware.class, "${label}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Species.class, SPECIES_BY_REF_TAX_CODE, "${refTaxCode}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Species.class, SPECIES_BY_GENUS, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(SpeciesProtocol.class, "${speciesId}", SEPARATOR, " - ");
+ registerTuttiDecorator(Attachment.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(LabelAware.class, "${label}$s", SEPARATOR, " - ");
registerDecorator(new Decorator<Float>(Float.class) {
private static final long serialVersionUID = 1L;
@@ -138,13 +136,23 @@
return bean == null ? "" : String.valueOf(bean);
}
});
- registerDecorator(new VesselMultiJXPathDecorator());
+ registerDecorator(new VesselDecorator());
- registerDecorator(SPECIES_BY_CRUISE_CODE, new SpeciesMultiJXPathDecorator());
+ registerDecorator(SPECIES_BY_CRUISE_CODE, new SpeciesDecorator());
+ registerTuttiDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
}
+
+ public void registerTuttiDecorator(Class<?> klass, String expression, String separator, String separatorReplacement) {
+ super.registerDecorator(TuttiDecorator.newDecorator(klass, expression, separator, separatorReplacement));
+ }
+
+ public void registerTuttiDecorator(Class<?> klass, String name, String expression, String separator, String separatorReplacement) {
+ super.registerDecorator(name, TuttiDecorator.newDecorator(klass, expression, separator, separatorReplacement));
+ }
};
}
+
static {
n_("tutti.property.protocol");
n_("tutti.property.label");
@@ -180,57 +188,42 @@
n_("tutti.property.caracteristic");
}
- public static class SpeciesMultiJXPathDecorator extends MultiJXPathDecorator<Species> implements Cloneable {
+ public static class SpeciesDecorator extends TuttiDecorator<Species> implements Cloneable {
private static final long serialVersionUID = 1L;
- public SpeciesMultiJXPathDecorator() throws IllegalArgumentException, NullPointerException {
+ public SpeciesDecorator() throws IllegalArgumentException, NullPointerException {
super(Species.class, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", DecoratorService.SEPARATOR, " - ");
}
@Override
- protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
- Comparable result = super.getTokenValue(jxcontext, token);
+ protected Object onNullValue(Species bean, String token) {
+ Object result = null;
if ("cruiseCode".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.species.cruiseCode");
- }
+ result = _("tutti.propety.no.species.cruiseCode");
}
return result;
}
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
}
- public static class VesselMultiJXPathDecorator extends MultiJXPathDecorator<Vessel> implements Cloneable {
+ public static class VesselDecorator extends TuttiDecorator<Vessel> implements Cloneable {
private static final long serialVersionUID = 1L;
- public VesselMultiJXPathDecorator() throws IllegalArgumentException, NullPointerException {
+ public VesselDecorator() throws IllegalArgumentException, NullPointerException {
super(Vessel.class, "${name}$s#${internalRegistrationCode}$s", DecoratorService.SEPARATOR, " - ");
}
@Override
- protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
- Comparable result = super.getTokenValue(jxcontext, token);
+ protected Object onNullValue(Vessel bean, String token) {
+ Object result = null;
if ("internalRegistrationCode".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.vessel.internalRegistrationCode");
- }
+ result = _("tutti.propety.no.vessel.internalRegistrationCode");
} else if ("name".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.vessel.name");
- }
+ result = _("tutti.propety.no.vessel.name");
}
return result;
}
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
}
+
}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java 2013-02-05 09:15:28 UTC (rev 329)
@@ -0,0 +1,222 @@
+package fr.ifremer.tutti.service;
+
+/*
+ * #%L
+ * Tutti :: Service
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
+import com.google.common.collect.Maps;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.decorator.JXPathDecorator;
+import org.nuiton.util.decorator.MultiJXPathDecorator;
+
+import java.beans.PropertyDescriptor;
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since TODO
+ */
+public class TuttiDecorator<O> extends MultiJXPathDecorator<O> implements Cloneable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(TuttiDecorator.class);
+
+ protected final Map<String, Method> tokenMethods;
+
+ protected final LoadingCache<O, String> cache;
+
+ protected boolean useCache;
+
+ public static <O> TuttiDecorator<O> newDecorator(Class<O> internalClass,
+ String expression,
+ String separator,
+ String separatorReplacement) {
+ return new TuttiDecorator<O>(internalClass, expression, separator, separatorReplacement);
+ }
+
+ protected TuttiDecorator(Class<O> internalClass,
+ String expression,
+ String separator,
+ String separatorReplacement) throws IllegalArgumentException, NullPointerException {
+ super(internalClass,
+ expression,
+ separator,
+ separatorReplacement);
+ tokenMethods = Maps.newHashMap();
+ PropertyDescriptor[] descriptors =
+ PropertyUtils.getPropertyDescriptors(type);
+
+ for (String token : getTokens()) {
+ Method m = null;
+ for (PropertyDescriptor propertyDescriptor : descriptors) {
+ if (propertyDescriptor.getName().equals(token)) {
+ m = propertyDescriptor.getReadMethod();
+ break;
+ }
+ }
+ if (m == null) {
+ throw new IllegalArgumentException("could not find the property " + token + " in " + type);
+ }
+ tokenMethods.put(token, m);
+ }
+
+ int i = 0;
+ for (Context<O> OContext : contexts) {
+ OContext.setComparator(new TuttiDecoratorComparator<O>(getProperty(i++)));
+ }
+
+ this.cache = CacheBuilder.newBuilder().build(new CacheLoader<O, String>() {
+ @Override
+ public String load(O key) throws Exception {
+ String result;
+ if (key == null) {
+ result = "";
+ } else {
+ result = TuttiDecorator.this.toString(key);
+ }
+ return result;
+ }
+ });
+ }
+
+ public boolean isUseCache() {
+ return useCache;
+ }
+
+ public void setUseCache(boolean useCache) {
+ this.useCache = useCache;
+ cache.invalidateAll();
+ }
+
+ @Override
+ public String toString(Object bean) {
+ O bean1 = (O) bean;
+ String result = null;
+
+ if (useCache) {
+
+ // try first in cache
+ try {
+ result = cache.get(bean1);
+ } catch (ExecutionException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not obtain from cache", e);
+ }
+ }
+ }
+ if (result == null) {
+
+ if (bean != null) {
+ Object[] args = new Object[nbToken];
+
+ String[] tokens = getTokens();
+ for (int i = 0; i < nbToken; i++) {
+ String token = tokens[i];
+ Object value = getValue(bean1, token);
+ if (value == null) {
+ value = onNullValue(bean1, token);
+ }
+ args[i] = value;
+ }
+
+ try {
+ result = String.format(getExpression(), args);
+ } catch (Exception eee) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not format " + getExpression() + "" +
+ " with args : " + Arrays.toString(args), eee);
+ }
+ result = "";
+ }
+
+ if (useCache) {
+ cache.put(bean1, result);
+ }
+ }
+ }
+
+ return result;
+ }
+
+ protected Object getValue(O bean, String token) {
+ Method method = tokenMethods.get(token);
+ Preconditions.checkNotNull(method,
+ "Could not find method for token " + token);
+ Object result;
+ try {
+ result = method.invoke(bean);
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not obtain token [" + token + "] value", e);
+ }
+ result = "";
+ }
+ return result;
+ }
+
+ protected Object onNullValue(O bean, String token) {
+ return null;
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ public static class TuttiDecoratorComparator<O> extends JXPathComparator<O> implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String expression;
+
+ public TuttiDecoratorComparator(String expression) {
+ super(expression);
+ this.expression = expression;
+ }
+
+ @Override
+ public void init(JXPathDecorator<O> decorator, List<O> datas) {
+ clear();
+ TuttiDecorator<O> tuttDecorator = (TuttiDecorator<O>) decorator;
+ for (O data : datas) {
+ Comparable key = (Comparable) tuttDecorator.getValue(data, expression);
+ valueCache.put(data, key);
+ }
+ }
+ }
+}
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r328 - trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities
by tchemit@users.forge.codelutin.com 05 Feb '13
by tchemit@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: tchemit
Date: 2013-02-05 10:14:56 +0100 (Tue, 05 Feb 2013)
New Revision: 328
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/328
Log:
improve equals
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java 2013-02-04 09:12:01 UTC (rev 327)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java 2013-02-05 09:14:56 UTC (rev 328)
@@ -77,7 +77,7 @@
AbstractTuttiEntity that = (AbstractTuttiEntity) o;
- return !(id != null ? !id.equals(that.id) : that.id != null);
+ return ObjectUtils.equals(id, that.id);
}
1
0
r327 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 10:12:01 +0100 (Mon, 04 Feb 2013)
New Revision: 327
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/327
Log:
reuse existing species in species import (protoclo)
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-02-04 09:00:18 UTC (rev 326)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-02-04 09:12:01 UTC (rev 327)
@@ -248,7 +248,12 @@
Species species = bean.getSpecies();
String id = species.getId();
- SpeciesProtocol sp = new SpeciesProtocol();
+ SpeciesProtocol sp = ids.get(id);
+ if (sp==null) {
+
+ // create a new one
+ sp = new SpeciesProtocol();
+ }
binder.copy(bean, sp);
sp.setId(id);
1
0
r326 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing
by kmorin@users.forge.codelutin.com 04 Feb '13
by kmorin@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: kmorin
Date: 2013-02-04 10:00:18 +0100 (Mon, 04 Feb 2013)
New Revision: 326
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/326
Log:
debug first data deletion in the combo box
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-02-04 08:39:17 UTC (rev 325)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-02-04 09:00:18 UTC (rev 326)
@@ -187,7 +187,7 @@
int rowIndex = tableModel.getRowCount() - 1;
tableModel.fireTableRowsInserted(rowIndex, rowIndex);
- keyCombo.removeItem(selectedItem);
+ keyCombo.getData().remove(selectedItem);
selectFirstInCombo(keyCombo);
M model = getModel();
1
0