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
October 2013
- 5 participants
- 76 discussions
r1278 - in trunk: . tutti-persistence tutti-service tutti-ui-swing
by maven-release@users.forge.codelutin.com 07 Oct '13
by maven-release@users.forge.codelutin.com 07 Oct '13
07 Oct '13
Author: maven-release
Date: 2013-10-07 11:40:45 +0200 (Mon, 07 Oct 2013)
New Revision: 1278
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1278
Log:
[maven-release-plugin] prepare release tutti-2.7
Modified:
trunk/pom.xml
trunk/tutti-persistence/pom.xml
trunk/tutti-service/pom.xml
trunk/tutti-ui-swing/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-10-07 09:10:58 UTC (rev 1277)
+++ trunk/pom.xml 2013-10-07 09:40:45 UTC (rev 1278)
@@ -32,7 +32,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>2.7-SNAPSHOT</version>
+ <version>2.7</version>
<packaging>pom</packaging>
<name>Tutti</name>
@@ -86,12 +86,12 @@
</modules>
<scm>
- <url>http://svn.forge.codelutin.com/svn/tutti/trunk</url>
+ <url>http://svn.forge.codelutin.com/svn/tutti/tags/tutti-2.7</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-2.7
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-2.7
</developerConnection>
</scm>
<distributionManagement>
Modified: trunk/tutti-persistence/pom.xml
===================================================================
--- trunk/tutti-persistence/pom.xml 2013-10-07 09:10:58 UTC (rev 1277)
+++ trunk/tutti-persistence/pom.xml 2013-10-07 09:40:45 UTC (rev 1278)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>2.7-SNAPSHOT</version>
+ <version>2.7</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-10-07 09:10:58 UTC (rev 1277)
+++ trunk/tutti-service/pom.xml 2013-10-07 09:40:45 UTC (rev 1278)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>2.7-SNAPSHOT</version>
+ <version>2.7</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-10-07 09:10:58 UTC (rev 1277)
+++ trunk/tutti-ui-swing/pom.xml 2013-10-07 09:40:45 UTC (rev 1278)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>2.7-SNAPSHOT</version>
+ <version>2.7</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/1063/changes>
Changes:
[Tony Chemit] fixes #3418: [TECH] updates JAXX to 2.5.28
[Tony Chemit] refs #3331: [ERGO] - Lisibilité des tableaux (captures, protocole)
------------------------------------------
[...truncated 303 lines...]
2013-10-07 11:11:48,699 1620 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@bab7536
2013-10-07 11:11:48,700 1621 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@207745fd
2013-10-07 11:11:48,701 1622 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@8ae4d15
2013-10-07 11:11:48,702 1623 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@44e03e45
2013-10-07 11:11:48,718 1639 [main] INFO org.nuiton.config.ApplicationConfig - Loading configuration file (classpath) : <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/test-c…>
2013-10-07 11:11:48,720 1641 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - Could not find db at <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/test/dbCG…,> test [class fr.ifremer.tutti.service.catches.WeightComputingServiceTest] is skipped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.043 sec - in fr.ifremer.tutti.service.catches.WeightComputingServiceTest
Running fr.ifremer.tutti.service.catches.multipost.MultiPostExportServiceTest
2013-10-07 11:11:48,725 1646 [main] INFO fr.ifremer.tutti.persistence.test.DatabaseResource - Prepare test class fr.ifremer.tutti.service.catches.multipost.MultiPostExportServiceTest
2013-10-07 11:11:48,731 1652 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@7b0da3ae
2013-10-07 11:11:48,731 1652 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@16e574ec
2013-10-07 11:11:48,732 1653 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@325f3db2
2013-10-07 11:11:48,732 1653 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@acb8af4
2013-10-07 11:11:48,732 1653 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@4478de9f
2013-10-07 11:11:48,733 1654 [main] INFO org.nuiton.config.ApplicationConfig - Loading configuration file (classpath) : <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/test-c…>
2013-10-07 11:11:48,733 1654 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - Could not find db at <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/test/dbCG…,> test [class fr.ifremer.tutti.service.catches.multipost.MultiPostExportServiceTest] is skipped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.011 sec - in fr.ifremer.tutti.service.catches.multipost.MultiPostExportServiceTest
Running fr.ifremer.tutti.service.UpdateSchemaTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0 sec - in fr.ifremer.tutti.service.UpdateSchemaTest
Running fr.ifremer.tutti.service.sumatra.CatchesSumatraExportServiceTest
2013-10-07 11:11:48,735 1656 [main] INFO fr.ifremer.tutti.persistence.test.DatabaseResource - Prepare test class fr.ifremer.tutti.service.sumatra.CatchesSumatraExportServiceTest
2013-10-07 11:11:48,740 1661 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@6021df29
2013-10-07 11:11:48,740 1661 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@6d980f5d
2013-10-07 11:11:48,740 1661 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@1a18dae1
2013-10-07 11:11:48,740 1661 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@55c9f729
2013-10-07 11:11:48,741 1662 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@3963a1b8
2013-10-07 11:11:48,742 1663 [main] INFO org.nuiton.config.ApplicationConfig - Loading configuration file (classpath) : <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/test-c…>
2013-10-07 11:11:48,742 1663 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - Could not find db at <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/test/dbEx…,> test [class fr.ifremer.tutti.service.sumatra.CatchesSumatraExportServiceTest] is skipped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.004 sec - in fr.ifremer.tutti.service.sumatra.CatchesSumatraExportServiceTest
Running fr.ifremer.tutti.service.pupitri.PupitriImportExportServiceTest
2013-10-07 11:11:48,743 1664 [main] INFO fr.ifremer.tutti.persistence.test.DatabaseResource - Prepare test class fr.ifremer.tutti.service.pupitri.PupitriImportExportServiceTest
2013-10-07 11:11:48,748 1669 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@4be0ae98
2013-10-07 11:11:48,749 1670 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@4ebf837a
2013-10-07 11:11:48,749 1670 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@7f50e6f9
2013-10-07 11:11:48,749 1670 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@186c26bc
2013-10-07 11:11:48,749 1670 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@208b4e03
2013-10-07 11:11:48,749 1670 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - No configuration file found in classpath at tutti-test-write-dbExport.properties
2013-10-07 11:11:48,750 1671 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - Could not find db at src/test/dbExport, test [class fr.ifremer.tutti.service.pupitri.PupitriImportExportServiceTest] is skipped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.008 sec - in fr.ifremer.tutti.service.pupitri.PupitriImportExportServiceTest
Running fr.ifremer.tutti.service.ValidationServiceTest
2013-10-07 11:11:48,817 1738 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@39ad96d5
2013-10-07 11:11:48,818 1739 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@6353ebbd
2013-10-07 11:11:48,818 1739 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@1a99f83d
2013-10-07 11:11:48,818 1739 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@72787a6f
2013-10-07 11:11:48,818 1739 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@7639fabd
2013-10-07 11:11:48,825 1746 [main] INFO org.nuiton.validator.NuitonValidatorFactory - Set the default provider name to xwork2
2013-10-07 11:11:49,077 1998 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@30df3bd5
2013-10-07 11:11:49,078 1999 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@339d6193
2013-10-07 11:11:49,078 1999 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@2171145e
2013-10-07 11:11:49,078 1999 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@6f03879
2013-10-07 11:11:49,078 1999 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@b4e49bb
2013-10-07 11:11:49,189 2110 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@1ae9bae7
2013-10-07 11:11:49,189 2110 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@29298c7d
2013-10-07 11:11:49,189 2110 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@66c677a7
2013-10-07 11:11:49,189 2110 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@6fd9a9a7
2013-10-07 11:11:49,189 2110 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@4861c207
Tests run: 4, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.629 sec - in fr.ifremer.tutti.service.ValidationServiceTest
Running fr.ifremer.tutti.service.DecoratorServiceTest
2013-10-07 11:11:49,387 2308 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@200f478e
2013-10-07 11:11:49,387 2308 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@6fc2862b
2013-10-07 11:11:49,387 2308 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@4bf6aa5f
2013-10-07 11:11:49,387 2308 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@2f2b69ef
2013-10-07 11:11:49,387 2308 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@24769ece
2013-10-07 11:11:49,424 2345 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@2b6773ab
2013-10-07 11:11:49,424 2345 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@3c70cf37
2013-10-07 11:11:49,424 2345 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@123442e1
2013-10-07 11:11:49,425 2346 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@2512cb1d
2013-10-07 11:11:49,425 2346 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@3b23f2d9
2013-10-07 11:11:49,437 2358 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@626ce3d4
2013-10-07 11:11:49,437 2358 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@3e4a762a
2013-10-07 11:11:49,437 2358 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@a93df59
2013-10-07 11:11:49,437 2358 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@722c517b
2013-10-07 11:11:49,438 2359 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@4381c7e9
2013-10-07 11:11:49,445 2366 [main] WARN org.nuiton.i18n.I18n -
I18n was not initialized! will init it with default initializer and default locale, it might not translate anything for you...
Please use the method I18n.init(I18nInitializer, Locale) before any calling to a translation...
2013-10-07 11:11:49,534 2455 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@7a29a59a, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-validator/3.0-alpha-1/nuiton-validator-3.0-alpha-1.jar!/i18n/nuiton-validator, size:1>
<I18nBundleEntry@68854108, locale:en_GB, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-validator/3.0-alpha-1/nuiton-validator-3.0-alpha-1.jar!/i18n/nuiton-validator_en_GB.properties>
2013-10-07 11:11:49,534 2455 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@7a29a59a, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-validator/3.0-alpha-1/nuiton-validator-3.0-alpha-1.jar!/i18n/nuiton-validator, size:2>
<I18nBundleEntry@cf94429a, locale:es_ES, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-validator/3.0-alpha-1/nuiton-validator-3.0-alpha-1.jar!/i18n/nuiton-validator_es_ES.properties>
2013-10-07 11:11:49,534 2455 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@7a29a59a, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-validator/3.0-alpha-1/nuiton-validator-3.0-alpha-1.jar!/i18n/nuiton-validator, size:3>
<I18nBundleEntry@3e1c175a, locale:fr_FR, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-validator/3.0-alpha-1/nuiton-validator-3.0-alpha-1.jar!/i18n/nuiton-validator_fr_FR.properties>
2013-10-07 11:11:49,534 2455 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@4437601e, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-csv/3.0-alpha-1/nuiton-csv-3.0-alpha-1.jar!/i18n/nuiton-csv, size:1>
<I18nBundleEntry@309c94a6, locale:es_ES, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-csv/3.0-alpha-1/nuiton-csv-3.0-alpha-1.jar!/i18n/nuiton-csv_es_ES.properties>
2013-10-07 11:11:49,534 2455 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@4437601e, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-csv/3.0-alpha-1/nuiton-csv-3.0-alpha-1.jar!/i18n/nuiton-csv, size:2>
<I18nBundleEntry@c98d9314, locale:en_GB, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-csv/3.0-alpha-1/nuiton-csv-3.0-alpha-1.jar!/i18n/nuiton-csv_en_GB.properties>
2013-10-07 11:11:49,535 2456 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@4437601e, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-csv/3.0-alpha-1/nuiton-csv-3.0-alpha-1.jar!/i18n/nuiton-csv, size:3>
<I18nBundleEntry@9f246966, locale:fr_FR, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-csv/3.0-alpha-1/nuiton-csv-3.0-alpha-1.jar!/i18n/nuiton-csv_fr_FR.properties>
2013-10-07 11:11:49,535 2456 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@f87748f, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-utils/2.7.1/nuiton-utils-2.7.1.jar!/i18n/nuiton-utils, size:1>
<I18nBundleEntry@3db946bb, locale:es_ES, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-utils/2.7.1/nuiton-utils-2.7.1.jar!/i18n/nuiton-utils_es_ES.properties>
2013-10-07 11:11:49,535 2456 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@f87748f, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-utils/2.7.1/nuiton-utils-2.7.1.jar!/i18n/nuiton-utils, size:2>
<I18nBundleEntry@ac411b7b, locale:fr_FR, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-utils/2.7.1/nuiton-utils-2.7.1.jar!/i18n/nuiton-utils_fr_FR.properties>
2013-10-07 11:11:49,535 2456 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@f87748f, bundlePrefix:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-utils/2.7.1/nuiton-utils-2.7.1.jar!/i18n/nuiton-utils, size:3>
<I18nBundleEntry@d6aa4529, locale:en_GB, scope FULL, path:jar:file:/var/local/maven/data/repository/org/nuiton/nuiton-utils/2.7.1/nuiton-utils-2.7.1.jar!/i18n/nuiton-utils_en_GB.properties>
2013-10-07 11:11:49,535 2456 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@5f56040, bundlePrefix:jar:<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/tu…,> size:1>
<I18nBundleEntry@94280957, locale:en_GB, scope FULL, path:jar:<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/tu…>>
2013-10-07 11:11:49,535 2456 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@5f56040, bundlePrefix:jar:<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/tu…,> size:2>
<I18nBundleEntry@69bedfa9, locale:fr_FR, scope FULL, path:jar:<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/tu…>>
2013-10-07 11:11:49,535 2456 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@30820cce, bundlePrefix:<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/classe…,> size:1>
<I18nBundleEntry@56537c39, locale:fr_FR, scope FULL, path:<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/classe…>>
2013-10-07 11:11:49,535 2456 [main] INFO org.nuiton.i18n.bundle.I18nBundle - <I18nBundle@30820cce, bundlePrefix:<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/classe…,> size:2>
<I18nBundleEntry@80bca5e7, locale:en_GB, scope FULL, path:<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/classe…>>
2013-10-07 11:11:49,536 2457 [main] INFO org.nuiton.i18n.init.I18nInitializer - 5 bundle(s) found, in 13 file(s).
2013-10-07 11:11:49,536 2457 [main] INFO org.nuiton.i18n.I18nStore - 5 bundle(s) found, [13 file(s)].
2013-10-07 11:11:49,537 2458 [main] INFO org.nuiton.i18n.I18nLanguage - Encoding UTF-8 will be used to load files
2013-10-07 11:11:49,539 2460 [main] INFO org.nuiton.i18n.I18nStore - I18nLanguage <locale: en_GB, nbStences:348>, nbEntries: 5, nbSentences: 348.
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.159 sec - in fr.ifremer.tutti.service.DecoratorServiceTest
Running fr.ifremer.tutti.service.protocol.ProtocolImportExportServiceTest
2013-10-07 11:11:49,542 2463 [main] INFO fr.ifremer.tutti.persistence.test.DatabaseResource - Prepare test class fr.ifremer.tutti.service.protocol.ProtocolImportExportServiceTest
2013-10-07 11:11:49,544 2465 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@52e80a28
2013-10-07 11:11:49,545 2466 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@2ec07b39
2013-10-07 11:11:49,545 2466 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@5ed9f329
2013-10-07 11:11:49,545 2466 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@36eb3965
2013-10-07 11:11:49,545 2466 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@28a5bc1e
2013-10-07 11:11:49,545 2466 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - No configuration file found in classpath at tutti-test-write-dbCGFS.properties
2013-10-07 11:11:49,546 2467 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - Could not find db at src/test/dbCGFS, test [class fr.ifremer.tutti.service.protocol.ProtocolImportExportServiceTest] is skipped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.001 sec - in fr.ifremer.tutti.service.protocol.ProtocolImportExportServiceTest
Running fr.ifremer.tutti.service.referential.ReferentialImportExportServiceTest
2013-10-07 11:11:49,548 2469 [main] INFO fr.ifremer.tutti.persistence.test.DatabaseResource - Prepare test class fr.ifremer.tutti.service.referential.ReferentialImportExportServiceTest
2013-10-07 11:11:49,550 2471 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@1ade25df
2013-10-07 11:11:49,550 2471 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@4e761850
2013-10-07 11:11:49,550 2471 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@2b36546e
2013-10-07 11:11:49,550 2471 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@7be117eb
2013-10-07 11:11:49,550 2471 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@5476bf3c
2013-10-07 11:11:49,551 2472 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - No configuration file found in classpath at tutti-test-write-dbCGFS.properties
2013-10-07 11:11:49,551 2472 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - Could not find db at src/test/dbCGFS, test [class fr.ifremer.tutti.service.referential.ReferentialImportExportServiceTest] is skipped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.004 sec - in fr.ifremer.tutti.service.referential.ReferentialImportExportServiceTest
Running fr.ifremer.tutti.service.export.TuttiExportServiceTest
2013-10-07 11:11:49,555 2476 [main] INFO fr.ifremer.tutti.persistence.test.DatabaseResource - Prepare test class fr.ifremer.tutti.service.export.TuttiExportServiceTest
2013-10-07 11:11:49,557 2478 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@a440543
2013-10-07 11:11:49,558 2479 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@51d838d9
2013-10-07 11:11:49,558 2479 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@4a7c5889
2013-10-07 11:11:49,558 2479 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@2998b093
2013-10-07 11:11:49,558 2479 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@5193a581
2013-10-07 11:11:49,558 2479 [main] INFO org.nuiton.config.ApplicationConfig - Loading configuration file (classpath) : <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/test-c…>
2013-10-07 11:11:49,559 2480 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - Could not find db at <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/test/dbCG…,> test [class fr.ifremer.tutti.service.export.TuttiExportServiceTest] is skipped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.007 sec - in fr.ifremer.tutti.service.export.TuttiExportServiceTest
Running fr.ifremer.tutti.service.export.TuttiExportService2Test
2013-10-07 11:11:49,559 2480 [main] INFO fr.ifremer.tutti.persistence.test.DatabaseResource - Prepare test class fr.ifremer.tutti.service.export.TuttiExportService2Test
2013-10-07 11:11:49,562 2483 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter fr.ifremer.tutti.persistence.config.SampleCategoryModelConverter@52bd157
2013-10-07 11:11:49,562 2483 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URLConverter@1be42f61
2013-10-07 11:11:49,562 2483 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.URIConverter@21e29795
2013-10-07 11:11:49,562 2483 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.VersionConverter@234dc894
2013-10-07 11:11:49,562 2483 [main] INFO org.nuiton.util.converter.ConverterUtil - register converter org.nuiton.util.converter.LocaleConverter@2c2b74c4
2013-10-07 11:11:49,563 2484 [main] INFO org.nuiton.config.ApplicationConfig - Loading configuration file (classpath) : <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/test-c…>
2013-10-07 11:11:49,563 2484 [main] WARN fr.ifremer.tutti.persistence.test.DatabaseResource - Could not find db at <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/src/test/dbEx…,> test [class fr.ifremer.tutti.service.export.TuttiExportService2Test] is skipped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.003 sec - in fr.ifremer.tutti.service.export.TuttiExportService2Test
Results :
Tests run: 20, Failures: 0, Errors: 0, Skipped: 10
[JENKINS] Recording test results
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tutti-service ---
[INFO] Building jar: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…>
[INFO]
[INFO] --- maven-site-plugin:3.3:attach-descriptor (attach-descriptor) @ tutti-service ---
[INFO]
[INFO] --- maven-install-plugin:2.5:install (default-install) @ tutti-service ---
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/2.7-SNAPSHOT/tutti-service-2.7-SNAPSHOT.jar
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/2.7-SNAPSHOT/tutti-service-2.7-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 2.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
[WARNING] The POM for org.nuiton.jaxx:jaxx-maven-plugin:jar:2.5.28 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [6.402s]
[INFO] Tutti :: Persistence .............................. SUCCESS [12.948s]
[INFO] Tutti :: Service .................................. SUCCESS [5.635s]
[INFO] Tutti :: UI ....................................... FAILURE [0.600s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.599s
[INFO] Finished at: Mon Oct 07 11:11:50 CEST 2013
[INFO] Final Memory: 39M/213M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-10-07_11-11-19/archive/fr.ifremer.tutti/tutti-service/2.7-SNAPSHOT/tutti-service-2.7-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-10-07_11-11-19/archive/fr.ifremer.tutti/tutti-service/2.7-SNAPSHOT/tutti-service-2.7-SNAPSHOT.jar
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-10-07_11-11-19/archive/fr.ifremer.tutti/tutti-ui-swing/2.7-SNAPSHOT/tutti-ui-swing-2.7-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-10-07_11-11-19/archive/fr.ifremer/tutti/2.7-SNAPSHOT/tutti-2.7-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-2.7-SNAPSHOT-s…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-10-07_11-11-19/archive/fr.ifremer/tutti/2.7-SNAPSHOT/tutti-2.7-SNAPSHOT-site_fr.xml
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-10-07_11-11-19/archive/fr.ifremer.tutti/tutti-persistence/2.7-SNAPSHOT/tutti-persistence-2.7-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/tu…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-10-07_11-11-19/archive/fr.ifremer.tutti/tutti-persistence/2.7-SNAPSHOT/tutti-persistence-2.7-SNAPSHOT.jar
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Plugin org.nuiton.jaxx:jaxx-maven-plugin:2.5.28 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.nuiton.jaxx:jaxx-maven-plugin:jar:2.5.28
cause : Failed to read artifact descriptor for org.nuiton.jaxx:jaxx-maven-plugin:jar:2.5.28
Stack trace :
org.apache.maven.plugin.PluginResolutionException: Plugin org.nuiton.jaxx:jaxx-maven-plugin:2.5.28 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.nuiton.jaxx:jaxx-maven-plugin:jar:2.5.28
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:129)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:142)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getMojoDescriptor(DefaultMavenPluginManager.java:261)
at org.apache.maven.plugin.DefaultBuildPluginManager.getMojoDescriptor(DefaultBuildPluginManager.java:185)
at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateLifecycleMappings(DefaultLifecycleExecutionPlanCalculator.java:280)
at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateMojoExecutions(DefaultLifecycleExecutionPlanCalculator.java:193)
at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:112)
at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:129)
at org.apache.maven.lifecycle.internal.BuilderCommon.resolveBuildPlan(BuilderCommon.java:92)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:174)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:100)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:66)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.sonatype.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.nuiton.jaxx:jaxx-maven-plugin:jar:2.5.28
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:296)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:186)
at org.sonatype.aether.impl.internal.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:279)
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:115)
... 32 more
Caused by: org.sonatype.aether.resolution.ArtifactResolutionException: Could not find artifact org.nuiton.jaxx:jaxx-maven-plugin:pom:2.5.28 in central (http://nexus.nuiton.org/nexus/content/groups/public)
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:538)
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216)
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:281)
... 35 more
Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact org.nuiton.jaxx:jaxx-maven-plugin:pom:2.5.28 in central (http://nexus.nuiton.org/nexus/content/groups/public)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:947)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:941)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:669)
at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60)
... 3 more
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com chemit(a)codelutin.com
channel stopped
1
1
07 Oct '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/1063…>
Changes:
[Tony Chemit] refs #3331: [ERGO] - Lisibilité des tableaux (captures, protocole)
------------------------------------------
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 2.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
[WARNING] The POM for org.nuiton.jaxx:jaxx-maven-plugin:jar:2.5.28 is missing, no dependency information available
1
1
Author: tchemit
Date: 2013-10-07 11:10:58 +0200 (Mon, 07 Oct 2013)
New Revision: 1277
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1277
Log:
fixes #3418: [TECH] updates JAXX to 2.5.28
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-10-07 09:06:38 UTC (rev 1276)
+++ trunk/pom.xml 2013-10-07 09:10:58 UTC (rev 1277)
@@ -131,7 +131,7 @@
<eugenePluginVersion>2.7.2</eugenePluginVersion>
<hibernateVersion>3.6.10.Final</hibernateVersion>
- <jaxxVersion>2.5.28-SNAPSHOT</jaxxVersion>
+ <jaxxVersion>2.5.28</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.15.1</xworkVersion>
1
0
r1276 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/operation/catches/benthos/frequency content/operation/catches/species/frequency util/attachment util/comment
by tchemit@users.forge.codelutin.com 07 Oct '13
by tchemit@users.forge.codelutin.com 07 Oct '13
07 Oct '13
Author: tchemit
Date: 2013-10-07 11:06:38 +0200 (Mon, 07 Oct 2013)
New Revision: 1276
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1276
Log:
refs #3331: [ERGO] - Lisibilit?\195?\169 des tableaux (captures, protocole)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/comment/CommentCellRenderer.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyCellComponent.java 2013-10-04 12:42:44 UTC (rev 1275)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyCellComponent.java 2013-10-07 09:06:38 UTC (rev 1276)
@@ -39,12 +39,14 @@
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
+import javax.swing.UIManager;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import java.awt.Color;
import java.awt.Component;
+import java.awt.Font;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
@@ -67,6 +69,10 @@
private static final Log log =
LogFactory.getLog(BenthosFrequencyCellComponent.class);
+ private Font defaulfFont;
+
+ private Font selectedFont;
+
public BenthosFrequencyCellComponent(Color computedDataColor) {
setHorizontalAlignment(CENTER);
setIcon(SwingUtil.createActionIcon("show-frequency"));
@@ -93,6 +99,33 @@
setToolTipText(text);
}
+ @Override
+ public Component getTableCellRendererComponent(JTable table,
+ Object value,
+ boolean isSelected,
+ boolean hasFocus,
+ int row,
+ int column) {
+
+ if (defaulfFont == null) {
+ defaulfFont = UIManager.getFont("Table.font");
+ selectedFont = defaulfFont.deriveFont(Font.BOLD);
+ }
+
+ Component result = super.getTableCellRendererComponent(table,
+ value,
+ isSelected,
+ hasFocus,
+ row,
+ column);
+ if (isSelected) {
+ result.setFont(selectedFont);
+ } else {
+ result.setFont(defaulfFont);
+ }
+ return result;
+ }
+
public static TableCellRenderer newRender(Color computedDataColor) {
return new FrequencyCellRenderer(computedDataColor);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java 2013-10-04 12:42:44 UTC (rev 1275)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java 2013-10-07 09:06:38 UTC (rev 1276)
@@ -39,12 +39,14 @@
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
+import javax.swing.UIManager;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import java.awt.Color;
import java.awt.Component;
+import java.awt.Font;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
@@ -67,6 +69,10 @@
private static final Log log =
LogFactory.getLog(SpeciesFrequencyCellComponent.class);
+ private Font defaulfFont;
+
+ private Font selectedFont;
+
public SpeciesFrequencyCellComponent(Color computedDataColor) {
setHorizontalAlignment(CENTER);
setIcon(SwingUtil.createActionIcon("show-frequency"));
@@ -93,6 +99,33 @@
setToolTipText(text);
}
+ @Override
+ public Component getTableCellRendererComponent(JTable table,
+ Object value,
+ boolean isSelected,
+ boolean hasFocus,
+ int row,
+ int column) {
+
+ if (defaulfFont == null) {
+ defaulfFont = UIManager.getFont("Table.font");
+ selectedFont = defaulfFont.deriveFont(Font.BOLD);
+ }
+
+ Component result = super.getTableCellRendererComponent(table,
+ value,
+ isSelected,
+ hasFocus,
+ row,
+ column);
+ if (isSelected) {
+ result.setFont(selectedFont);
+ } else {
+ result.setFont(defaulfFont);
+ }
+ return result;
+ }
+
public static TableCellRenderer newRender(Color computedDataColor) {
return new FrequencyCellRenderer(computedDataColor);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java 2013-10-04 12:42:44 UTC (rev 1275)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java 2013-10-07 09:06:38 UTC (rev 1276)
@@ -31,7 +31,9 @@
import javax.swing.JComponent;
import javax.swing.JTable;
+import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;
+import java.awt.Font;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -54,6 +56,10 @@
private final Decorator<Attachment> decorator;
+ private Font defaulfFont;
+
+ private Font selectedFont;
+
public static AttachmentCellRenderer newRender(Decorator<Attachment> decorator) {
return new AttachmentCellRenderer(decorator);
}
@@ -78,6 +84,11 @@
int row,
int column) {
+ if (defaulfFont == null) {
+ defaulfFont = UIManager.getFont("Table.font");
+ selectedFont = defaulfFont.deriveFont(Font.BOLD);
+ }
+
List<Attachment> attachments = (List<Attachment>) value;
String toolTipTextValue;
@@ -105,6 +116,12 @@
setToolTipText(toolTipTextValue);
setBackground(null);
+ if (isSelected) {
+ setFont(selectedFont);
+ } else {
+ setFont(defaulfFont);
+ }
+
return this;
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/comment/CommentCellRenderer.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/comment/CommentCellRenderer.java 2013-10-04 12:42:44 UTC (rev 1275)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/comment/CommentCellRenderer.java 2013-10-07 09:06:38 UTC (rev 1276)
@@ -29,7 +29,9 @@
import javax.swing.JComponent;
import javax.swing.JTable;
+import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;
+import java.awt.Font;
import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
@@ -48,6 +50,11 @@
private final String noneText;
+ protected Font defaulfFont;
+
+ protected Font selectedFont;
+
+
public static CommentCellRenderer newRender() {
return new CommentCellRenderer();
}
@@ -93,6 +100,17 @@
setToolTipText(toolTipTextValue);
setBackground(null);
+ if (defaulfFont == null) {
+ defaulfFont = UIManager.getFont("Table.font");
+ selectedFont = defaulfFont.deriveFont(Font.BOLD);
+ }
+
+ if (isSelected) {
+ setFont(selectedFont);
+ } else {
+ setFont(defaulfFont);
+ }
+
return this;
}
}
1
0
04 Oct '13
Author: tchemit
Date: 2013-10-04 14:42:44 +0200 (Fri, 04 Oct 2013)
New Revision: 1275
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1275
Log:
fixes #3326: [ERGO] Alignement des cellules contenant les chiffres
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/service/
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/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.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/benthos/create/CreateBenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.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/create/CreateSpeciesBatchUIHandler.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/SplitSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
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-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -63,8 +63,6 @@
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
-import java.awt.GridBagConstraints;
-import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
@@ -420,12 +418,14 @@
ui.getGearUseFeatureTabContent().getModel();
gearUseFeatureModel.setAvailableCaracteristics(getDataContext().getCaracteristics());
setCustomTab(1, gearUseFeatureModel);
+ listenModelModifiy(gearUseFeatureModel);
//init vessel use features
VesselUseFeatureTabUIModel vesselUseFeatureModel =
ui.getVesselUseFeatureTabContent().getModel();
vesselUseFeatureModel.setAvailableCaracteristics(getDataContext().getCaracteristics());
+ listenModelModifiy(vesselUseFeatureModel);
setCustomTab(2, vesselUseFeatureModel);
// listen when id becones empty or not toupdate cancel action and button
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-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-10-04 12:42:44 UTC (rev 1275)
@@ -343,7 +343,6 @@
_help: {"tutti.editCatchBatch.action.exportFishingOperationReportForSumatra.help"};
}
-
#saveButton {
actionIcon: save;
text: "tutti.editCatchBatch.action.saveCatchBatch";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -33,7 +33,6 @@
import org.nuiton.decorator.Decorator;
import javax.swing.AbstractCellEditor;
-import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
@@ -63,7 +62,9 @@
TableCellRenderer renderer,
Decorator<C> decorator,
Color computedDataColor) {
- return new SampleCategoryRenderer<C>(renderer, decorator, computedDataColor);
+ return new SampleCategoryRenderer<C>(renderer,
+ decorator,
+ computedDataColor);
}
public static <C extends Serializable> TableCellEditor newEditor(Decorator<C> decorator,
@@ -224,12 +225,26 @@
protected final Color computedWeightColor;
+ JPanel editor;
+
+ JLabel editorLabel;
+
+ JLabel editorValue;
+
public SampleCategoryRenderer(TableCellRenderer delegate,
Decorator<C> categoryDecorator,
Color computedWeightColor) {
this.delegate = delegate;
this.categoryDecorator = categoryDecorator;
this.computedWeightColor = computedWeightColor;
+
+ editor = new JPanel();
+ editor.setOpaque(true);
+ editorLabel = new JLabel();
+ editorValue = new JLabel();
+ editor.setLayout(new BorderLayout());
+ editor.add(editorLabel, BorderLayout.CENTER);
+ editor.add(editorValue, BorderLayout.EAST);
}
@Override
@@ -242,20 +257,63 @@
SampleCategory<C> sampleCategory = (SampleCategory<C>) value;
+ String prefixText = getPrefixText(sampleCategory);
+ editorLabel.setText(prefixText);
+
+ String valueText = getValueText(sampleCategory);
+
+ String valueTextHtml = valueText;
+
+ if (isSelected) {
+ valueTextHtml = String.format("<strong>%s</strong>", valueTextHtml);
+ editorLabel.setFont(table.getFont().deriveFont(Font.BOLD));
+ } else {
+ editorLabel.setFont(table.getFont());
+ }
+ valueTextHtml = String.format("<html>%s</html>", valueTextHtml);
+
+ editorValue.setText(valueTextHtml);
+
+ String tip = null;
+
+ if (prefixText != null) {
+ tip = String.format("<span style='white-space: nowrap;'>%s</span>%s", prefixText, valueText);
+
+ if (isSelected) {
+ tip = String.format("<strong>%s</strong>", tip);
+ }
+ tip = String.format("<html>%s</html>", tip);
+ }
+
+ editor.setToolTipText(tip);
+
+ return editor;
+ }
+
+ protected String getPrefixText(SampleCategory<C> sampleCategory) {
String text = null;
if (sampleCategory != null) {
C categoryValue = sampleCategory.getCategoryValue();
if (categoryValue != null) {
- Float number = sampleCategory.getCategoryWeight();
- Float computedNumber = sampleCategory.getComputedWeight();
- text = "<span style='white-space: nowrap;'>" + categoryDecorator.toString(categoryValue) + " /";
+ text = categoryDecorator.toString(categoryValue) + " /";
if (sampleCategory.isSubSample()) {
text += "/";
}
- text += " ";
+ }
+ }
+ return text == null ? "" : text;
+ }
+ protected String getValueText(SampleCategory<C> sampleCategory) {
+ String text = "";
+ if (sampleCategory != null) {
+ C categoryValue = sampleCategory.getCategoryValue();
+ if (categoryValue != null) {
+ Float number = sampleCategory.getCategoryWeight();
+ Float computedNumber = sampleCategory.getComputedWeight();
+
if (number != null) {
text += JAXXUtil.getStringValue(number);
@@ -271,27 +329,9 @@
} else {
text += "-";
}
-
- text += "</span>";
-
- if (isSelected) {
- text = "<strong>" + text + "</strong>";
- }
-
- text = "<html>" + text + "</html>";
}
}
-
- JComponent result =
- (JComponent) delegate.getTableCellRendererComponent(table,
- text,
- isSelected,
- hasFocus,
- row,
- column);
- result.setToolTipText(text);
-
- return result;
+ return text;
}
}
}
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-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -281,14 +281,16 @@
addFloatColumnToModel(columnModel,
AccidentalBatchTableModel.WEIGHT,
- weightUnit);
+ weightUnit,
+ table);
}
{ // Size column
addFloatColumnToModel(columnModel,
AccidentalBatchTableModel.SIZE,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ table);
}
{ // Length step caracteristic column
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-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -411,20 +411,17 @@
getTable().clearSelection();
}
-// @Override
-// protected void onAfterSelectedRowChanged(int oldRowIndex, BenthosBatchRowModel oldRow, int newRowIndex, BenthosBatchRowModel newRow) {
-// super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
-//
-// if (log.isInfoEnabled()) {
-// log.info("After select row: " + newRowIndex);
-// }
-//
-// saveSelectedRowIfNeeded();
-// }
-
@Override
protected void addHighlighters(JXTable table) {
+ // use white color for not editable even row (to make sure white color is apply at least one)
+ Highlighter evenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.EVEN,
+ new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.READ_ONLY)),
+ Color.WHITE);
+ table.addHighlighter(evenHighlighter);
+
super.addHighlighters(table);
Color toConfirmColor = getConfig().getColorRowToConfirm();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -493,6 +493,8 @@
Caracteristic data = null;
+ JXTable table = getTable();
+
DefaultTableColumnModelExt columnModel =
new DefaultTableColumnModelExt();
@@ -500,7 +502,7 @@
addBooleanColumnToModel(columnModel,
SplitBenthosBatchTableModel.SELECTED,
- getTable());
+ table);
}
boolean editableCategoryValue = false;
@@ -514,7 +516,8 @@
editableCategoryValue = true;
addFloatColumnToModel(columnModel,
SplitBenthosBatchTableModel.EDITABLE_CATEGORY_VALUE,
- TuttiUI.DECIMAL1_PATTERN);
+ TuttiUI.DECIMAL1_PATTERN,
+ table);
}
if (data != null) {
@@ -531,7 +534,8 @@
addFloatColumnToModel(columnModel,
SplitBenthosBatchTableModel.WEIGHT,
- weightUnit);
+ weightUnit,
+ table);
}
}
@@ -542,8 +546,6 @@
editableCategoryValue,
false);
- JXTable table = getTable();
-
// remove all listener on tables we could add before
uninstallTableSaveOnRowChangedSelectionListener();
uninstallTableKeyListener();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -287,6 +287,8 @@
}
});
+ JXTable table = getTable();
+
// create table column model
DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt();
@@ -294,21 +296,24 @@
addFloatColumnToModel(columnModel,
BenthosFrequencyTableModel.LENGTH_STEP,
- TuttiUI.DECIMAL1_PATTERN);
+ TuttiUI.DECIMAL1_PATTERN,
+ table);
}
{ // Number
addIntegerColumnToModel(columnModel,
BenthosFrequencyTableModel.NUMBER,
- TuttiUI.INT_6_DIGITS_PATTERN);
+ TuttiUI.INT_6_DIGITS_PATTERN,
+ table);
}
{ // Weight
addFloatColumnToModel(columnModel,
BenthosFrequencyTableModel.WEIGHT,
- weightUnit);
+ weightUnit,
+ table);
}
// create table model
@@ -318,8 +323,8 @@
columnModel,
model);
- JXTable table = getTable();
+
table.setModel(tableModel);
table.setColumnModel(columnModel);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -421,12 +421,16 @@
Caracteristic data = null;
+ JXTable table = getTable();
+
DefaultTableColumnModelExt columnModel =
new DefaultTableColumnModelExt();
{ // Selection
- addBooleanColumnToModel(columnModel, SplitBenthosBatchTableModel.SELECTED, getTable());
+ addBooleanColumnToModel(columnModel,
+ SplitBenthosBatchTableModel.SELECTED,
+ table);
}
boolean editableCategoryValue = false;
@@ -440,7 +444,8 @@
editableCategoryValue = true;
addFloatColumnToModel(columnModel,
SplitBenthosBatchTableModel.EDITABLE_CATEGORY_VALUE,
- TuttiUI.DECIMAL1_PATTERN);
+ TuttiUI.DECIMAL1_PATTERN,
+ table);
}
if (data != null) {
@@ -457,7 +462,8 @@
addFloatColumnToModel(columnModel,
SplitBenthosBatchTableModel.WEIGHT,
- getConfig().getBenthosWeightUnit());
+ getConfig().getBenthosWeightUnit(),
+ table);
}
}
@@ -468,8 +474,6 @@
editableCategoryValue,
getModel().isSplitMode());
- JXTable table = getTable();
-
// remove all listener on tables we could add before
uninstallTableSaveOnRowChangedSelectionListener();
uninstallTableKeyListener();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -299,14 +299,16 @@
addFloatColumnToModel(columnModel,
IndividualObservationBatchTableModel.WEIGHT,
- weightUnit);
+ weightUnit,
+ table);
}
{ // Size column
addFloatColumnToModel(columnModel,
IndividualObservationBatchTableModel.SIZE,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ table);
}
{ // Length step caracteristic column
@@ -339,7 +341,8 @@
addFloatColumnToModel(columnModel,
id,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ table);
break;
case QUALITATIVE:
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -159,17 +159,6 @@
return result;
}
-// @Override
-// protected void onRowModified(int rowIndex,
-// MarineLitterBatchRowModel row,
-// String propertyName,
-// Object oldValue,
-// Object newValue) {
-// recomputeRowValidState(row);
-//
-// saveSelectedRowIfNeeded();
-// }
-
@Override
protected void saveSelectedRowIfRequired(TuttiBeanMonitor<MarineLitterBatchRowModel> rowMonitor,
MarineLitterBatchRowModel row) {
@@ -274,14 +263,16 @@
addIntegerColumnToModel(columnModel,
MarineLitterBatchTableModel.NUMBER,
- TuttiUI.INT_3_DIGITS_PATTERN);
+ TuttiUI.INT_3_DIGITS_PATTERN,
+ table);
}
{ // Weight column
addFloatColumnToModel(columnModel,
MarineLitterBatchTableModel.WEIGHT,
- weightUnit);
+ weightUnit,
+ table);
}
{ // Comment column
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-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -419,20 +419,17 @@
getTable().clearSelection();
}
-// @Override
-// protected void onAfterSelectedRowChanged(int oldRowIndex, SpeciesBatchRowModel oldRow, int newRowIndex, SpeciesBatchRowModel newRow) {
-// super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
-//
-// if (log.isInfoEnabled()) {
-// log.info("After select row: " + newRowIndex);
-// }
-//
-// saveSelectedRowIfNeeded();
-// }
-
@Override
protected void addHighlighters(JXTable table) {
+ // use white color for not editable even row (to make sure white color is apply at least one)
+ Highlighter evenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.EVEN,
+ new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.READ_ONLY)),
+ Color.WHITE);
+ table.addHighlighter(evenHighlighter);
+
super.addHighlighters(table);
Color toConfirmColor = getConfig().getColorRowToConfirm();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -501,6 +501,8 @@
Caracteristic data = null;
+ JXTable table = getTable();
+
DefaultTableColumnModelExt columnModel =
new DefaultTableColumnModelExt();
@@ -508,7 +510,7 @@
addBooleanColumnToModel(columnModel,
SplitSpeciesBatchTableModel.SELECTED,
- getTable());
+ table);
}
boolean editableCategoryValue = false;
@@ -522,7 +524,8 @@
editableCategoryValue = true;
addFloatColumnToModel(columnModel,
SplitSpeciesBatchTableModel.EDITABLE_CATEGORY_VALUE,
- TuttiUI.DECIMAL1_PATTERN);
+ TuttiUI.DECIMAL1_PATTERN,
+ table);
}
if (data != null) {
@@ -539,7 +542,8 @@
addFloatColumnToModel(columnModel,
SplitSpeciesBatchTableModel.WEIGHT,
- weightUnit);
+ weightUnit,
+ table);
}
}
@@ -550,8 +554,6 @@
editableCategoryValue,
false);
- JXTable table = getTable();
-
// remove all listener on tables we could add before
uninstallTableSaveOnRowChangedSelectionListener();
uninstallTableKeyListener();
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-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -286,6 +286,8 @@
}
});
+ JXTable table = getTable();
+
// create table column model
DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt();
@@ -293,21 +295,24 @@
addFloatColumnToModel(columnModel,
SpeciesFrequencyTableModel.LENGTH_STEP,
- TuttiUI.DECIMAL1_PATTERN);
+ TuttiUI.DECIMAL1_PATTERN,
+ table);
}
{ // Number
addIntegerColumnToModel(columnModel,
SpeciesFrequencyTableModel.NUMBER,
- TuttiUI.INT_6_DIGITS_PATTERN);
+ TuttiUI.INT_6_DIGITS_PATTERN,
+ table);
}
{ // Weight
addFloatColumnToModel(columnModel,
SpeciesFrequencyTableModel.WEIGHT,
- weightUnit);
+ weightUnit,
+ table);
}
// create table model
@@ -317,8 +322,6 @@
columnModel,
model);
- JXTable table = getTable();
-
table.setModel(tableModel);
table.setColumnModel(columnModel);
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-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -422,6 +422,8 @@
Caracteristic data = null;
+ JXTable table = getTable();
+
DefaultTableColumnModelExt columnModel =
new DefaultTableColumnModelExt();
@@ -429,7 +431,7 @@
addBooleanColumnToModel(columnModel,
SplitSpeciesBatchTableModel.SELECTED,
- getTable());
+ table);
}
boolean editableCategoryValue = false;
@@ -443,7 +445,8 @@
editableCategoryValue = true;
addFloatColumnToModel(columnModel,
SplitSpeciesBatchTableModel.EDITABLE_CATEGORY_VALUE,
- TuttiUI.DECIMAL1_PATTERN);
+ TuttiUI.DECIMAL1_PATTERN,
+ table);
}
if (data != null) {
@@ -460,7 +463,8 @@
addFloatColumnToModel(columnModel,
SplitSpeciesBatchTableModel.WEIGHT,
- getConfig().getSpeciesWeightUnit());
+ getConfig().getSpeciesWeightUnit(),
+ table);
}
}
@@ -471,8 +475,6 @@
editableCategoryValue,
getModel().isSplitMode());
- JXTable table = getTable();
-
// remove all listener on tables we could add before
uninstallTableSaveOnRowChangedSelectionListener();
uninstallTableKeyListener();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -94,6 +94,7 @@
import javax.swing.ListCellRenderer;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;
+import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.border.LineBorder;
@@ -464,7 +465,7 @@
protected void addHighlighters(final JXTable table) {
HighlightPredicate notSelectedPredicate = new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.IS_SELECTED);
- HighlightPredicate rowIsValidPredicate = new HighlightPredicate() {
+ HighlightPredicate rowIsInvalidPredicate = new HighlightPredicate() {
@Override
public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
@@ -477,7 +478,8 @@
return result;
}
};
-
+ HighlightPredicate rowIsValidPredicate =
+ new HighlightPredicate.NotHighlightPredicate(rowIsInvalidPredicate);
Highlighter selectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
HighlightPredicate.IS_SELECTED,
getConfig().getColorSelectedRow());
@@ -499,22 +501,12 @@
getConfig().getColorRowReadOnly().darker());
table.addHighlighter(readOnlySelectedHighlighter);
-// Highlighter readOnlySelectedEvenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
-// new HighlightPredicate.AndHighlightPredicate(
-// HighlightPredicate.READ_ONLY,
-// HighlightPredicate.ODD,
-// HighlightPredicate.IS_SELECTED),
-// getConfig().getColorSelectedRow().darker());
-// table.addHighlighter(readOnlySelectedEvenHighlighter);
-
-
// paint in a special color inValid rows (not selected)
-
Highlighter validHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
new HighlightPredicate.AndHighlightPredicate(
HighlightPredicate.EDITABLE,
notSelectedPredicate,
- rowIsValidPredicate),
+ rowIsInvalidPredicate),
getConfig().getColorRowInvalid());
table.addHighlighter(validHighlighter);
@@ -523,16 +515,16 @@
new HighlightPredicate.AndHighlightPredicate(
HighlightPredicate.EDITABLE,
HighlightPredicate.IS_SELECTED,
- rowIsValidPredicate),
+ rowIsInvalidPredicate),
getConfig().getColorRowInvalid().darker());
table.addHighlighter(validSelectedHighlighter);
-
// use configured color odd row (not for selected)
Highlighter evenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
new HighlightPredicate.AndHighlightPredicate(
HighlightPredicate.ODD,
notSelectedPredicate,
+ rowIsValidPredicate,
HighlightPredicate.READ_ONLY),
getConfig().getColorAlternateRow().darker());
table.addHighlighter(evenHighlighter);
@@ -541,6 +533,7 @@
new HighlightPredicate.AndHighlightPredicate(
HighlightPredicate.ODD,
notSelectedPredicate,
+ rowIsValidPredicate,
new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.READ_ONLY)),
getConfig().getColorAlternateRow());
table.addHighlighter(evenNotReadOnlyHighlighter);
@@ -550,6 +543,7 @@
new HighlightPredicate.AndHighlightPredicate(
HighlightPredicate.ODD,
HighlightPredicate.IS_SELECTED,
+ rowIsValidPredicate,
new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.READ_ONLY)),
getConfig().getColorSelectedRow());
table.addHighlighter(evenSelectedHighlighter);
@@ -561,6 +555,18 @@
table.addHighlighter(selectHighlighter);
}
+ protected void listenModelModifiy(AbstractTuttiBeanUIModel model) {
+ model.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_MODIFY, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ Boolean modify = (Boolean) evt.getNewValue();
+ if (modify != null && modify) {
+ ((AbstractTuttiBeanUIModel) getModel()).setModify(true);
+ }
+ }
+ });
+ }
+
public void openRowMenu(KeyEvent e, JPopupMenu popup) {
if (e.getKeyCode() == KeyEvent.VK_CONTEXT_MENU) {
@@ -662,8 +668,8 @@
if (computed != null && computed) {
Font font = jTextField.getFont().deriveFont(Font.ITALIC);
jTextField.setFont(font);
- jTextField.setEditable(!computed);
- jTextField.setEnabled(!computed);
+ jTextField.setEditable(false);
+ jTextField.setEnabled(false);
jTextField.setDisabledTextColor(getConfig().getColorComputedWeights());
}
if (isAutoSelectOnFocus(jTextField)) {
@@ -1118,23 +1124,9 @@
addColumnToModel(model, null, null, identifier, null);
}
- protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model,
- ColumnIdentifier<R> identifier,
- String numberPattern) {
-
- NumberCellEditor<Float> editor =
- JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false);
- editor.getNumberEditor().setSelectAllTextOnError(true);
- editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
- editor.getNumberEditor().setNumberPattern(numberPattern);
-
- addColumnToModel(model, editor, null, identifier, null);
- }
-
// protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model,
// ColumnIdentifier<R> identifier,
-// String numberPattern,
-// WeightUnit weightUnit) {
+// String numberPattern) {
//
// NumberCellEditor<Float> editor =
// JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false);
@@ -1142,13 +1134,31 @@
// editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
// editor.getNumberEditor().setNumberPattern(numberPattern);
//
-// addColumnToModel(model, editor, null, identifier, weightUnit);
+// addColumnToModel(model, editor, null, identifier, null);
// }
protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model,
ColumnIdentifier<R> identifier,
- WeightUnit weightUnit) {
+ String numberPattern,
+ JTable table) {
+ NumberCellEditor<Float> editor =
+ JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false);
+ editor.getNumberEditor().setSelectAllTextOnError(true);
+ editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
+ editor.getNumberEditor().setNumberPattern(numberPattern);
+
+ TableCellRenderer renderer =
+ newNumberCellRenderer(table.getDefaultRenderer(Number.class));
+
+ addColumnToModel(model, editor, renderer, identifier, null);
+ }
+
+ protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model,
+ ColumnIdentifier<R> identifier,
+ WeightUnit weightUnit,
+ JTable table) {
+
Preconditions.checkNotNull(weightUnit);
NumberCellEditor<Float> editor =
JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false);
@@ -1156,12 +1166,16 @@
editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
editor.getNumberEditor().setNumberPattern(weightUnit.getNumberEditorPattern());
- addColumnToModel(model, editor, null, identifier, weightUnit);
+ TableCellRenderer renderer =
+ newNumberCellRenderer(table.getDefaultRenderer(Number.class));
+
+ addColumnToModel(model, editor, renderer, identifier, weightUnit);
}
protected <R extends AbstractTuttiBeanUIModel> void addIntegerColumnToModel(TableColumnModel model,
ColumnIdentifier<R> identifier,
- String numberPattern) {
+ String numberPattern,
+ JTable table) {
NumberCellEditor<Integer> editor =
JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false);
@@ -1169,9 +1183,28 @@
editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
editor.getNumberEditor().setNumberPattern(numberPattern);
- addColumnToModel(model, editor, null, identifier, null);
+ TableCellRenderer renderer = newNumberCellRenderer(table.getDefaultRenderer(Number.class));
+ addColumnToModel(model, editor, renderer, identifier, null);
}
+
+ TableCellRenderer newNumberCellRenderer(final TableCellRenderer defaultRenderer) {
+ TableCellRenderer result = new TableCellRenderer() {
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+ Component result = defaultRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+ if (result instanceof JLabel) {
+ JLabel jLabel = (JLabel) result;
+ jLabel.setHorizontalTextPosition(SwingConstants.RIGHT);
+
+ }
+ return result;
+ }
+ };
+ return result;
+ }
+
+
protected <R extends AbstractTuttiBeanUIModel> void addBooleanColumnToModel(TableColumnModel model,
ColumnIdentifier<R> identifier,
JTable table) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -68,6 +68,10 @@
super(parentUi.getHandler().getContext(), ui, CaracteristicMapEditorRowModel.PROPERTY_VALUE);
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiTableUIHandler methods --//
+ //------------------------------------------------------------------------//
+
@Override
public CaracteristicMapEditorTableModel getTableModel() {
return (CaracteristicMapEditorTableModel) getTable().getModel();
@@ -92,12 +96,6 @@
}
@Override
- protected void onAfterSelectedRowChanged(int oldRowIndex, CaracteristicMapEditorRowModel oldRow, int newRowIndex, CaracteristicMapEditorRowModel newRow) {
- super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
- getModel().setRemoveCaracteristicEnabled(newRowIndex >= 0);
- }
-
- @Override
protected void saveSelectedRowIfRequired(TuttiBeanMonitor<CaracteristicMapEditorRowModel> rowMonitor,
CaracteristicMapEditorRowModel row) {
if (row.isValid()) {
@@ -117,6 +115,17 @@
}
@Override
+ protected void beforeOpenPopup(int rowIndex, int columnIndex) {
+ super.beforeOpenPopup(rowIndex, columnIndex);
+
+ getModel().setRemoveCaracteristicEnabled(rowIndex >= 0);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
public void beforeInitUI() {
CaracteristicMapEditorUIModel model = new CaracteristicMapEditorUIModel();
getUI().setContextValue(model);
@@ -180,6 +189,10 @@
return null;
}
+ //------------------------------------------------------------------------//
+ //-- Cancelable methods --//
+ //------------------------------------------------------------------------//
+
@Override
public void cancel() {
@@ -191,20 +204,6 @@
closeUI(ui);
}
- protected BeanFilterableComboBox<Caracteristic> getKeyCombo() {
- return ui.getNewRowKey();
- }
-
- protected void saveRow(CaracteristicMapEditorRowModel row) {
-
- if (row.isValid()) {
- CaracteristicMap caracteristics = getModel().getCaracteristicMap();
- Preconditions.checkNotNull(caracteristics);
-
- caracteristics.put(row.getKey(), row.getValue());
- }
- }
-
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
@@ -217,7 +216,6 @@
CaracteristicMapEditorRowModel row = tableModel.createNewRow();
row.setKey(selectedItem);
-// tableModel.addNewRow(row);
getModel().getRows().add(row);
int rowIndex = tableModel.getRowCount() - 1;
@@ -281,7 +279,6 @@
BeanFilterableComboBox<Caracteristic> keyCombo = getKeyCombo();
keyCombo.setData(caracteristicList);
-// selectFirstInCombo(keyCombo);
keyCombo.getHandler().reset();
model.setModify(false);
}
@@ -303,7 +300,6 @@
//add the row in the combo
BeanFilterableComboBox keyCombo = getKeyCombo();
keyCombo.addItem(row.getKey());
-// selectFirstInCombo(keyCombo);
keyCombo.getHandler().reset();
// remove the row from the model
@@ -325,4 +321,22 @@
closeUI(ui);
}
+
+ //------------------------------------------------------------------------//
+ //-- Internal methods --//
+ //------------------------------------------------------------------------//
+
+ protected BeanFilterableComboBox<Caracteristic> getKeyCombo() {
+ return ui.getNewRowKey();
+ }
+
+ protected void saveRow(CaracteristicMapEditorRowModel row) {
+
+ if (row.isValid()) {
+ CaracteristicMap caracteristics = getModel().getCaracteristicMap();
+ Preconditions.checkNotNull(caracteristics);
+
+ caracteristics.put(row.getKey(), row.getValue());
+ }
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -32,7 +32,9 @@
import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer;
import org.nuiton.decorator.Decorator;
+import javax.swing.JLabel;
import javax.swing.JTable;
+import javax.swing.SwingConstants;
import javax.swing.table.TableCellRenderer;
import java.awt.Component;
@@ -70,6 +72,8 @@
Caracteristic caracteristic = (Caracteristic)
table.getModel().getValueAt(row, caracteristicColumn);
+
+ boolean numericType = false;
if (caracteristic == null) {
// should be render a null value ?
@@ -81,16 +85,37 @@
case QUALITATIVE:
renderer = new DecoratorTableCellRenderer(decorator);
break;
- case TEXT:
+
case NUMBER:
+
+ // use default text renderer with align at east
+ renderer = table.getDefaultRenderer(Object.class);
+ numericType = true;
+ break;
default:
-
+ case TEXT:
// use default text renderer
renderer = table.getDefaultRenderer(Object.class);
}
}
+
Component result = renderer.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
+
+ if (numericType) {
+
+ if (result instanceof JLabel) {
+ JLabel jLabel = (JLabel) result;
+ jLabel.setHorizontalAlignment(SwingConstants.RIGHT);
+
+ }
+ } else {
+ if (result instanceof JLabel) {
+ JLabel jLabel = (JLabel) result;
+ jLabel.setHorizontalAlignment(SwingConstants.LEFT);
+ }
+ }
+
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java 2013-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -31,6 +31,7 @@
import jaxx.runtime.JAXXUtil;
import javax.swing.AbstractCellEditor;
+import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
@@ -247,6 +248,10 @@
}
component.setFont(font);
component.setForeground(foreground);
+ if (component instanceof JLabel) {
+ JLabel jLabel = (JLabel) component;
+ jLabel.setHorizontalAlignment(RIGHT);
+ }
return component;
}
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-10-04 07:14:17 UTC (rev 1274)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-10-04 12:42:44 UTC (rev 1275)
@@ -343,8 +343,8 @@
newRow = getTableModel().getEntry(newRowIndex);
}
- if (log.isInfoEnabled()) {
- log.info("Will monitor entry: " + newRowIndex);
+ if (log.isDebugEnabled()) {
+ log.debug("Will monitor entry: " + newRowIndex);
}
rowMonitor.setBean(newRow);
1
0
04 Oct '13
Author: tchemit
Date: 2013-10-04 09:14:17 +0200 (Fri, 04 Oct 2013)
New Revision: 1274
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1274
Log:
fixes #3424: [TECH] Am?\195?\169liorer le temps d'ouverture de l'?\195?\169cran protocole
fixes #3331: [ERGO] - Lisibilit?\195?\169 des tableaux (captures, protocole)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchTableUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css
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/individualobservation/IndividualObservationBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.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/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.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/content/EditSelectedProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -38,7 +38,8 @@
public class EditSelectedProtocolAction extends AbstractChangeScreenAction {
/** Logger. */
- private static final Log log = LogFactory.getLog(EditSelectedProtocolAction.class);
+ private static final Log log =
+ LogFactory.getLog(EditSelectedProtocolAction.class);
public EditSelectedProtocolAction(MainUIHandler handler) {
super(handler, true, TuttiScreen.EDIT_PROTOCOL);
@@ -47,9 +48,10 @@
@Override
public void doAction() throws Exception {
Preconditions.checkState(getContext().isProtocolFilled());
- if (log.isInfoEnabled()) {
- log.info("Edit protocol: " + getContext().getProtocolId());
+ if (log.isDebugEnabled()) {
+ log.debug("Edit protocol: " + getContext().getProtocolId());
}
+ createProgressionModelIfRequired(4);
super.doAction();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -150,8 +150,8 @@
helper.addCategory(n_("tutti.config.category.ui"),
n_("tutti.config.category.ui.description"),
CALLBACK_UI)
+ .addOption(TuttiApplicationConfigOption.COLOR_ALTERNATE_ROW)
.addOption(TuttiApplicationConfigOption.COLOR_SELECTED_ROW)
- .addOption(TuttiApplicationConfigOption.COLOR_ALTERNATE_ROW)
.addOption(TuttiApplicationConfigOption.COLOR_ROW_INVALID)
.addOption(TuttiApplicationConfigOption.COLOR_ROW_READ_ONLY)
.addOption(TuttiApplicationConfigOption.COLOR_CELL_WITH_VALUE)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -151,6 +151,8 @@
CLONE_PROTOCOL_ENTRY.setContextValue(getContext().getMainUI(), protocol);
protocol = null;
+ createProgressionModelIfRequired(4);
+
// removed selected protocol
getContext().setProtocolId(null);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -148,8 +148,8 @@
if (log.isInfoEnabled()) {
log.info("Edit protocol: " + getContext().getProtocolId());
}
+ createProgressionModelIfRequired(4);
super.doAction();
}
-
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -172,6 +172,7 @@
// store protocol in context
IMPORT_PROTOCOL_ENTRY.setContextValue(getContext().getMainUI(), protocol);
protocol = null;
+ createProgressionModelIfRequired(4);
// removed selected protocol
getContext().setProtocolId(null);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -43,6 +43,7 @@
@Override
public void doAction() throws Exception {
getContext().setProtocolId(null);
+ createProgressionModelIfRequired(4);
super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchTableUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchTableUIHandler.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchTableUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -27,13 +27,23 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.decorator.ComponentAdapter;
+import org.jdesktop.swingx.decorator.HighlightPredicate;
+import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.sort.TableSortController;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
+import java.awt.Color;
+import java.awt.Component;
+import java.util.Collection;
/**
* Abstract ui handler forbatch ui.
@@ -43,6 +53,10 @@
*/
public abstract class AbstractTuttiBatchTableUIHandler<R extends AbstractTuttiBeanUIModel, M extends AbstractTuttiBatchUIModel<R, M>, UI extends TuttiUI<M, ?>> extends AbstractTuttiTableUIHandler<R, M, UI> {
+ protected abstract ColumnIdentifier<R> getCommentIdentifier();
+
+ protected abstract ColumnIdentifier<R> getAttachementIdentifier();
+
public abstract void selectFishingOperation(FishingOperation bean);
protected AbstractTuttiBatchTableUIHandler(TuttiUI<?, ?> parentUi,
@@ -72,6 +86,17 @@
table.clearSelection();
}
+ @Override
+ protected void onRowModified(int rowIndex,
+ R row,
+ String propertyName,
+ Object oldValue,
+ Object newValue) {
+ recomputeRowValidState(row);
+
+ saveSelectedRowIfNeeded();
+ }
+
protected void initBatchTable(JXTable table,
TableColumnModel columnModel,
AbstractTuttiTableModel<R> tableModel) {
@@ -84,4 +109,46 @@
initTable(table);
}
+
+ @Override
+ protected void addHighlighters(final JXTable table) {
+ super.addHighlighters(table);
+ addCommentHighlighter(table, getCommentIdentifier());
+ addAttachementHighlighter(table, getAttachementIdentifier());
+ }
+
+ protected void addCommentHighlighter(JXTable table, ColumnIdentifier identifier) {
+ Color cellWithValueColor = getConfig().getColorCellWithValue();
+
+ Highlighter commentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ new HighlightPredicate.IdentifierHighlightPredicate(identifier),
+ // for not null value
+ new HighlightPredicate() {
+ @Override
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ String value = (String) adapter.getValue();
+ return StringUtils.isNotBlank(value);
+ }
+ }), cellWithValueColor);
+ table.addHighlighter(commentHighlighter);
+ }
+
+ protected void addAttachementHighlighter(JXTable table, ColumnIdentifier identifier) {
+ Color cellWithValueColor = getConfig().getColorCellWithValue();
+
+ Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ new HighlightPredicate.IdentifierHighlightPredicate(identifier),
+ // for not null value
+ new HighlightPredicate() {
+ @Override
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ Collection attachments = (Collection) adapter.getValue();
+ return CollectionUtils.isNotEmpty(attachments);
+ }
+ }
+ ), cellWithValueColor);
+ table.addHighlighter(attachmentHighlighter);
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css 2013-10-04 07:14:17 UTC (rev 1274)
@@ -45,7 +45,6 @@
#table {
selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- selectionBackground: {null};
selectionForeground: {Color.BLACK};
sortable: false;
}
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-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -45,7 +45,6 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchTableModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
@@ -54,24 +53,17 @@
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.decorator.ComponentAdapter;
-import org.jdesktop.swingx.decorator.HighlightPredicate;
-import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import org.nuiton.decorator.Decorator;
import org.nuiton.validator.NuitonValidatorResult;
import javax.swing.JComponent;
-import java.awt.Color;
-import java.awt.Component;
-import java.util.Collection;
import java.util.List;
/**
@@ -116,6 +108,16 @@
//------------------------------------------------------------------------//
@Override
+ protected ColumnIdentifier<AccidentalBatchRowModel> getCommentIdentifier() {
+ return AccidentalBatchTableModel.COMMENT;
+ }
+
+ @Override
+ protected ColumnIdentifier<AccidentalBatchRowModel> getAttachementIdentifier() {
+ return AccidentalBatchTableModel.ATTACHMENT;
+ }
+
+ @Override
public void selectFishingOperation(FishingOperation bean) {
boolean empty = bean == null;
@@ -149,20 +151,6 @@
model.setRows(rows);
}
- protected AccidentalBatchRowModel loadBatch(AccidentalBatch aBatch) {
-
- AccidentalBatchRowModel newRow =
- new AccidentalBatchRowModel(weightUnit, aBatch);
-
- List<Attachment> attachments =
- persistenceService.getAllAttachments(newRow.getObjectType(),
- newRow.getObjectId());
-
- newRow.addAllAttachment(attachments);
-
- return newRow;
- }
-
//------------------------------------------------------------------------//
//-- AbstractTuttiTableUIHandler methods --//
//------------------------------------------------------------------------//
@@ -201,16 +189,6 @@
}
@Override
- protected void onRowModified(int rowIndex,
- AccidentalBatchRowModel row,
- String propertyName,
- Object oldValue,
- Object newValue) {
- recomputeRowValidState(row);
- saveSelectedRowIfNeeded();
- }
-
- @Override
protected void saveSelectedRowIfRequired(TuttiBeanMonitor<AccidentalBatchRowModel> rowMonitor,
AccidentalBatchRowModel row) {
@@ -237,42 +215,6 @@
}
}
- @Override
- protected void addHighlighters(JXTable table) {
- super.addHighlighters(table);
-
- // paint in a special color for comment cell (with not null value)
- Color cellWithValueColor = getConfig().getColorCellWithValue();
-
- Highlighter commentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(AccidentalBatchTableModel.COMMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- String value = (String) adapter.getValue();
- return StringUtils.isNotBlank(value);
- }
- }), cellWithValueColor);
- table.addHighlighter(commentHighlighter);
-
- // paint in a special color for attachment cell (when some attachments)
- Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(AccidentalBatchTableModel.ATTACHMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- Collection attachments = (Collection) adapter.getValue();
- return CollectionUtils.isNotEmpty(attachments);
- }
- }
- ), cellWithValueColor);
- table.addHighlighter(attachmentHighlighter);
- }
-
//------------------------------------------------------------------------//
//-- AbstractTuttiUIHandler methods --//
//------------------------------------------------------------------------//
@@ -473,6 +415,20 @@
//-- Internal methods --//
//------------------------------------------------------------------------//
+ protected AccidentalBatchRowModel loadBatch(AccidentalBatch aBatch) {
+
+ AccidentalBatchRowModel newRow =
+ new AccidentalBatchRowModel(weightUnit, aBatch);
+
+ List<Attachment> attachments =
+ persistenceService.getAllAttachments(newRow.getObjectType(),
+ newRow.getObjectId());
+
+ newRow.addAllAttachment(attachments);
+
+ return newRow;
+ }
+
protected void saveRow(AccidentalBatchRowModel row) {
AccidentalBatch entityToSave = row.toEntity();
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-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -75,7 +75,6 @@
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
@@ -99,7 +98,6 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
-import java.util.Collection;
import java.util.EnumMap;
import java.util.List;
import java.util.Set;
@@ -208,6 +206,16 @@
//------------------------------------------------------------------------//
@Override
+ protected ColumnIdentifier<BenthosBatchRowModel> getCommentIdentifier() {
+ return BenthosBatchTableModel.COMMENT;
+ }
+
+ @Override
+ protected ColumnIdentifier<BenthosBatchRowModel> getAttachementIdentifier() {
+ return BenthosBatchTableModel.ATTACHMENT;
+ }
+
+ @Override
public void selectFishingOperation(FishingOperation bean) {
boolean empty = bean == null;
@@ -306,6 +314,8 @@
recomputeRowValidState(row);
+ BenthosBatchTableModel tableModel = getTableModel();
+
if (BenthosBatchRowModel.PROPERTY_SAMPLE_CATEGORY_WEIGHT.equals(propertyName)) {
// sampling category weight has changed, must then save the top
@@ -315,7 +325,6 @@
SampleCategory<?> sampleCategory = (SampleCategory<?>) newValue;
Integer sampleCategoryId = sampleCategory.getCategoryId();
- BenthosBatchTableModel tableModel = getTableModel();
BenthosBatchRowModel firstAncestorRow = row.getFirstAncestor(sampleCategory);
int firstAncestorIndex = tableModel.getRowIndex(firstAncestorRow);
@@ -347,12 +356,11 @@
boolean newVal = newValue == null ? false : (Boolean) newValue;
- for (BenthosBatchRowModel sampleCategories : shell) {
- sampleCategories.setSpeciesToConfirm(newVal);
+ for (BenthosBatchRowModel rowToUpdate : shell) {
+ rowToUpdate.setSpeciesToConfirm(newVal);
}
- getTableModel().fireTableRowUpdatedShell(shell);
-
+ tableModel.fireTableRowUpdatedShell(shell);
}
saveSelectedRowIfNeeded();
@@ -400,19 +408,20 @@
addToSpeciesUsed(row);
}
}
+ getTable().clearSelection();
}
- @Override
- protected void onAfterSelectedRowChanged(int oldRowIndex, BenthosBatchRowModel oldRow, int newRowIndex, BenthosBatchRowModel newRow) {
- super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+// @Override
+// protected void onAfterSelectedRowChanged(int oldRowIndex, BenthosBatchRowModel oldRow, int newRowIndex, BenthosBatchRowModel newRow) {
+// super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+//
+// if (log.isInfoEnabled()) {
+// log.info("After select row: " + newRowIndex);
+// }
+//
+// saveSelectedRowIfNeeded();
+// }
- if (log.isInfoEnabled()) {
- log.info("After select row: " + newRowIndex);
- }
-
- saveSelectedRowIfNeeded();
- }
-
@Override
protected void addHighlighters(JXTable table) {
@@ -445,37 +454,6 @@
}, toConfirmColor.darker());
table.addHighlighter(confirmNotEditableHighlighter);
-
- // paint in a special color for comment cell (with not null value)
- Color cellWithValueColor = getConfig().getColorCellWithValue();
-
- Highlighter commentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(BenthosBatchTableModel.COMMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- String value = (String) adapter.getValue();
- return StringUtils.isNotBlank(value);
- }
- }), cellWithValueColor);
- table.addHighlighter(commentHighlighter);
-
- // paint in a special color for attachment cell (when some attachments)
- Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(BenthosBatchTableModel.ATTACHMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- Collection attachments = (Collection) adapter.getValue();
- return CollectionUtils.isNotEmpty(attachments);
- }
- }
- ), cellWithValueColor);
- table.addHighlighter(attachmentHighlighter);
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -232,30 +232,6 @@
firePropertyChange(PROPERTY_CARACTERISTICS, oldValue, caracteristics);
}
-// @Override
-// public String getSamplingCode() {
-// return editObject.getSamplingCode();
-// }
-//
-// @Override
-// public void setSamplingCode(String samplingCode) {
-// Object oldValue = getSamplingCode();
-// editObject.setSamplingCode(samplingCode);
-// firePropertyChange(PROPERTY_SAMPLING_CODE, oldValue, samplingCode);
-// }
-//
-// @Override
-// public String getCalcifiedPieceSamplingCode() {
-// return editObject.getCalcifiedPieceSamplingCode();
-// }
-//
-// @Override
-// public void setCalcifiedPieceSamplingCode(String calcifiedPieceSamplingCode) {
-// Object oldValue = getCalcifiedPieceSamplingCode();
-// editObject.setCalcifiedPieceSamplingCode(calcifiedPieceSamplingCode);
-// firePropertyChange(PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE, oldValue, calcifiedPieceSamplingCode);
-// }
-
@Override
public String getComment() {
return editObject.getComment();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -62,16 +62,6 @@
n_("tutti.editIndividualObservationBatch.table.header.otherCaracteristics"),
n_("tutti.editIndividualObservationBatch.table.header.otherCaracteristics.tip"));
-// public static final ColumnIdentifier<IndividualObservationBatchRowModel> CALCIFIED_PIECE_SAMPLING_CODE = ColumnIdentifier.newId(
-// IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
-// ("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode"),
-// ("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip"));
-//
-// public static final ColumnIdentifier<IndividualObservationBatchRowModel> SAMPLING_CODE = ColumnIdentifier.newId(
-// IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
-// ("tutti.editIndividualObservationBatch.table.header.samplingCode"),
-// ("tutti.editIndividualObservationBatch.table.header.samplingCode.tip"));
-
public static final ColumnIdentifier<IndividualObservationBatchRowModel> COMMENT = ColumnIdentifier.newId(
IndividualObservationBatchRowModel.PROPERTY_COMMENT,
n_("tutti.editIndividualObservationBatch.table.header.comment"),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -47,7 +47,6 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
@@ -57,26 +56,20 @@
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.CaracteristicColumnIdentifier;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.decorator.ComponentAdapter;
-import org.jdesktop.swingx.decorator.HighlightPredicate;
-import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import org.nuiton.decorator.Decorator;
import org.nuiton.validator.NuitonValidatorResult;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
-import java.awt.Color;
-import java.awt.Component;
import java.io.Serializable;
-import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -128,6 +121,16 @@
//------------------------------------------------------------------------//
@Override
+ protected ColumnIdentifier<IndividualObservationBatchRowModel> getCommentIdentifier() {
+ return IndividualObservationBatchTableModel.COMMENT;
+ }
+
+ @Override
+ protected ColumnIdentifier<IndividualObservationBatchRowModel> getAttachementIdentifier() {
+ return IndividualObservationBatchTableModel.ATTACHMENT;
+ }
+
+ @Override
public void selectFishingOperation(FishingOperation bean) {
boolean empty = bean == null;
@@ -203,20 +206,6 @@
}
@Override
- protected void onRowModified(int rowIndex,
- IndividualObservationBatchRowModel row,
- String propertyName,
- Object oldValue,
- Object newValue) {
- recomputeRowValidState(row);
-
- saveSelectedRowIfNeeded();
-
-// // when row valid state has changed, recompute action enabled states
-// recomputeBatchActionEnable();
- }
-
- @Override
protected void saveSelectedRowIfRequired(TuttiBeanMonitor<IndividualObservationBatchRowModel> rowMonitor,
IndividualObservationBatchRowModel row) {
@@ -243,65 +232,6 @@
}
}
-// @Override
-// protected void onRowValidStateChanged(int rowIndex,
-// IndividualObservationBatchRowModel row,
-// Boolean oldValue,
-// Boolean newValue) {
-// super.onRowValidStateChanged(rowIndex, row, oldValue, newValue);
-//
-// // when row valid state has changed, recompute action enabled states
-// recomputeBatchActionEnable();
-// }
-
-// @Override
-// protected void onAfterSelectedRowChanged(int oldRowIndex,
-// IndividualObservationBatchRowModel oldRow,
-// int newRowIndex,
-// IndividualObservationBatchRowModel newRow) {
-// super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
-//
-// // when selected row has changed, recompute action enabled states
-// recomputeBatchActionEnable();
-// }
-
- @Override
- protected void addHighlighters(JXTable table) {
- super.addHighlighters(table);
-
- // paint in a special color for comment cell (with not null value)
- Color cellWithValueColor = getConfig().getColorCellWithValue();
-
- Highlighter commentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(IndividualObservationBatchTableModel.COMMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- String value = (String) adapter.getValue();
- return StringUtils.isNotBlank(value);
- }
- }), cellWithValueColor);
- table.addHighlighter(commentHighlighter);
-
- // paint in a special color for attachment cell (when some attachments)
-
- Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(IndividualObservationBatchTableModel.ATTACHMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- Collection attachments = (Collection) adapter.getValue();
- return CollectionUtils.isNotEmpty(attachments);
- }
- }
- ), cellWithValueColor);
- table.addHighlighter(attachmentHighlighter);
- }
-
//------------------------------------------------------------------------//
//-- AbstractTuttiUIHandler methods --//
//------------------------------------------------------------------------//
@@ -596,8 +526,6 @@
newRow.setLengthStepCaracteristic(model.getLengthStepCaracteristic());
rowsToCreate.add(newRow);
-
-
}
} else {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css 2013-10-04 07:14:17 UTC (rev 1274)
@@ -61,7 +61,7 @@
#table {
selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- selectionBackground: {null};
+ /*selectionBackground: {null};*/
selectionForeground: {Color.BLACK};
sortable: false;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -43,29 +43,21 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create.CreateMarineLitterBatchUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.decorator.ComponentAdapter;
-import org.jdesktop.swingx.decorator.HighlightPredicate;
-import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import org.nuiton.validator.NuitonValidatorResult;
import javax.swing.JComponent;
-import java.awt.Color;
-import java.awt.Component;
-import java.util.Collection;
import java.util.List;
/**
@@ -102,6 +94,16 @@
//------------------------------------------------------------------------//
@Override
+ protected ColumnIdentifier<MarineLitterBatchRowModel> getCommentIdentifier() {
+ return MarineLitterBatchTableModel.COMMENT;
+ }
+
+ @Override
+ protected ColumnIdentifier<MarineLitterBatchRowModel> getAttachementIdentifier() {
+ return MarineLitterBatchTableModel.ATTACHMENT;
+ }
+
+ @Override
public void selectFishingOperation(FishingOperation bean) {
boolean empty = bean == null;
@@ -133,22 +135,8 @@
}
}
model.setRows(rows);
- recomputeBatchActionEnable();
}
- protected MarineLitterBatchRowModel loadBatch(MarineLitterBatch aBatch) {
-
- MarineLitterBatchRowModel newRow =
- new MarineLitterBatchRowModel(weightUnit, aBatch);
-
- List<Attachment> attachments =
- persistenceService.getAllAttachments(newRow.getObjectType(),
- newRow.getObjectId());
-
- newRow.addAllAttachment(attachments);
- return newRow;
- }
-
//------------------------------------------------------------------------//
//-- AbstractTuttiTableUIHandler methods --//
//------------------------------------------------------------------------//
@@ -171,20 +159,17 @@
return result;
}
- @Override
- protected void onRowModified(int rowIndex,
- MarineLitterBatchRowModel row,
- String propertyName,
- Object oldValue,
- Object newValue) {
- recomputeRowValidState(row);
+// @Override
+// protected void onRowModified(int rowIndex,
+// MarineLitterBatchRowModel row,
+// String propertyName,
+// Object oldValue,
+// Object newValue) {
+// recomputeRowValidState(row);
+//
+// saveSelectedRowIfNeeded();
+// }
- saveSelectedRowIfNeeded();
-
- // when row valid state has changed, recompute action enabled states
- recomputeBatchActionEnable();
- }
-
@Override
protected void saveSelectedRowIfRequired(TuttiBeanMonitor<MarineLitterBatchRowModel> rowMonitor,
MarineLitterBatchRowModel row) {
@@ -199,7 +184,7 @@
String title = buildReminderLabelTitle(decorate(row.getMarineLitterCategory()) + " - " + decorate(row.getMarineLitterSizeCategory()),
null,
"Sauvegarde du lot Macro déchet : ",
- "Ligne :" + getTableModel().getRowIndex(row) + 1);
+ "Ligne :" + (getTableModel().getRowIndex(row) + 1));
showInformationMessage(title);
@@ -222,65 +207,6 @@
}
}
- @Override
- protected void onRowValidStateChanged(int rowIndex,
- MarineLitterBatchRowModel row,
- Boolean oldValue,
- Boolean newValue) {
- super.onRowValidStateChanged(rowIndex, row, oldValue, newValue);
-
- // when row valid state has changed, recompute action enabled states
- recomputeBatchActionEnable();
- }
-
- @Override
- protected void onAfterSelectedRowChanged(int oldRowIndex,
- MarineLitterBatchRowModel oldRow,
- int newRowIndex,
- MarineLitterBatchRowModel newRow) {
- super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
-
- // when selected row has changed, recompute action enabled states
- recomputeBatchActionEnable();
- }
-
- @Override
- protected void addHighlighters(JXTable table) {
- super.addHighlighters(table);
-
- // paint in a special color for comment cell (with not null value)
- Color cellWithValueColor = getConfig().getColorCellWithValue();
-
- Highlighter commentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(MarineLitterBatchTableModel.COMMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- String value = (String) adapter.getValue();
- return StringUtils.isNotBlank(value);
- }
- }), cellWithValueColor);
- table.addHighlighter(commentHighlighter);
-
- // paint in a special color for attachment cell (when some attachments)
-
- Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(MarineLitterBatchTableModel.ATTACHMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- Collection attachments = (Collection) adapter.getValue();
- return CollectionUtils.isNotEmpty(attachments);
- }
- }
- ), cellWithValueColor);
- table.addHighlighter(attachmentHighlighter);
- }
-
//------------------------------------------------------------------------//
//-- AbstractTuttiUIHandler methods --//
//------------------------------------------------------------------------//
@@ -382,7 +308,6 @@
table.setColumnModel(columnModel);
initBatchTable(table, columnModel, tableModel);
- recomputeBatchActionEnable();
}
@Override
@@ -397,6 +322,21 @@
}
}
+ @Override
+ protected void beforeOpenPopup(int rowIndex, int columnIndex) {
+ super.beforeOpenPopup(rowIndex, columnIndex);
+
+ boolean enableRemove = false;
+
+ if (rowIndex != -1) {
+
+ // there is a selected row
+ enableRemove = true;
+ }
+ MarineLitterBatchUIModel model = getModel();
+ model.setRemoveBatchEnabled(enableRemove);
+ }
+
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
@@ -431,27 +371,23 @@
//update categories used
addToMarineLitterCategoriesUsed(newRow);
}
-
- recomputeBatchActionEnable();
}
//------------------------------------------------------------------------//
//-- Internal methods --//
//------------------------------------------------------------------------//
- protected void recomputeBatchActionEnable() {
+ protected MarineLitterBatchRowModel loadBatch(MarineLitterBatch aBatch) {
- int rowIndex = getTable().getSelectedRow();
+ MarineLitterBatchRowModel newRow =
+ new MarineLitterBatchRowModel(weightUnit, aBatch);
- boolean enableRemove = false;
+ List<Attachment> attachments =
+ persistenceService.getAllAttachments(newRow.getObjectType(),
+ newRow.getObjectId());
- if (rowIndex != -1) {
-
- // there is a selected row
- enableRemove = true;
- }
- MarineLitterBatchUIModel model = getModel();
- model.setRemoveBatchEnabled(enableRemove);
+ newRow.addAllAttachment(attachments);
+ return newRow;
}
protected void saveRow(MarineLitterBatchRowModel row) {
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-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -74,7 +74,6 @@
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
@@ -98,7 +97,6 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
-import java.util.Collection;
import java.util.EnumMap;
import java.util.List;
import java.util.Set;
@@ -214,6 +212,16 @@
//------------------------------------------------------------------------//
@Override
+ protected ColumnIdentifier<SpeciesBatchRowModel> getCommentIdentifier() {
+ return SpeciesBatchTableModel.COMMENT;
+ }
+
+ @Override
+ protected ColumnIdentifier<SpeciesBatchRowModel> getAttachementIdentifier() {
+ return SpeciesBatchTableModel.ATTACHMENT;
+ }
+
+ @Override
public void selectFishingOperation(FishingOperation bean) {
boolean empty = bean == null;
@@ -314,6 +322,8 @@
recomputeRowValidState(row);
+ SpeciesBatchTableModel tableModel = getTableModel();
+
if (SpeciesBatchRowModel.PROPERTY_SAMPLE_CATEGORY_WEIGHT.equals(propertyName)) {
// sampling category weight has changed, must then save the top
@@ -323,8 +333,6 @@
SampleCategory<?> sampleCategory = (SampleCategory<?>) newValue;
Integer sampleCategoryId = sampleCategory.getCategoryId();
- SpeciesBatchTableModel tableModel = getTableModel();
-
SpeciesBatchRowModel firstAncestorRow = row.getFirstAncestor(sampleCategory);
int firstAncestorIndex = tableModel.getRowIndex(firstAncestorRow);
if (rowIndex != firstAncestorIndex) {
@@ -355,12 +363,11 @@
boolean newVal = newValue == null ? false : (Boolean) newValue;
- for (SpeciesBatchRowModel sampleCategories : shell) {
- sampleCategories.setSpeciesToConfirm(newVal);
+ for (SpeciesBatchRowModel rowToupdate : shell) {
+ rowToupdate.setSpeciesToConfirm(newVal);
}
- getTableModel().fireTableRowUpdatedShell(shell);
-
+ tableModel.fireTableRowUpdatedShell(shell);
}
saveSelectedRowIfNeeded();
@@ -408,19 +415,21 @@
addToSpeciesUsed(row);
}
}
- }
- @Override
- protected void onAfterSelectedRowChanged(int oldRowIndex, SpeciesBatchRowModel oldRow, int newRowIndex, SpeciesBatchRowModel newRow) {
- super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
-
- if (log.isInfoEnabled()) {
- log.info("After select row: " + newRowIndex);
- }
-
- saveSelectedRowIfNeeded();
+ getTable().clearSelection();
}
+// @Override
+// protected void onAfterSelectedRowChanged(int oldRowIndex, SpeciesBatchRowModel oldRow, int newRowIndex, SpeciesBatchRowModel newRow) {
+// super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+//
+// if (log.isInfoEnabled()) {
+// log.info("After select row: " + newRowIndex);
+// }
+//
+// saveSelectedRowIfNeeded();
+// }
+
@Override
protected void addHighlighters(JXTable table) {
@@ -453,38 +462,6 @@
}, toConfirmColor.darker());
table.addHighlighter(confirmNotEditableHighlighter);
-
- // paint in a special color for comment cell (with not null value)
- Color cellWithValueColor = getConfig().getColorCellWithValue();
-
- Highlighter commentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(SpeciesBatchTableModel.COMMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- String value = (String) adapter.getValue();
- return StringUtils.isNotBlank(value);
- }
- }), cellWithValueColor);
- table.addHighlighter(commentHighlighter);
-
- // paint in a special color for attachment cell (when some attachments)
-
- Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- new HighlightPredicate.IdentifierHighlightPredicate(SpeciesBatchTableModel.ATTACHMENT),
- // for not null value
- new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- Collection attachments = (Collection) adapter.getValue();
- return CollectionUtils.isNotEmpty(attachments);
- }
- }
- ), cellWithValueColor);
- table.addHighlighter(attachmentHighlighter);
}
@Override
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-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -28,6 +28,7 @@
import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
+import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry;
@@ -76,6 +77,7 @@
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -148,6 +150,8 @@
@Override
public void beforeInitUI() {
+ incrementsMessage("Chargement des réferentiels");
+
getDataContext().resetValidationDataContext();
EditProtocolUIModel model = new EditProtocolUIModel();
@@ -193,6 +197,8 @@
// load existing protocol
+ incrementsMessage("Chargement du protocole");
+
protocol = getDataContext().getProtocol();
if (EditProtocolAction.CLEAN_PROTOCOL_ENTRY.getContextValue(ui) != null) {
@@ -209,6 +215,8 @@
} else if ((protocol = ImportProtocolAction.IMPORT_PROTOCOL_ENTRY.getContextValue(ui)) != null) {
+ incrementsMessage("Import du protocole");
+
// import protocol
ImportProtocolAction.IMPORT_PROTOCOL_ENTRY.removeContextValue(ui);
@@ -219,6 +227,8 @@
} else if ((protocol = CloneProtocolAction.CLONE_PROTOCOL_ENTRY.getContextValue(ui)) != null) {
+ incrementsMessage("Clone du protocole");
+
// clone protocol
CloneProtocolAction.CLONE_PROTOCOL_ENTRY.removeContextValue(ui);
@@ -229,6 +239,8 @@
} else {
+ incrementsMessage("Création d'un nouveau protocol");
+
// create new protocol
if (log.isDebugEnabled()) {
@@ -256,6 +268,8 @@
List<EditProtocolSpeciesRowModel> speciesRows;
List<EditProtocolSpeciesRowModel> benthosRows;
+ incrementsMessage("Préparation des interfaces graphiques");
+
// build species and benthos rows
if (protocol == null) {
speciesRows = Lists.newArrayList();
@@ -484,6 +498,7 @@
List<Caracteristic> lengthClassesPmfmId = Lists.newArrayList();
+ Set<Species> speciesSet = Sets.newHashSet();
List<EditProtocolSpeciesRowModel> result = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(speciesProtocols)) {
for (SpeciesProtocol speciesProtocol : speciesProtocols) {
@@ -497,9 +512,7 @@
// get species referent taxon
Species species = allReferentSpeciesByTaxonId.get(taxonIdStr);
- // remove it from the combo box
- speciesComboBox.removeItem(species);
- benthosComboBox.removeItem(species);
+ speciesSet.add(species);
EditProtocolSpeciesRowModel row = EditProtocolSpeciesTableModel.newRow(sampleCategoryModel);
row.setSpecies(species);
@@ -521,6 +534,10 @@
row.setMandatorySampleCategoryId(Lists.newArrayList(speciesProtocol.getMandatorySampleCategoryId()));
result.add(row);
}
+
+ // remove once for all in comboboxes
+ speciesComboBox.removeItems(speciesSet);
+ benthosComboBox.removeItems(speciesSet);
}
if (CollectionUtils.isNotEmpty(lengthClassesPmfmId)) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -260,7 +260,10 @@
this.allReferentSpeciesByTaxonId = allReferentSpeciesByTaxonId;
if (allReferentSpeciesByTaxonId != null && allSpecies != null) {
allSynonyms = Lists.newArrayList(allSpecies);
- allSynonyms.removeAll(allReferentSpeciesByTaxonId.values());
+ // tchemit-2013-10-04 Do not do a removeAll (bad performance)
+ for (Species species : allReferentSpeciesByTaxonId.values()) {
+ allSynonyms.remove(species);
+ }
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -28,6 +28,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import fr.ifremer.tutti.LabelAware;
+import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.entities.TuttiEntity;
import fr.ifremer.tutti.persistence.entities.data.SampleCategory;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -1275,4 +1276,15 @@
title.append(" - ").append(suffix);
return title.toString();
}
+
+ protected void incrementsMessage(String message) {
+
+ TuttiActionUI actionUI = context.getActionUI();
+ if (actionUI != null) {
+ ProgressionModel progressionModel = actionUI.getModel().getProgressionModel();
+ if (progressionModel != null)
+
+ progressionModel.increments(message);
+ }
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -346,4 +346,16 @@
JOptionPane.WARNING_MESSAGE);
}
+ protected void createProgressionModelIfRequired(int total) {
+ ProgressionModel progressionModel = getProgressionModel();
+ if (progressionModel==null) {
+ progressionModel = new ProgressionModel();
+ progressionModel.setTotal(total);
+ progressionModel.setMessage("");
+ progressionModel.setCurrent(0);
+ setProgressionModel(progressionModel);
+ } else {
+ progressionModel.adaptTotal(total);
+ }
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -26,6 +26,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.TimeLog;
import javax.swing.AbstractAction;
import javax.swing.AbstractButton;
@@ -50,6 +51,8 @@
/** Logger. */
private static final Log log = LogFactory.getLog(TuttiUIAction.class);
+ private static final TimeLog TIME_LOG = new TimeLog(TuttiUIAction.class);
+
public static final ExecutorService waitingThread =
Executors.newSingleThreadExecutor();
@@ -59,6 +62,8 @@
private boolean wait;
+ private long t0;
+
public TuttiUIAction(AbstractButton button, A action) {
putValue(LOGIC_ACTION, action);
@@ -83,6 +88,8 @@
@Override
public final void actionPerformed(final ActionEvent event) {
+ t0 = TimeLog.getTime();
+
if (log.isInfoEnabled()) {
log.info("Task [" + getLogicAction().getClass().getSimpleName() + "] starting");
}
@@ -211,6 +218,7 @@
}
protected void unlock() {
+ TIME_LOG.log(t0, "Task [" + getLogicAction().getClass().getSimpleName() + "] End");
if (wait) {
synchronized (lock) {
lock.notifyAll();
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-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-10-04 07:14:17 UTC (rev 1274)
@@ -330,16 +330,10 @@
int oldRowIndex = selectedRowIndex;
int newRowIndex = source.getLeadSelectionIndex();
- if (e.getValueIsAdjusting()) {
+ R oldRow = rowMonitor.getBean();
+ if (oldRow == null || oldRowIndex != newRowIndex) {
- boolean skip = oldRowIndex == newRowIndex;
- if (skip) {
- return;
- }
-
- R oldRow = rowMonitor.getBean();
-
R newRow;
if (source.isSelectionEmpty()) {
@@ -349,9 +343,6 @@
newRow = getTableModel().getEntry(newRowIndex);
}
- // save selected entry if required
-// saveSelectedRowIfNeeded();
-
if (log.isInfoEnabled()) {
log.info("Will monitor entry: " + newRowIndex);
}
@@ -363,11 +354,7 @@
oldRow,
selectedRowIndex,
rowMonitor.getBean());
-
}
- else {
-// getTableModel().fireTableRowsUpdated(selectedRowIndex, selectedRowIndex);
- }
}
};
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-10-04 07:09:12 UTC (rev 1273)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-10-04 07:14:17 UTC (rev 1274)
@@ -117,14 +117,14 @@
tutti.config.option.tremieCarousselVessel.description=Navire ayant un carrousel et une trémie (ex. Thalassa)
tutti.config.option.ui.adminPassword.description=MD5 du mot de passe des zones sensibles
tutti.config.option.ui.autoPopupNumberEditor.description=Toujours afficher le pavé numérique lors de l'édition d'un nombre
-tutti.config.option.ui.color.alternateRow.description=
+tutti.config.option.ui.color.alternateRow.description=Couleur de fond des lignes paires (non sélectionnée) dans un tableau
tutti.config.option.ui.color.blockingLayer.description=Couleur utilisée pour bloquer l'interface lors d'une action longue
tutti.config.option.ui.color.cellWithValue.description=Couleur d'une cellule avec des données
tutti.config.option.ui.color.computedWeights.description=Couleur des données calculées
tutti.config.option.ui.color.rowInvalid.description=Ligne invalide
tutti.config.option.ui.color.rowReadOnly.description=Cellule non éditable
tutti.config.option.ui.color.rowToConfirm.description=Ligne à confirmer
-tutti.config.option.ui.color.selectedRow.description=
+tutti.config.option.ui.color.selectedRow.description=Couleur de fond d'une ligne sélectionnée dans un tableau
tutti.config.option.ui.config.file.description=Chemin du fichier de configuration des interfaces graphiques
tutti.config.option.ui.coordinateEditorType.description=Type de l'éditeur de coordonnées
tutti.config.option.ui.dateFormat.description=Format de dates
1
0
r1273 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service
by tchemit@users.forge.codelutin.com 04 Oct '13
by tchemit@users.forge.codelutin.com 04 Oct '13
04 Oct '13
Author: tchemit
Date: 2013-10-04 09:09:12 +0200 (Fri, 04 Oct 2013)
New Revision: 1273
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1273
Log:
remove old code
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java 2013-10-03 20:30:54 UTC (rev 1272)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java 2013-10-04 07:09:12 UTC (rev 1273)
@@ -547,37 +547,6 @@
}
referentSpeciesWithSurveyCode = service.getReferentSpeciesWithSurveyCode(getReferentSpecies());
-
-// if (isProtocolFilled()) {
-//
-// // get loaded protocol
-//
-// TuttiProtocol protocol = getProtocol();
-// Preconditions.checkNotNull(protocol,
-// "Could not find protocol in ui context");
-//
-// // fill available species from protocol
-// referentSpeciesWithSurveyCode = Lists.newArrayList();
-// if (!protocol.isSpeciesEmpty()) {
-//
-// // split by taxonId
-// Map<String, Species> map = TuttiEntities.splitByTaxonId(getReferentSpecies());
-//
-// for (SpeciesProtocol protocolSpecy : protocol.getSpecies()) {
-// String taxonId = String.valueOf(protocolSpecy.getSpeciesReferenceTaxonId());
-// Species species = map.get(taxonId);
-// species.setSurveyCode(protocolSpecy.getSpeciesSurveyCode());
-// referentSpeciesWithSurveyCode.add(species);
-// }
-// }
-//
-// } else {
-//
-// // no protocol, use default values
-// referentSpeciesWithSurveyCode = Lists.newArrayList(getReferentSpecies());
-// }
-//
-// referentSpeciesWithSurveyCode = Collections.unmodifiableList(referentSpeciesWithSurveyCode);
}
return referentSpeciesWithSurveyCode;
}
@@ -591,38 +560,6 @@
}
referentBenthosWithSurveyCode = service.getReferentBenthosWithSurveyCode(getReferentSpecies());
-
-// if (isProtocolFilled()) {
-//
-// // get loaded protocol
-//
-// TuttiProtocol protocol = getProtocol();
-// Preconditions.checkNotNull(protocol,
-// "Could not find protocol in ui context");
-//
-// // fill available species from protocol
-//
-// referentBenthosWithSurveyCode = Lists.newArrayList();
-// if (!protocol.isBenthosEmpty()) {
-//
-// // split by taxonId
-// Map<String, Species> map = TuttiEntities.splitByTaxonId(getReferentSpecies());
-//
-// for (SpeciesProtocol protocolSpecy : protocol.getBenthos()) {
-// String taxonId = String.valueOf(protocolSpecy.getSpeciesReferenceTaxonId());
-// Species species = map.get(taxonId);
-// species.setSurveyCode(protocolSpecy.getSpeciesSurveyCode());
-// referentBenthosWithSurveyCode.add(species);
-// }
-// }
-//
-// } else {
-//
-// // no protocol, use default values
-// referentBenthosWithSurveyCode = Lists.newArrayList(getReferentSpecies());
-// }
-//
-// referentBenthosWithSurveyCode = Collections.unmodifiableList(referentBenthosWithSurveyCode);
}
return referentBenthosWithSurveyCode;
}
@@ -632,7 +569,6 @@
if (log.isInfoEnabled()) {
log.info("Loading allSpecies");
}
-// species = service.getAllSpecies(protocol);
species = service.getAllSpecies();
}
return species;
@@ -710,30 +646,6 @@
log.info("Loading defaultIndividualObservationCaracteristics");
}
defaultIndividualObservationCaracteristics = service.getDefaultIndividualObservationCaracteristics();
-
-// List<Caracteristic> list;
-// if (isProtocolFilled()) {
-// List<String> individualObservationPmfmId = getProtocol().getIndividualObservationPmfmId();
-// if (CollectionUtils.isEmpty(individualObservationPmfmId)) {
-//
-// // no conf
-// list = Lists.newArrayList();
-//
-// } else {
-// list = Lists.newArrayListWithCapacity(individualObservationPmfmId.size());
-// for (String id : individualObservationPmfmId) {
-// Caracteristic caracteristic = service.getCaracteristic(Integer.valueOf(id));
-// list.add(caracteristic);
-// }
-// }
-//
-// } else {
-// // no default caracteristics to use
-// list = Lists.newArrayList();
-// }
-//
-// defaultIndividualObservationCaracteristics =
-// Collections.unmodifiableList(list);
}
return defaultIndividualObservationCaracteristics;
}
@@ -746,7 +658,6 @@
if (service != null) {
service.setProtocol(null);
}
-// protocol = null;
lengthStepCaracteristics = null;
defaultIndividualObservationCaracteristics = null;
}
1
0
03 Oct '13
Author: tchemit
Date: 2013-10-03 22:30:54 +0200 (Thu, 03 Oct 2013)
New Revision: 1272
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1272
Log:
refs #3331: [ERGO] - Lisibilit?\195?\169 des tableaux (captures, protocole) ajout des deux nouvelles couleurs
improve select for boolean column (still not work)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.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/content/config/TuttiConfigUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
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/SampleCategoryComponent.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/accidental/AccidentalBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
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/frequency/BenthosFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIModel.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/SpeciesBatchTableModel.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/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/protocol/EditProtocolUI.css
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/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.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_en_GB.properties
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/RunTutti.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -89,9 +89,6 @@
}
}
- UIManager.put("Table.focusCellHighlightBorder",
- new BorderUIResource.LineBorderUIResource(Color.BLACK));
-
boolean reload = false;
if (config.isFullLaunchMode()) {
@@ -127,6 +124,11 @@
context.open();
}
+ UIManager.put("Table.alternateRowColor", context.getConfig().getColorAlternateRow());
+ UIManager.put("Table[Disabled+Selected].textBackground", context.getConfig().getColorSelectedRow());
+ UIManager.put("Table[Enabled+Selected].textBackground", context.getConfig().getColorSelectedRow());
+ UIManager.put("Table.focusCellHighlightBorder", new BorderUIResource.LineBorderUIResource(Color.BLACK));
+
final MainUI mainUI = new MainUI(context);
context.addMessageNotifier(mainUI.getHandler());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -336,14 +336,14 @@
config.getServiceConfig().getPersistenceConfig().initConfig(getResourceLoader());
- // clean db cache (avoid a lots of headache :(
- File cacheDirectory = config.getServiceConfig().getPersistenceConfig().getCacheDirectory();
- if (cacheDirectory.exists()) {
- // clean cache directory (fix soem headaches...)
- TuttiIOUtil.cleanDirectory(
- cacheDirectory,
- _("tutti.db.deleteCache.error", cacheDirectory));
- }
+// // clean db cache (avoid a lots of headache :(
+// File cacheDirectory = config.getServiceConfig().getPersistenceConfig().getCacheDirectory();
+// if (cacheDirectory.exists()) {
+// // clean cache directory (fix soem headaches...)
+// TuttiIOUtil.cleanDirectory(
+// cacheDirectory,
+// _("tutti.db.deleteCache.error", cacheDirectory));
+// }
//--------------------------------------------------------------------//
// init i18n
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -255,6 +255,14 @@
return applicationConfig.getOptionAsColor(TuttiApplicationConfigOption.COLOR_BLOCKING_LAYER.getKey());
}
+ public Color getColorAlternateRow() {
+ return applicationConfig.getOptionAsColor(TuttiApplicationConfigOption.COLOR_ALTERNATE_ROW.getKey());
+ }
+
+ public Color getColorSelectedRow() {
+ return applicationConfig.getOptionAsColor(TuttiApplicationConfigOption.COLOR_SELECTED_ROW.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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -181,6 +181,23 @@
Color.class
),
+ COLOR_ALTERNATE_ROW(
+ "tutti.ui.color.alternateRow",
+ n_("tutti.config.option.ui.color.alternateRow.description"),
+ new Color(217, 217, 217).toString(),
+ Color.class
+ ),
+ COLOR_SELECTED_ROW(
+ "tutti.ui.color.selectedRow",
+ n_("tutti.config.option.ui.color.selectedRow.description"),
+ new Color(57,105,138).toString(),
+ Color.class
+ ),
+
+ /*
+ UIDefaults defaults = UIManager.getLookAndFeelDefaults();
+defaults.put("Table.alternateRowColor", new Color(217, 217, 217));
+ */
COLOR_BLOCKING_LAYER(
"tutti.ui.color.blockingLayer",
n_("tutti.config.option.ui.color.blockingLayer.description"),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -150,6 +150,8 @@
helper.addCategory(n_("tutti.config.category.ui"),
n_("tutti.config.category.ui.description"),
CALLBACK_UI)
+ .addOption(TuttiApplicationConfigOption.COLOR_SELECTED_ROW)
+ .addOption(TuttiApplicationConfigOption.COLOR_ALTERNATE_ROW)
.addOption(TuttiApplicationConfigOption.COLOR_ROW_INVALID)
.addOption(TuttiApplicationConfigOption.COLOR_ROW_READ_ONLY)
.addOption(TuttiApplicationConfigOption.COLOR_CELL_WITH_VALUE)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -346,8 +346,8 @@
FishingOperationsUIModel model = ui.getModel();
// edit new fishing operation
- if (log.isInfoEnabled()) {
- log.info("Edit fishingOperation: " + fishingOperation);
+ if (log.isDebugEnabled()) {
+ log.debug("Edit fishingOperation: " + fishingOperation);
}
// now fishing operation is edited
@@ -624,8 +624,7 @@
PersistenceService persistenceService =
getContext().getPersistenceService();
- progressionModel.increments("Loading catch batch for fishingOperation: " +
- operationId);
+ progressionModel.increments("Chargement de la capture");
boolean withCatchBath =
persistenceService.isFishingOperationWithCatchBatch(
@@ -681,8 +680,7 @@
boolean catchValid = true;
try {
- progressionModel.increments("Loading species batch for fishingOperation: " +
- operationId);
+ progressionModel.increments("Chargement des captures Espèces");
ui.getSpeciesTabContent().getHandler().selectFishingOperation(operationToLoad);
} catch (InvalidBatchModelException e) {
@@ -696,8 +694,7 @@
}
try {
- progressionModel.increments("Loading benthos batch for fishingOperation: " +
- operationId);
+ progressionModel.increments("Chargement des captures Benthos");
ui.getBenthosTabContent().getHandler().selectFishingOperation(operationToLoad);
} catch (InvalidBatchModelException e) {
@@ -713,16 +710,13 @@
// load other tabs
- progressionModel.increments("Loading marine lietterbatch for fishingOperation: " +
- operationId);
+ progressionModel.increments("Chargmenent des macro-déchets");
ui.getMarineLitterTabContent().getHandler().selectFishingOperation(operationToLoad);
- progressionModel.increments("Loading accidental batch for fishingOperation: " +
- operationId);
+ progressionModel.increments("Chargement des captures accidentelles");
ui.getAccidentalTabContent().getHandler().selectFishingOperation(operationToLoad);
- progressionModel.increments("Loading individual observation batch for fishingOperation: " +
- operationId);
+ progressionModel.increments("Chargement des données individuelles");
ui.getIndividualObservationTabContent().getHandler().selectFishingOperation(operationToLoad);
} else {
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -204,6 +204,7 @@
protected boolean onTabChanged(int currentIndex, int newIndex) {
ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI();
ui.getComputeSpeciesBatchButton().setVisible(newIndex < 4);
+ ui.getCleanSpeciesBatchButton().setVisible(newIndex < 3);
return super.onTabChanged(currentIndex, newIndex);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -25,8 +25,9 @@
*/
import fr.ifremer.tutti.persistence.entities.data.SampleCategory;
+import fr.ifremer.tutti.service.WeightUnit;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.service.WeightUnit;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.swing.editor.NumberEditor;
import org.nuiton.decorator.Decorator;
@@ -45,6 +46,7 @@
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
+import java.awt.Font;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.io.Serializable;
@@ -103,6 +105,8 @@
editor = new JPanel(new BorderLayout());
editor.add(BorderLayout.WEST, editorLabel = new JLabel());
editor.add(BorderLayout.CENTER, numberEditor);
+ editor.setOpaque(true);
+ editorLabel.setOpaque(true);
}
public NumberEditor getNumberEditor() {
@@ -133,6 +137,14 @@
String label = sampleCategory == null ? "-" :
categoryDecorator.toString(categoryValue);
+ if (isSelected) {
+
+ editorLabel.setFont(table.getFont().deriveFont(Font.BOLD));
+ editorLabel.setBackground(TuttiUIContext.getApplicationContext().getConfig().getColorSelectedRow());
+ } else {
+ editorLabel.setFont(table.getFont());
+ editorLabel.setBackground(null);
+ }
editorLabel.setText(label);
return editor;
}
@@ -237,7 +249,7 @@
Float number = sampleCategory.getCategoryWeight();
Float computedNumber = sampleCategory.getComputedWeight();
- text = "<html><span style='white-space: nowrap;'>" + categoryDecorator.toString(categoryValue) + " /";
+ text = "<span style='white-space: nowrap;'>" + categoryDecorator.toString(categoryValue) + " /";
if (sampleCategory.isSubSample()) {
text += "/";
@@ -260,7 +272,13 @@
text += "-";
}
- text += "</span></html>";
+ text += "</span>";
+
+ if (isSelected) {
+ text = "<strong>" + text + "</strong>";
+ }
+
+ text = "<html>" + text + "</html>";
}
}
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -35,6 +35,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.ValidationService;
+import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -45,7 +46,6 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
@@ -147,7 +147,6 @@
}
}
model.setRows(rows);
- recomputeBatchActionEnable();
}
protected AccidentalBatchRowModel loadBatch(AccidentalBatch aBatch) {
@@ -169,6 +168,21 @@
//------------------------------------------------------------------------//
@Override
+ protected void beforeOpenPopup(int rowIndex, int columnIndex) {
+ super.beforeOpenPopup(rowIndex, columnIndex);
+
+ boolean enableRemove = false;
+
+ if (rowIndex != -1) {
+
+ // there is a selected row
+ enableRemove = true;
+ }
+ AccidentalBatchUIModel model = getModel();
+ model.setRemoveBatchEnabled(enableRemove);
+ }
+
+ @Override
public AccidentalBatchTableModel getTableModel() {
return (AccidentalBatchTableModel) getTable().getModel();
}
@@ -194,9 +208,6 @@
Object newValue) {
recomputeRowValidState(row);
saveSelectedRowIfNeeded();
-
- // when row valid state has changed, recompute action enabled states
- recomputeBatchActionEnable();
}
@Override
@@ -210,6 +221,13 @@
log.info("Row " + row + " was modified, will save it");
}
+ String title = buildReminderLabelTitle(row.getSpecies(),
+ null,
+ "Sauvegarde de la capture accidentelle : ",
+ "Ligne :" + (getTableModel().getRowIndex(row) + 1));
+
+ showInformationMessage(title);
+
rowMonitor.setBean(null);
saveRow(row);
rowMonitor.setBean(row);
@@ -220,28 +238,6 @@
}
@Override
- protected void onRowValidStateChanged(int rowIndex,
- AccidentalBatchRowModel row,
- Boolean oldValue,
- Boolean newValue) {
- super.onRowValidStateChanged(rowIndex, row, oldValue, newValue);
-
- // when row valid state has changed, recompute action enabled states
- recomputeBatchActionEnable();
- }
-
- @Override
- protected void onAfterSelectedRowChanged(int oldRowIndex,
- AccidentalBatchRowModel oldRow,
- int newRowIndex,
- AccidentalBatchRowModel newRow) {
- super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
-
- // when selected row has changed, recompute action enabled states
- recomputeBatchActionEnable();
- }
-
- @Override
protected void addHighlighters(JXTable table) {
super.addHighlighters(table);
@@ -406,7 +402,6 @@
table.setColumnModel(columnModel);
initBatchTable(table, columnModel, tableModel);
- recomputeBatchActionEnable();
}
@Override
@@ -472,29 +467,12 @@
tableModel.addNewRow(newRow);
AbstractSelectTableAction.doSelectCell(getTable(), tableModel.getRowCount() - 1, 0);
}
-
- recomputeBatchActionEnable();
}
//------------------------------------------------------------------------//
//-- Internal methods --//
//------------------------------------------------------------------------//
- protected void recomputeBatchActionEnable() {
-
- int rowIndex = getTable().getSelectedRow();
-
- boolean enableRemove = false;
-
- if (rowIndex != -1) {
-
- // there is a selected row
- enableRemove = true;
- }
- AccidentalBatchUIModel model = getModel();
- model.setRemoveBatchEnabled(enableRemove);
- }
-
protected void saveRow(AccidentalBatchRowModel row) {
AccidentalBatch entityToSave = row.toEntity();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIModel.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIModel.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -55,9 +55,8 @@
}
public void setRemoveBatchEnabled(boolean removeBatchEnabled) {
- Object oldValue = isRemoveBatchEnabled();
this.removeBatchEnabled = removeBatchEnabled;
- firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, oldValue, removeBatchEnabled);
+ firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, null, removeBatchEnabled);
}
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -492,7 +492,7 @@
@Override
public void setSpeciesToConfirm(boolean speciesToConfirm) {
- Object oldValue = isSpeciesToConfirm();
+ boolean oldValue = isSpeciesToConfirm();
this.speciesToConfirm = speciesToConfirm;
firePropertyChange(PROPERTY_SPECIES_TO_CONFIRM, oldValue, speciesToConfirm);
}
@@ -606,12 +606,12 @@
@Override
public boolean isChildBatchsEmpty() {
- return childBatch.isEmpty();
+ return childBatch == null || childBatch.isEmpty();
}
@Override
public int sizeChildBatchs() {
- return childBatch.size();
+ return childBatch == null ? 0 : childBatch.size();
}
@Override
@@ -666,6 +666,8 @@
public void collectShell(Set<BenthosBatchRowModel> collectedRows) {
+ collectedRows.add(this);
+
if (!isBatchLeaf()) {
for (BenthosBatchRowModel batchChild : getChildBatch()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -141,6 +141,18 @@
}
@Override
+ protected void collectShell(BenthosBatchRowModel row,
+ Set<BenthosBatchRowModel> collectedRows) {
+ super.collectShell(row, collectedRows);
+
+ if (!row.isChildBatchsEmpty()) {
+ for (BenthosBatchRowModel child : row.getChildBatch()) {
+ collectShell(child, collectedRows);
+ }
+ }
+ }
+
+ @Override
public BenthosBatchRowModel createNewRow() {
BenthosBatchRowModel result =
new BenthosBatchRowModel(weightUnit, sampleCategoryModel);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2013-10-03 20:30:54 UTC (rev 1272)
@@ -133,7 +133,7 @@
#table {
selectionMode: {ListSelectionModel.MULTIPLE_INTERVAL_SELECTION};
- selectionBackground: {null};
+ /*selectionBackground: {null};*/
selectionForeground: {Color.BLACK};
sortable: false;
}
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -91,7 +91,6 @@
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.RowFilter;
-import javax.swing.UIManager;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
import java.awt.Color;
@@ -223,7 +222,7 @@
if (log.isDebugEnabled()) {
log.debug("Get species batch for fishingOperation: " +
- bean.getId());
+ bean.getId());
}
rows = Lists.newArrayList();
@@ -307,7 +306,7 @@
recomputeRowValidState(row);
- if (SpeciesBatchRowModel.PROPERTY_SAMPLE_CATEGORY_WEIGHT.equals(propertyName)) {
+ if (BenthosBatchRowModel.PROPERTY_SAMPLE_CATEGORY_WEIGHT.equals(propertyName)) {
// sampling category weight has changed, must then save the top
// ancestor row
@@ -327,8 +326,8 @@
if (log.isDebugEnabled()) {
log.debug("Sample category " + sampleCategoryId +
- " weight was modified, First ancestor row: " +
- firstAncestorIndex + " will save it");
+ " weight was modified, First ancestor row: " +
+ firstAncestorIndex + " will save it");
}
saveRow(firstAncestorRow);
@@ -339,6 +338,21 @@
// modified sample weight is a leaf
// will save it after
+ } else if (BenthosBatchRowModel.PROPERTY_SPECIES_TO_CONFIRM.equals(propertyName)) {
+
+ // update his shell
+
+ Set<BenthosBatchRowModel> shell = Sets.newHashSet();
+ row.collectShell(shell);
+
+ boolean newVal = newValue == null ? false : (Boolean) newValue;
+
+ for (BenthosBatchRowModel sampleCategories : shell) {
+ sampleCategories.setSpeciesToConfirm(newVal);
+ }
+
+ getTableModel().fireTableRowUpdatedShell(shell);
+
}
saveSelectedRowIfNeeded();
@@ -358,7 +372,7 @@
String title = buildReminderLabelTitle(row.getSpecies(),
row,
"Sauvegarde du lot Capture - Benthos : ",
- "Ligne :" + getTableModel().getRowIndex(row));
+ "Ligne :" + (getTableModel().getRowIndex(row) + 1));
showInformationMessage(title);
@@ -389,6 +403,17 @@
}
@Override
+ protected void onAfterSelectedRowChanged(int oldRowIndex, BenthosBatchRowModel oldRow, int newRowIndex, BenthosBatchRowModel newRow) {
+ super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+
+ if (log.isInfoEnabled()) {
+ log.info("After select row: " + newRowIndex);
+ }
+
+ saveSelectedRowIfNeeded();
+ }
+
+ @Override
protected void addHighlighters(JXTable table) {
super.addHighlighters(table);
@@ -397,25 +422,18 @@
// paint the cell in orange if the row is to confirm
Highlighter confirmHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate() {
+ new HighlightPredicate.AndHighlightPredicate(
+ new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.IS_SELECTED),
+ new HighlightPredicate() {
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- BenthosBatchRowModel row = getTableModel().getEntry(adapter.row);
- return row.isSpeciesToConfirm();
- }
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ BenthosBatchRowModel row = getTableModel().getEntry(adapter.row);
+ return row.isSpeciesToConfirm();
+ }
- }, toConfirmColor);
+ }), toConfirmColor);
table.addHighlighter(confirmHighlighter);
- // highlight only the species column if the row is selected
- Highlighter selectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- HighlightPredicate.IS_SELECTED,
- new HighlightPredicate.IdentifierHighlightPredicate(BenthosBatchTableModel.SPECIES)),
- UIManager.getColor("Table[Enabled+Selected].textBackground"));
-
- table.addHighlighter(selectedHighlighter);
-
// paint the cell in dark orange if the row is to confirm and the cell is not editable
Highlighter confirmNotEditableHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
new HighlightPredicate() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -32,6 +32,7 @@
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -40,7 +41,6 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import jaxx.runtime.SwingUtil;
@@ -50,14 +50,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.decorator.HighlightPredicate;
-import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
-import javax.swing.UIManager;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent;
@@ -81,8 +78,6 @@
private BenthosFrequencyCellComponent.FrequencyCellEditor frequencyEditor;
-// private TuttiProtocol protocol;
-
private Map<Integer, SpeciesProtocol> speciesProtocol;
private Map<String, Caracteristic> lengthStepCaracteristics;
@@ -336,20 +331,6 @@
}
@Override
- protected void addHighlighters(JXTable table) {
- super.addHighlighters(table);
-
- // highlight only the lengthstep column if the row is selected
- Highlighter selectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- HighlightPredicate.IS_SELECTED,
- new HighlightPredicate.IdentifierHighlightPredicate(BenthosFrequencyTableModel.LENGTH_STEP)),
- UIManager.getColor("Table[Enabled+Selected].textBackground"));
-
- table.addHighlighter(selectedHighlighter);
- }
-
- @Override
protected JComponent getComponentToFocus() {
return getUI().getLengthStepCaracteristicComboBox();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -227,6 +227,13 @@
log.debug("Row " + row + " was modified, will save it");
}
+ String title = buildReminderLabelTitle(row.getSpecies(),
+ null,
+ "Sauvegarde de Données individuelles : ",
+ "Ligne :" + (getTableModel().getRowIndex(row) + 1));
+
+ showInformationMessage(title);
+
rowMonitor.setBean(null);
saveRow(row);
rowMonitor.setBean(row);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -155,7 +155,7 @@
Decorator<Caracteristic> caracteristicTipDecorator =
getDecorator(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT);
- int index = 4;
+ int index = 6;
for (Caracteristic caracteristic : caracteristics) {
final CreateIndividualObservationBatchUIModel.CaracteristicMapPropertyEditor editorModel =
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -34,6 +34,7 @@
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.service.ValidationService;
+import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -43,7 +44,6 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
@@ -116,7 +116,7 @@
if (log.isDebugEnabled()) {
log.debug("Get marineLitter batch for fishingOperation: " +
- bean.getId());
+ bean.getId());
}
rows = Lists.newArrayList();
@@ -192,10 +192,17 @@
if (row != null && row.isValid() && rowMonitor.wasModified()) {
// monitored bean was modified, save it
- if (log.isInfoEnabled()) {
- log.info("Row " + row + " was modified, will save it");
+ if (log.isDebugEnabled()) {
+ log.debug("Row " + row + " was modified, will save it");
}
+ String title = buildReminderLabelTitle(decorate(row.getMarineLitterCategory()) + " - " + decorate(row.getMarineLitterSizeCategory()),
+ null,
+ "Sauvegarde du lot Macro déchet : ",
+ "Ligne :" + getTableModel().getRowIndex(row) + 1);
+
+ showInformationMessage(title);
+
rowMonitor.setBean(null);
saveRow(row);
rowMonitor.setBean(row);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIModel.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIModel.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -83,9 +83,8 @@
}
public void setRemoveBatchEnabled(boolean removeBatchEnabled) {
- Object oldValue = isRemoveBatchEnabled();
this.removeBatchEnabled = removeBatchEnabled;
- firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, oldValue, removeBatchEnabled);
+ firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, null, removeBatchEnabled);
}
public Multimap<CaracteristicQualitativeValue, CaracteristicQualitativeValue> getMarineLitterCategoriesUsed() {
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -268,7 +268,7 @@
@Override
public void setSpeciesToConfirm(boolean speciesToConfirm) {
- Object oldValue = isSpeciesToConfirm();
+ boolean oldValue = isSpeciesToConfirm();
editObject.setSpeciesToConfirm(speciesToConfirm);
firePropertyChange(PROPERTY_SPECIES_TO_CONFIRM, oldValue, speciesToConfirm);
}
@@ -379,12 +379,12 @@
@Override
public boolean isChildBatchsEmpty() {
- return childBatch.isEmpty();
+ return childBatch == null || childBatch.isEmpty();
}
@Override
public int sizeChildBatchs() {
- return childBatch.size();
+ return childBatch == null ? 0 : childBatch.size();
}
@Override
@@ -633,9 +633,10 @@
this.computedOrNotWeight = computedOrNotWeight;
}
-
public void collectShell(Set<SpeciesBatchRowModel> collectedRows) {
+ collectedRows.add(this);
+
if (!isBatchLeaf()) {
for (SpeciesBatchRowModel batchChild : getChildBatch()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -140,6 +140,18 @@
}
@Override
+ protected void collectShell(SpeciesBatchRowModel row,
+ Set<SpeciesBatchRowModel> collectedRows) {
+ super.collectShell(row, collectedRows);
+
+ if (!row.isChildBatchsEmpty()) {
+ for (SpeciesBatchRowModel child : row.getChildBatch()) {
+ collectShell(child, collectedRows);
+ }
+ }
+ }
+
+ @Override
public SpeciesBatchRowModel createNewRow() {
SpeciesBatchRowModel result =
new SpeciesBatchRowModel(weightUnit, sampleCategoryModel);
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-10-03 20:30:54 UTC (rev 1272)
@@ -133,7 +133,7 @@
#table {
selectionMode: {ListSelectionModel.MULTIPLE_INTERVAL_SELECTION};
- selectionBackground: {null};
+ /*selectionBackground: {null};*/
selectionForeground: {Color.BLACK};
sortable: false;
}
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -90,7 +90,6 @@
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.RowFilter;
-import javax.swing.UIManager;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
import java.awt.Color;
@@ -229,7 +228,7 @@
if (log.isDebugEnabled()) {
log.debug("Get species batch for fishingOperation: " +
- bean.getId());
+ bean.getId());
}
rows = Lists.newArrayList();
@@ -335,8 +334,8 @@
if (log.isDebugEnabled()) {
log.debug("Sample category " + sampleCategoryId +
- " weight was modified, First ancestor row: " +
- firstAncestorIndex + " will save it");
+ " weight was modified, First ancestor row: " +
+ firstAncestorIndex + " will save it");
}
saveRow(firstAncestorRow);
@@ -347,6 +346,21 @@
// modified sample weight is a leaf
// will save it after
+ } else if (SpeciesBatchRowModel.PROPERTY_SPECIES_TO_CONFIRM.equals(propertyName)) {
+
+ // update his shell
+
+ Set<SpeciesBatchRowModel> shell = Sets.newHashSet();
+ row.collectShell(shell);
+
+ boolean newVal = newValue == null ? false : (Boolean) newValue;
+
+ for (SpeciesBatchRowModel sampleCategories : shell) {
+ sampleCategories.setSpeciesToConfirm(newVal);
+ }
+
+ getTableModel().fireTableRowUpdatedShell(shell);
+
}
saveSelectedRowIfNeeded();
@@ -366,7 +380,7 @@
String title = buildReminderLabelTitle(row.getSpecies(),
row,
"Sauvegarde des modifications du lot Capture - Espèces : ",
- "Ligne :" + getTableModel().getRowIndex(row));
+ "Ligne :" + (getTableModel().getRowIndex(row) + 1));
showInformationMessage(title);
@@ -397,6 +411,17 @@
}
@Override
+ protected void onAfterSelectedRowChanged(int oldRowIndex, SpeciesBatchRowModel oldRow, int newRowIndex, SpeciesBatchRowModel newRow) {
+ super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+
+ if (log.isInfoEnabled()) {
+ log.info("After select row: " + newRowIndex);
+ }
+
+ saveSelectedRowIfNeeded();
+ }
+
+ @Override
protected void addHighlighters(JXTable table) {
super.addHighlighters(table);
@@ -405,25 +430,18 @@
// paint the cell in orange if the row is to confirm
Highlighter confirmHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate() {
+ new HighlightPredicate.AndHighlightPredicate(
+ new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.IS_SELECTED),
+ new HighlightPredicate() {
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- SpeciesBatchRowModel row = getTableModel().getEntry(adapter.row);
- return row.isSpeciesToConfirm();
- }
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ SpeciesBatchRowModel row = getTableModel().getEntry(adapter.row);
+ return row.isSpeciesToConfirm();
+ }
- }, toConfirmColor);
+ }), toConfirmColor);
table.addHighlighter(confirmHighlighter);
- // highlight only the species column if the row is selected
- Highlighter selectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- HighlightPredicate.IS_SELECTED,
- new HighlightPredicate.IdentifierHighlightPredicate(SpeciesBatchTableModel.SPECIES)),
- UIManager.getColor("Table[Enabled+Selected].textBackground"));
-
- table.addHighlighter(selectedHighlighter);
-
// paint the cell in dark orange if the row is to confirm and the cell is not editable
Highlighter confirmNotEditableHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
new HighlightPredicate() {
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -32,6 +32,7 @@
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -41,7 +42,6 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import jaxx.runtime.SwingUtil;
@@ -51,14 +51,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.decorator.HighlightPredicate;
-import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
-import javax.swing.UIManager;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent;
@@ -333,20 +330,6 @@
}
@Override
- protected void addHighlighters(JXTable table) {
- super.addHighlighters(table);
-
- // highlight only the lengthstep column if the row is selected
- Highlighter selectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(
- HighlightPredicate.IS_SELECTED,
- new HighlightPredicate.IdentifierHighlightPredicate(SpeciesFrequencyTableModel.LENGTH_STEP)),
- UIManager.getColor("Table[Enabled+Selected].textBackground"));
-
- table.addHighlighter(selectedHighlighter);
- }
-
- @Override
protected JComponent getComponentToFocus() {
return getUI().getLengthStepCaracteristicComboBox();
}
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-10-03 20:30:54 UTC (rev 1272)
@@ -88,7 +88,6 @@
}
#speciesTable {
- /*selectionMode: {ListSelectionModel.SINGLE_SELECTION};*/
/*selectionBackground: {null};*/
selectionForeground: {Color.BLACK};
sortable: false;
@@ -106,7 +105,6 @@
}
#benthosTable {
- /*selectionMode: {ListSelectionModel.SINGLE_SELECTION};*/
/*selectionBackground: {null};*/
selectionForeground: {Color.BLACK};
sortable: false;
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -42,7 +42,6 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.CloseableUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUI;
import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUIModel;
import jaxx.runtime.SwingUtil;
@@ -57,9 +56,6 @@
import org.jdesktop.swingx.JXTable;
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.DefaultTableColumnModelExt;
import org.nuiton.decorator.Decorator;
@@ -74,7 +70,6 @@
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableColumnModel;
-import java.awt.Component;
import java.awt.Dimension;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -241,7 +236,7 @@
}
}
- if (model.getLengthClassesPmfmId()==null) {
+ if (model.getLengthClassesPmfmId() == null) {
model.setLengthClassesPmfmId(Lists.<String>newArrayList());
}
@@ -686,30 +681,6 @@
});
}
- protected void addHighlighters(final JXTable table) {
- // paint in a special color for read only cells
- Highlighter readOnlyHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- HighlightPredicate.READ_ONLY, getConfig().getColorRowReadOnly());
- table.addHighlighter(readOnlyHighlighter);
-
- // paint in a special color inValid rows
- Highlighter validHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(HighlightPredicate.EDITABLE, new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
-
- boolean result = false;
- if (adapter.isEditable()) {
- EditProtocolSpeciesTableModel model = (EditProtocolSpeciesTableModel) table.getModel();
- EditProtocolSpeciesRowModel row = model.getEntry(adapter.row);
- result = !row.isValid();
- }
- return result;
- }
- }), getConfig().getColorRowInvalid());
- table.addHighlighter(validHighlighter);
- }
-
protected static class UpdateSelectedList implements PropertyChangeListener {
private final BeanDoubleListModel<Caracteristic> model;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -43,6 +43,7 @@
import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment;
import fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor;
import fr.ifremer.tutti.ui.swing.util.editor.TuttiComputedOrNotDataEditor;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.SwingUtil;
@@ -62,6 +63,10 @@
import org.jdesktop.swingx.JXTable;
import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor;
import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
+import org.jdesktop.swingx.decorator.ComponentAdapter;
+import org.jdesktop.swingx.decorator.FontHighlighter;
+import org.jdesktop.swingx.decorator.HighlightPredicate;
+import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.table.TableColumnExt;
import org.nuiton.decorator.Decorator;
import org.nuiton.decorator.JXPathDecorator;
@@ -455,6 +460,106 @@
}
}
+ protected void addHighlighters(final JXTable table) {
+
+ HighlightPredicate notSelectedPredicate = new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.IS_SELECTED);
+ HighlightPredicate rowIsValidPredicate = new HighlightPredicate() {
+ @Override
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+
+ boolean result = false;
+ if (adapter.isEditable()) {
+ AbstractTuttiTableModel model = (AbstractTuttiTableModel) table.getModel();
+ AbstractTuttiBeanUIModel row = (AbstractTuttiBeanUIModel) model.getEntry(adapter.row);
+ result = !row.isValid();
+ }
+ return result;
+ }
+ };
+
+ Highlighter selectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ HighlightPredicate.IS_SELECTED,
+ getConfig().getColorSelectedRow());
+ table.addHighlighter(selectedHighlighter);
+
+ // paint in a special color for read only cells (not selected)
+ Highlighter readOnlyHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.READ_ONLY,
+ notSelectedPredicate),
+ getConfig().getColorRowReadOnly());
+ table.addHighlighter(readOnlyHighlighter);
+
+ // paint in a special color for read only cells (selected)
+ Highlighter readOnlySelectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.READ_ONLY,
+ HighlightPredicate.IS_SELECTED),
+ getConfig().getColorRowReadOnly().darker());
+ table.addHighlighter(readOnlySelectedHighlighter);
+
+// Highlighter readOnlySelectedEvenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+// new HighlightPredicate.AndHighlightPredicate(
+// HighlightPredicate.READ_ONLY,
+// HighlightPredicate.ODD,
+// HighlightPredicate.IS_SELECTED),
+// getConfig().getColorSelectedRow().darker());
+// table.addHighlighter(readOnlySelectedEvenHighlighter);
+
+
+ // paint in a special color inValid rows (not selected)
+
+ Highlighter validHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.EDITABLE,
+ notSelectedPredicate,
+ rowIsValidPredicate),
+ getConfig().getColorRowInvalid());
+ table.addHighlighter(validHighlighter);
+
+ // paint in a special color inValid rows (selected)
+ Highlighter validSelectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.EDITABLE,
+ HighlightPredicate.IS_SELECTED,
+ rowIsValidPredicate),
+ getConfig().getColorRowInvalid().darker());
+ table.addHighlighter(validSelectedHighlighter);
+
+
+ // use configured color odd row (not for selected)
+ Highlighter evenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.ODD,
+ notSelectedPredicate,
+ HighlightPredicate.READ_ONLY),
+ getConfig().getColorAlternateRow().darker());
+ table.addHighlighter(evenHighlighter);
+
+ Highlighter evenNotReadOnlyHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.ODD,
+ notSelectedPredicate,
+ new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.READ_ONLY)),
+ getConfig().getColorAlternateRow());
+ table.addHighlighter(evenNotReadOnlyHighlighter);
+
+ // use configured color odd row (for selected)
+ Highlighter evenSelectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ HighlightPredicate.ODD,
+ HighlightPredicate.IS_SELECTED,
+ new HighlightPredicate.NotHighlightPredicate(HighlightPredicate.READ_ONLY)),
+ getConfig().getColorSelectedRow());
+ table.addHighlighter(evenSelectedHighlighter);
+
+
+ // paint in a special color inValid rows
+ Font font = table.getFont().deriveFont(Font.BOLD);
+ Highlighter selectHighlighter = new FontHighlighter(HighlightPredicate.IS_SELECTED, font);
+ table.addHighlighter(selectHighlighter);
+ }
+
public void openRowMenu(KeyEvent e, JPopupMenu popup) {
if (e.getKeyCode() == KeyEvent.VK_CONTEXT_MENU) {
@@ -1139,17 +1244,31 @@
}
protected String buildReminderLabelTitle(Species species,
- Iterable<SampleCategory<?>> categories,
- String prefix,
- String suffix) {
+ Iterable<SampleCategory<?>> categories,
+ String prefix,
+ String suffix) {
+ return buildReminderLabelTitle(
+ decorate(species),
+ categories,
+ prefix,
+ suffix);
+
+ }
+
+ protected String buildReminderLabelTitle(String species,
+ Iterable<SampleCategory<?>> categories,
+ String prefix,
+ String suffix) {
StringBuilder title = new StringBuilder(prefix);
- title.append(" - [").append(decorate(species)).append("]");
+ title.append(" - [").append(species).append("]");
- for (SampleCategory<?> sampleCategory : categories) {
- if (sampleCategory.getCategoryValue() != null) {
- title.append(" - ");
- title.append(decorate(sampleCategory.getCategoryValue()));
+ if (categories != null) {
+ for (SampleCategory<?> sampleCategory : categories) {
+ if (sampleCategory.getCategoryValue() != null) {
+ title.append(" - ");
+ title.append(decorate(sampleCategory.getCategoryValue()));
+ }
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -24,10 +24,10 @@
* #L%
*/
+import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.service.WeightUnit;
import jaxx.runtime.JAXXUtil;
import javax.swing.AbstractCellEditor;
@@ -241,6 +241,10 @@
hasFocus,
row,
column);
+
+ if (isSelected) {
+ font = font.deriveFont(Font.BOLD);
+ }
component.setFont(font);
component.setForeground(foreground);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.java 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -259,14 +259,33 @@
return result;
}
- protected final void fireTableCellUpdated(int rowIndex,
- ColumnIdentifier<R>... identifiers) {
+ public final void fireTableCellUpdated(int rowIndex,
+ ColumnIdentifier<R>... identifiers) {
for (ColumnIdentifier<R> identifier : identifiers) {
int columnIndex = this.identifiers.indexOf(identifier);
fireTableCellUpdated(rowIndex, columnIndex);
}
}
+ public final void fireTableRowUpdatedShell(Set<R> shell) {
+
+ int minRowIndex1 = getColumnCount();
+ int maxRowIndex1 = 0;
+
+ for (R r : shell) {
+ int rowIndex1 = getRowIndex(r);
+ minRowIndex1 = Math.min(minRowIndex1, rowIndex1);
+ maxRowIndex1 = Math.max(maxRowIndex1, rowIndex1);
+ }
+ fireTableRowsUpdated(minRowIndex1, maxRowIndex1);
+ }
+
+ protected void collectShell(R row, Set<R> collectedRows) {
+
+ // by default just add the incoming row
+ collectedRows.add(row);
+ }
+
protected ColumnIdentifier<R> getIdentifier(int columnIndex) {
ColumnIdentifier<R> identifier = identifiers.get(columnIndex);
return identifier;
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-10-03 20:30:54 UTC (rev 1272)
@@ -33,7 +33,6 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.editor.TuttiComputedOrNotDataTableCell.TuttiComputedOrNotDataTableCellEditor;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.editor.cell.NumberCellEditor;
@@ -42,9 +41,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.decorator.ComponentAdapter;
-import org.jdesktop.swingx.decorator.HighlightPredicate;
-import org.jdesktop.swingx.decorator.Highlighter;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
@@ -53,7 +49,6 @@
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
-import java.awt.Component;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent;
@@ -294,30 +289,6 @@
installTableSaveOnRowChangedSelectionListener();
}
- protected void addHighlighters(JXTable table) {
-
- // paint in a special color for read only cells
- Highlighter readOnlyHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- HighlightPredicate.READ_ONLY, getConfig().getColorRowReadOnly());
- table.addHighlighter(readOnlyHighlighter);
-
- // paint in a special color inValid rows
- Highlighter validHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
- new HighlightPredicate.AndHighlightPredicate(HighlightPredicate.EDITABLE, new HighlightPredicate() {
- @Override
- public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
-
- boolean result = false;
- if (adapter.isEditable()) {
- R row = getTableModel().getEntry(adapter.row);
- result = !row.isValid();
- }
- return result;
- }
- }), getConfig().getColorRowInvalid());
- table.addHighlighter(validHighlighter);
- }
-
//------------------------------------------------------------------------//
//-- Internal methods (listener methods) --//
//------------------------------------------------------------------------//
@@ -353,16 +324,20 @@
// need this for the first modification when no selection,
// otherwise monitor is set after the first alter, so won't be
// save directly...
- if (!e.getValueIsAdjusting()) {
- ListSelectionModel source = (ListSelectionModel) e.getSource();
- int oldRowIndex = selectedRowIndex;
- int newRowIndex = source.getLeadSelectionIndex();
- boolean skip = rowMonitor.getBean() != null &&
- oldRowIndex == newRowIndex;
+ ListSelectionModel source = (ListSelectionModel) e.getSource();
+
+ int oldRowIndex = selectedRowIndex;
+ int newRowIndex = source.getLeadSelectionIndex();
+
+ if (e.getValueIsAdjusting()) {
+
+
+ boolean skip = oldRowIndex == newRowIndex;
if (skip) {
return;
}
+
R oldRow = rowMonitor.getBean();
R newRow;
@@ -377,8 +352,8 @@
// save selected entry if required
// saveSelectedRowIfNeeded();
- if (log.isDebugEnabled()) {
- log.debug("Will monitor entry: " + newRow);
+ if (log.isInfoEnabled()) {
+ log.info("Will monitor entry: " + newRowIndex);
}
rowMonitor.setBean(newRow);
@@ -388,7 +363,11 @@
oldRow,
selectedRowIndex,
rowMonitor.getBean());
+
}
+ else {
+// getTableModel().fireTableRowsUpdated(selectedRowIndex, selectedRowIndex);
+ }
}
};
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-10-03 20:30:54 UTC (rev 1272)
@@ -116,12 +116,14 @@
tutti.config.option.tremieCarousselVessel.description=
tutti.config.option.ui.adminPassword.description=
tutti.config.option.ui.autoPopupNumberEditor.description=
+tutti.config.option.ui.color.alternateRow.description=
tutti.config.option.ui.color.blockingLayer.description=
tutti.config.option.ui.color.cellWithValue.description=
tutti.config.option.ui.color.computedWeights.description=
tutti.config.option.ui.color.rowInvalid.description=
tutti.config.option.ui.color.rowReadOnly.description=
tutti.config.option.ui.color.rowToConfirm.description=
+tutti.config.option.ui.color.selectedRow.description=
tutti.config.option.ui.config.file.description=
tutti.config.option.ui.coordinateEditorType.description=
tutti.config.option.ui.dateFormat.description=
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-10-03 12:05:44 UTC (rev 1271)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-10-03 20:30:54 UTC (rev 1272)
@@ -117,12 +117,14 @@
tutti.config.option.tremieCarousselVessel.description=Navire ayant un carrousel et une trémie (ex. Thalassa)
tutti.config.option.ui.adminPassword.description=MD5 du mot de passe des zones sensibles
tutti.config.option.ui.autoPopupNumberEditor.description=Toujours afficher le pavé numérique lors de l'édition d'un nombre
+tutti.config.option.ui.color.alternateRow.description=
tutti.config.option.ui.color.blockingLayer.description=Couleur utilisée pour bloquer l'interface lors d'une action longue
tutti.config.option.ui.color.cellWithValue.description=Couleur d'une cellule avec des données
tutti.config.option.ui.color.computedWeights.description=Couleur des données calculées
tutti.config.option.ui.color.rowInvalid.description=Ligne invalide
tutti.config.option.ui.color.rowReadOnly.description=Cellule non éditable
tutti.config.option.ui.color.rowToConfirm.description=Ligne à confirmer
+tutti.config.option.ui.color.selectedRow.description=
tutti.config.option.ui.config.file.description=Chemin du fichier de configuration des interfaces graphiques
tutti.config.option.ui.coordinateEditorType.description=Type de l'éditeur de coordonnées
tutti.config.option.ui.dateFormat.description=Format de dates
1
0
03 Oct '13
Author: tchemit
Date: 2013-10-03 14:05:44 +0200 (Thu, 03 Oct 2013)
New Revision: 1271
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1271
Log:
fixes #3319: [DONNEES INDIVIDUELLES] pouvoir copier les mensurations depuis la page ESPECES
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveAllIndividualObservationBatchAction.java
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
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/content/config/TuttiConfigUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveIndividualObservationBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -135,8 +135,8 @@
Preconditions.checkNotNull(bean);
Preconditions.checkState(TuttiEntities.isNew(bean));
Preconditions.checkNotNull(bean.getSpecies());
- Preconditions.checkNotNull(bean.getSize());
- Preconditions.checkNotNull(bean.getLengthStepCaracteristic());
+// Preconditions.checkNotNull(bean.getSize());
+// Preconditions.checkNotNull(bean.getLengthStepCaracteristic());
FishingOperation fishingOperation = bean.getFishingOperation();
Preconditions.checkNotNull(fishingOperation);
@@ -157,8 +157,8 @@
Preconditions.checkNotNull(bean);
Preconditions.checkState(!TuttiEntities.isNew(bean));
Preconditions.checkNotNull(bean.getSpecies());
- Preconditions.checkNotNull(bean.getSize());
- Preconditions.checkNotNull(bean.getLengthStepCaracteristic());
+// Preconditions.checkNotNull(bean.getSize());
+// Preconditions.checkNotNull(bean.getLengthStepCaracteristic());
FishingOperation fishingOperation = bean.getFishingOperation();
Preconditions.checkNotNull(fishingOperation);
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-10-03 12:05:44 UTC (rev 1271)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Wed Oct 02 19:41:03 CEST 2013
+#Thu Oct 03 13:39:06 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions
tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions
@@ -27,6 +27,7 @@
tutti.createIndividualObservationBatch.action.cancel.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.createIndividualObservationBatch.action.saveAndClose.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.createIndividualObservationBatch.action.saveAndContinue.help=editFishingOperation.html\#captureObservationsIndividuellesActions
+tutti.createIndividualObservationBatch.field.createFromBatch.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationSize.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationSpecies.help=editFishingOperation.html\#captureObservationsIndividuellesFields
@@ -190,6 +191,7 @@
tutti.editIndividualObservationBatch.action.createBatch.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.editIndividualObservationBatch.action.exportMultiPost.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.editIndividualObservationBatch.action.importMultiPost.help=editFishingOperation.html\#captureObservationsIndividuellesActions
+tutti.editIndividualObservationBatch.action.removeAllBatch.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.editIndividualObservationBatch.action.removeBatch.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.editIndividualObservationBatch.help=editFishingOperation.html\#captureObservationsIndividuelles
tutti.editMarineLitterBatch.action.createBatch.help=editFishingOperation.html\#captureMacroDechetsActions
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-10-03 12:05:44 UTC (rev 1271)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Wed Oct 02 19:41:03 CEST 2013
+#Thu Oct 03 13:39:06 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions
tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions
@@ -27,6 +27,7 @@
tutti.createIndividualObservationBatch.action.cancel.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.createIndividualObservationBatch.action.saveAndClose.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.createIndividualObservationBatch.action.saveAndContinue.help=editFishingOperation.html\#captureObservationsIndividuellesActions
+tutti.createIndividualObservationBatch.field.createFromBatch.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationSize.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationSpecies.help=editFishingOperation.html\#captureObservationsIndividuellesFields
@@ -190,6 +191,7 @@
tutti.editIndividualObservationBatch.action.createBatch.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.editIndividualObservationBatch.action.exportMultiPost.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.editIndividualObservationBatch.action.importMultiPost.help=editFishingOperation.html\#captureObservationsIndividuellesActions
+tutti.editIndividualObservationBatch.action.removeAllBatch.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.editIndividualObservationBatch.action.removeBatch.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.editIndividualObservationBatch.help=editFishingOperation.html\#captureObservationsIndividuelles
tutti.editMarineLitterBatch.action.createBatch.help=editFishingOperation.html\#captureMacroDechetsActions
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-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -279,6 +279,10 @@
return serviceConfig.getAccidentalCatchWeightUnit();
}
+ public int getMaxIndividualObservationRowsToCreate() {
+ return applicationConfig.getOptionAsInt(TuttiApplicationConfigOption.MAX_INDIVIDUAL_OBSERVATION_ROW_TO_CREATE.getKey());
+ }
+
public KeyStroke getShortCut(String actionName) {
KeyStroke result = applicationConfig.getOptionAsKeyStroke(
"tutti.ui." + actionName);
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-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -222,6 +222,12 @@
// "ifremer" by default
"ef399a6e6ec62c6e142440241a5b98f8",
String.class
+ ),
+ MAX_INDIVIDUAL_OBSERVATION_ROW_TO_CREATE(
+ "tutti.ui.max.individualObservationRowsToCreate",
+ n_("tutti.config.option.ui.individualObservationRowsToCreate.description"),
+ "10",
+ Integer.class
);
/** Configuration key. */
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -129,7 +129,8 @@
CALLBACK_APPLICATION)
.addOption(TuttiServiceConfigOption.CSV_SEPARATOR)
.addOption(TuttiApplicationConfigOption.UI_CONFIG_FILE)
- .addOption(TuttiApplicationConfigOption.TOTAL_SORTED_WEIGHTS_DIFFERENCE_RATE);
+ .addOption(TuttiApplicationConfigOption.TOTAL_SORTED_WEIGHTS_DIFFERENCE_RATE)
+ .addOption(TuttiApplicationConfigOption.MAX_INDIVIDUAL_OBSERVATION_ROW_TO_CREATE);
if (context.isDbLoaded()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-10-03 12:05:44 UTC (rev 1271)
@@ -77,4 +77,14 @@
_tuttiAction: {RemoveIndividualObservationBatchAction.class};
enabled: {model.isRemoveBatchEnabled()};
_help: {"tutti.editIndividualObservationBatch.action.removeBatch.help"};
+}
+
+#removeAllIndividualObservationBatchMenu {
+ actionIcon: batch-delete;
+ text: "tutti.editIndividualObservationBatch.action.removeAllBatch";
+ toolTipText: "tutti.editIndividualObservationBatch.action.removeAllBatch.tip";
+ i18nMnemonic: "tutti.editIndividualObservationBatch.action.removeAllBatch.mnemonic";
+ _tuttiAction: {RemoveAllIndividualObservationBatchAction.class};
+ enabled: {model.isRemoveBatchEnabled()};
+ _help: {"tutti.editIndividualObservationBatch.action.removeAllBatch.help"};
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-10-03 12:05:44 UTC (rev 1271)
@@ -73,6 +73,7 @@
<JPopupMenu id='tablePopup'>
<JMenuItem id='removeIndividualObservationBatchMenu'/>
+ <JMenuItem id='removeAllIndividualObservationBatchMenu'/>
</JPopupMenu>
<JPanel id='tableToolbar'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -29,21 +29,25 @@
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
+import fr.ifremer.tutti.persistence.entities.data.SampleCategory;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.ValidationService;
+import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.service.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
@@ -68,6 +72,7 @@
import org.nuiton.validator.NuitonValidatorResult;
import javax.swing.JComponent;
+import javax.swing.JOptionPane;
import java.awt.Color;
import java.awt.Component;
import java.io.Serializable;
@@ -77,6 +82,8 @@
import java.util.Map;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.4
@@ -97,6 +104,8 @@
*/
protected final WeightUnit weightUnit;
+ public final Integer PMFM_ID_SORTED_UNSORTED;
+
public IndividualObservationBatchUIHandler(TuttiUI<?, ?> parentUi, IndividualObservationBatchUI ui) {
super(parentUi, ui,
IndividualObservationBatchRowModel.PROPERTY_SPECIES,
@@ -105,12 +114,13 @@
IndividualObservationBatchRowModel.PROPERTY_LENGTH_STEP_CARACTERISTIC,
IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS,
IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS,
-// IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
-// IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
IndividualObservationBatchRowModel.PROPERTY_COMMENT,
IndividualObservationBatchRowModel.PROPERTY_ATTACHMENT);
weightUnit = getConfig().getIndividualObservationWeightUnit();
+
+ PMFM_ID_SORTED_UNSORTED =
+ persistenceService.getSortedUnsortedCaracteristic().getIdAsInt();
}
//------------------------------------------------------------------------//
@@ -132,7 +142,7 @@
if (log.isDebugEnabled()) {
log.debug("Get individualObservation batch for fishingOperation: " +
- bean.getId());
+ bean.getId());
}
rows = Lists.newArrayList();
@@ -152,32 +162,24 @@
}
}
- IndividualObservationBatchRowModel entry = loadBatch(aBatch);
+ IndividualObservationBatchRowModel entry =
+ new IndividualObservationBatchRowModel(
+ weightUnit,
+ aBatch,
+ getModel().getDefaultCaracteristic());
+
+ List<Attachment> attachments =
+ persistenceService.getAllAttachments(entry.getObjectType(),
+ entry.getObjectId());
+
+ entry.addAllAttachment(attachments);
rows.add(entry);
}
}
}
model.setRows(rows);
- recomputeBatchActionEnable();
}
- protected IndividualObservationBatchRowModel loadBatch(IndividualObservationBatch aBatch) {
-
- IndividualObservationBatchRowModel newRow =
- new IndividualObservationBatchRowModel(
- weightUnit,
- aBatch,
- getModel().getDefaultCaracteristic());
-
- List<Attachment> attachments =
- persistenceService.getAllAttachments(newRow.getObjectType(),
- newRow.getObjectId());
-
- newRow.addAllAttachment(attachments);
-
- return newRow;
- }
-
//------------------------------------------------------------------------//
//-- AbstractTuttiTableUIHandler methods --//
//------------------------------------------------------------------------//
@@ -210,8 +212,8 @@
saveSelectedRowIfNeeded();
- // when row valid state has changed, recompute action enabled states
- recomputeBatchActionEnable();
+// // when row valid state has changed, recompute action enabled states
+// recomputeBatchActionEnable();
}
@Override
@@ -221,8 +223,8 @@
if (row != null && row.isValid() && rowMonitor.wasModified()) {
// monitored bean was modified, save it
- if (log.isInfoEnabled()) {
- log.info("Row " + row + " was modified, will save it");
+ if (log.isDebugEnabled()) {
+ log.debug("Row " + row + " was modified, will save it");
}
rowMonitor.setBean(null);
@@ -234,29 +236,29 @@
}
}
- @Override
- protected void onRowValidStateChanged(int rowIndex,
- IndividualObservationBatchRowModel row,
- Boolean oldValue,
- Boolean newValue) {
- super.onRowValidStateChanged(rowIndex, row, oldValue, newValue);
+// @Override
+// protected void onRowValidStateChanged(int rowIndex,
+// IndividualObservationBatchRowModel row,
+// Boolean oldValue,
+// Boolean newValue) {
+// super.onRowValidStateChanged(rowIndex, row, oldValue, newValue);
+//
+// // when row valid state has changed, recompute action enabled states
+// recomputeBatchActionEnable();
+// }
- // when row valid state has changed, recompute action enabled states
- recomputeBatchActionEnable();
- }
+// @Override
+// protected void onAfterSelectedRowChanged(int oldRowIndex,
+// IndividualObservationBatchRowModel oldRow,
+// int newRowIndex,
+// IndividualObservationBatchRowModel newRow) {
+// super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+//
+// // when selected row has changed, recompute action enabled states
+// recomputeBatchActionEnable();
+// }
@Override
- protected void onAfterSelectedRowChanged(int oldRowIndex,
- IndividualObservationBatchRowModel oldRow,
- int newRowIndex,
- IndividualObservationBatchRowModel newRow) {
- super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
-
- // when selected row has changed, recompute action enabled states
- recomputeBatchActionEnable();
- }
-
- @Override
protected void addHighlighters(JXTable table) {
super.addHighlighters(table);
@@ -432,18 +434,6 @@
}
-// { // Calcified piece sampling code column
-//
-// addColumnToModel(columnModel,
-// IndividualObservationBatchTableModel.CALCIFIED_PIECE_SAMPLING_CODE);
-// }
-//
-// { // Sampling code column
-//
-// addColumnToModel(columnModel,
-// IndividualObservationBatchTableModel.SAMPLING_CODE);
-// }
-
{ // Comment column
addColumnToModel(columnModel,
@@ -469,10 +459,24 @@
table.setColumnModel(columnModel);
initBatchTable(table, columnModel, tableModel);
- recomputeBatchActionEnable();
}
@Override
+ protected void beforeOpenPopup(int rowIndex, int columnIndex) {
+ super.beforeOpenPopup(rowIndex, columnIndex);
+
+ boolean enableRemove = false;
+
+ if (rowIndex != -1) {
+
+ // there is a selected row
+ enableRemove = true;
+ }
+ IndividualObservationBatchUIModel model = getModel();
+ model.setRemoveBatchEnabled(enableRemove);
+ }
+
+ @Override
protected JComponent getComponentToFocus() {
return getUI().getTable();
}
@@ -520,45 +524,201 @@
IndividualObservationBatchTableModel tableModel = getTableModel();
- IndividualObservationBatchRowModel newRow = tableModel.createNewRow();
- newRow.setSpecies(model.getSpecies());
- newRow.setWeight(model.getWeight());
- newRow.setSize(model.getSize());
- newRow.setLengthStepCaracteristic(model.getLengthStepCaracteristic());
- newRow.getDefaultCaracteristics().putAll(model.getCaracteristics());
+ if (model.isCreateFromBatch()) {
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
- recomputeRowValidState(newRow);
+ SpeciesBatchUIModel speciesBatchUIModel = parent.getSpeciesTabContent().getModel();
- saveRow(newRow);
+ // get species rows to use (all leafs for the given species)
+ Species species = model.getSpecies();
+ List<SpeciesBatchRowModel> leafs =
+ speciesBatchUIModel.getLeafs(species);
- tableModel.addNewRow(newRow);
- AbstractSelectTableAction.doSelectCell(getTable(),
- tableModel.getRowCount() - 1,
- 0);
- }
+ List<IndividualObservationBatchRowModel> rowsToCreate = Lists.newArrayList();
- recomputeBatchActionEnable();
- }
+ CaracteristicMap defaultCaracteristics = new CaracteristicMap();
+ defaultCaracteristics.putAll(model.getCaracteristics());
- //------------------------------------------------------------------------//
- //-- Internal methods --//
- //------------------------------------------------------------------------//
+ for (SpeciesBatchRowModel leaf : leafs) {
- protected void recomputeBatchActionEnable() {
+ CaracteristicMap batchCaracteristics = new CaracteristicMap();
- int rowIndex = getTable().getSelectedRow();
+ for (SampleCategory<?> sampleCategory : leaf) {
+ if (PMFM_ID_SORTED_UNSORTED.equals(sampleCategory.getCategoryId())) {
+ // do not use vrac / hors vrac caracteristic ?
+ continue;
+ }
+ if (sampleCategory.getCategoryValue() == null) {
+ // not using this category
+ continue;
+ }
+ if (defaultCaracteristics.containsKey(sampleCategory.getCategoryDef().getCaracteristic())) {
- boolean enableRemove = false;
+ // use default caracteristics
+ defaultCaracteristics.put(sampleCategory.getCategoryDef().getCaracteristic(),
+ sampleCategory.getCategoryValue());
+ } else {
- if (rowIndex != -1) {
+ // use other caracteristics
+ batchCaracteristics.put(sampleCategory.getCategoryDef().getCaracteristic(),
+ sampleCategory.getCategoryValue());
+ }
- // there is a selected row
- enableRemove = true;
+ }
+
+ List<SpeciesFrequencyRowModel> frequencies = leaf.getFrequency();
+
+ if (CollectionUtils.isEmpty(frequencies)) {
+
+ // no frequency, create a simple row
+
+ int nbRow = TuttiEntities.getValueOrComputedValue(leaf.getNumber(), 0);
+
+ for (int i = 0; i < nbRow; i++) {
+ IndividualObservationBatchRowModel newRow = tableModel.createNewRow();
+ newRow.setSpecies(species);
+ newRow.getCaracteristics().putAll(batchCaracteristics);
+
+ //FIXME Keep this ?
+ newRow.getDefaultCaracteristics().putAll(defaultCaracteristics);
+ //FIXME Keep this?
+ newRow.setWeight(model.getWeight());
+ //FIXME Keep this?
+ newRow.setSize(model.getSize());
+ //FIXME Keep this?
+ newRow.setLengthStepCaracteristic(model.getLengthStepCaracteristic());
+
+ rowsToCreate.add(newRow);
+
+
+ }
+
+ } else {
+
+ for (SpeciesFrequencyRowModel frequency : frequencies) {
+
+ // create a row for each frequency
+
+ int nbRow = TuttiEntities.getValueOrComputedValue(frequency.getNumber(), 0);
+
+ float weight = TuttiEntities.getValueOrComputedValue(frequency.getWeight(), 0f);
+ if (nbRow > 0) {
+ weight /= nbRow;
+ }
+ for (int i = 0; i < nbRow; i++) {
+ IndividualObservationBatchRowModel newRow = tableModel.createNewRow();
+ newRow.setSpecies(species);
+ newRow.setWeight(weight);
+ newRow.setSize(frequency.getLengthStep());
+ newRow.setLengthStepCaracteristic(frequency.getLengthStepCaracteristic());
+
+ newRow.getCaracteristics().putAll(batchCaracteristics);
+ //FIXME Keep this ?
+ newRow.getDefaultCaracteristics().putAll(defaultCaracteristics);
+
+ rowsToCreate.add(newRow);
+ }
+ }
+ }
+ }
+
+
+ int nbRowsToCreate = rowsToCreate.size();
+
+ boolean create;
+
+ int maxIndividualObservationRowsToCreate =
+ getConfig().getMaxIndividualObservationRowsToCreate();
+
+ StringBuilder sb = new StringBuilder("<table>");
+
+ sb.append("<tr>");
+ sb.append("<th>").append(_("tutti.createIndividualObservationBatch.field.individualObservationSpecies")).append("</th>");
+ sb.append("<th>").append(_("tutti.createIndividualObservationBatch.field.individualObservationWeight")).append("</th>");
+ sb.append("<th>").append(_("tutti.createIndividualObservationBatch.field.individualObservationSize")).append("</th>");
+ sb.append("<th>").append(_("tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic")).append("</th>");
+ sb.append("</tr>");
+
+ String speciesStr = decorate(species);
+
+ for (IndividualObservationBatchRowModel rowModel : rowsToCreate) {
+ sb.append("<tr>");
+ sb.append("<td>").append(speciesStr).append("</td>");
+ sb.append("<td>").append(rowModel.getWeight()).append("</td>");
+ sb.append("<td>").append(rowModel.getSize()).append("</td>");
+ sb.append("<td>").append(decorate(rowModel.getLengthStepCaracteristic(), DecoratorService.CARACTERISTIC_WITH_UNIT)).append("</td>");
+ sb.append("</tr>");
+ }
+ sb.append("</table>");
+
+ if (maxIndividualObservationRowsToCreate < nbRowsToCreate) {
+
+ // ask confirmation
+
+ String htmlMessage = String.format(
+ CONFIRMATION_FORMAT,
+ _("tutti.createIndividualObservationBatch.confirm.message", speciesStr, nbRowsToCreate, sb.toString()),
+ _("tutti.createIndividualObservationBatch.confirm.help"));
+ int response = JOptionPane.showConfirmDialog(
+ getTopestUI(),
+ htmlMessage,
+ _("tutti.createIndividualObservationBatch.confirm.title"),
+ JOptionPane.OK_CANCEL_OPTION,
+ JOptionPane.WARNING_MESSAGE);
+
+
+ create = response == JOptionPane.OK_OPTION;
+ } else {
+
+ create = true;
+ }
+
+ if (create) {
+
+ if (log.isInfoEnabled()) {
+ log.info("Will create " + rowsToCreate.size() + " individual observation batches");
+ }
+
+ for (IndividualObservationBatchRowModel newRow : rowsToCreate) {
+
+ recomputeRowValidState(newRow);
+
+ saveRow(newRow);
+
+ tableModel.addNewRow(newRow);
+ }
+
+ AbstractSelectTableAction.doSelectCell(getTable(),
+ tableModel.getRowCount() - 1,
+ 0);
+ }
+
+ } else {
+
+ IndividualObservationBatchRowModel newRow = tableModel.createNewRow();
+ newRow.setSpecies(model.getSpecies());
+ newRow.setWeight(model.getWeight());
+ newRow.setSize(model.getSize());
+ newRow.setLengthStepCaracteristic(model.getLengthStepCaracteristic());
+ newRow.getDefaultCaracteristics().putAll(model.getCaracteristics());
+
+ recomputeRowValidState(newRow);
+
+ saveRow(newRow);
+
+ tableModel.addNewRow(newRow);
+ AbstractSelectTableAction.doSelectCell(getTable(),
+ tableModel.getRowCount() - 1,
+ 0);
+ }
}
- IndividualObservationBatchUIModel model = getModel();
- model.setRemoveBatchEnabled(enableRemove);
+
}
+ //------------------------------------------------------------------------//
+ //-- Internal methods --//
+ //------------------------------------------------------------------------//
+
protected void saveRow(IndividualObservationBatchRowModel row) {
IndividualObservationBatch entityToSave = row.toEntity();
@@ -585,10 +745,6 @@
FishingOperation fishingOperation = getModel().getFishingOperation();
entityToSave.setFishingOperation(fishingOperation);
- if (log.isInfoEnabled()) {
- log.info("Selected fishingOperation: " + fishingOperation.getId());
- }
-
if (TuttiEntities.isNew(entityToSave)) {
entityToSave = persistenceService.createIndividualObservationBatch(entityToSave);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -69,9 +69,8 @@
}
public void setRemoveBatchEnabled(boolean removeBatchEnabled) {
- Object oldValue = isRemoveBatchEnabled();
this.removeBatchEnabled = removeBatchEnabled;
- firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, oldValue, removeBatchEnabled);
+ firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, null, removeBatchEnabled);
}
public List<Caracteristic> getDefaultCaracteristic() {
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveAllIndividualObservationBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveAllIndividualObservationBatchAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveAllIndividualObservationBatchAction.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -0,0 +1,165 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation;
+
+/*
+ * #%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 com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.TuttiPersistence;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXTable;
+
+import javax.swing.JOptionPane;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Created on 10/3/13.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.7
+ */
+public class RemoveAllIndividualObservationBatchAction
+ extends AbstractTuttiAction<IndividualObservationBatchUIModel, IndividualObservationBatchUI, IndividualObservationBatchUIHandler> {
+
+ private static final Log log =
+ LogFactory.getLog(RemoveAllIndividualObservationBatchAction.class);
+
+ public RemoveAllIndividualObservationBatchAction(IndividualObservationBatchUIHandler handler) {
+ super(handler, false);
+ }
+
+ protected Species species;
+
+ protected List<Integer> rowIndexToRemove;
+
+ @Override
+ public boolean prepareAction() throws Exception {
+ boolean result = super.prepareAction();
+
+ rowIndexToRemove = null;
+ species = null;
+
+ int rowIndex = -1;
+
+ if (result) {
+ JXTable table = handler.getTable();
+
+ rowIndex = table.getSelectedRow();
+
+ Preconditions.checkState(rowIndex != -1,
+ "Cant remove batch if none is selected");
+ }
+
+ if (result) {
+
+ IndividualObservationBatchTableModel tableModel = handler.getTableModel();
+
+ IndividualObservationBatchRowModel entry = tableModel.getEntry(rowIndex);
+
+ species = entry.getSpecies();
+
+ rowIndexToRemove = Lists.newArrayList();
+
+ for (IndividualObservationBatchRowModel rowModel : tableModel.getRows()) {
+ if (species.equals(rowModel.getSpecies())) {
+ rowIndexToRemove.add(0, tableModel.getRowIndex(rowModel));
+ }
+ }
+
+ int answer = JOptionPane.showConfirmDialog(getContext().getActionUI(),
+ _("tutti.editIndividualObservationBatch.action.removeAllBatch.confirm.message", rowIndexToRemove.size(), decorate(species)),
+ _("tutti.editIndividualObservationBatch.action.removeAllBatch.confirm.title"),
+ JOptionPane.YES_NO_OPTION);
+ result = answer == JOptionPane.YES_OPTION;
+ }
+
+ return result;
+ }
+
+ @Override
+ public void doAction() throws Exception {
+
+ Preconditions.checkNotNull(rowIndexToRemove);
+ Preconditions.checkNotNull(species);
+
+ JXTable table = handler.getTable();
+
+ IndividualObservationBatchTableModel tableModel = handler.getTableModel();
+
+ for (Integer rowIndex : rowIndexToRemove) {
+ IndividualObservationBatchRowModel selectedBatch = tableModel.getEntry(rowIndex);
+
+ boolean persisted = !TuttiEntities.isNew(selectedBatch);
+
+ if (persisted) {
+
+ // remove it from db
+
+ String id = selectedBatch.getId();
+
+ if (log.isInfoEnabled()) {
+ log.info("Remove individual observation with id: " + id);
+ }
+
+ TuttiPersistence persistenceService =
+ getContext().getPersistenceService();
+
+ persistenceService.deleteIndividualObservationBatch(id);
+ }
+ }
+
+ }
+
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+
+ JXTable table = handler.getTable();
+
+ IndividualObservationBatchTableModel tableModel = handler.getTableModel();
+
+ for (Integer rowIndex : rowIndexToRemove) {
+ tableModel.removeRow(rowIndex);
+ }
+
+ if (!tableModel.getRows().isEmpty()) {
+
+ // select first row
+ AbstractSelectTableAction.doSelectCell(table, 0, 0);
+ }
+
+ if (table.isEditing()) {
+
+ // but no edit it
+ table.getCellEditor().stopCellEditing();
+ }
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveAllIndividualObservationBatchAction.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/individualobservation/RemoveIndividualObservationBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveIndividualObservationBatchAction.java 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveIndividualObservationBatchAction.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -88,7 +88,7 @@
String id = selectedBatch.getId();
if (log.isInfoEnabled()) {
- log.info("Remove marineLitter with id: " + id);
+ log.info("Remove individual observation with id: " + id);
}
TuttiPersistence persistenceService =
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-10-03 12:05:44 UTC (rev 1271)
@@ -49,6 +49,14 @@
data: {model.getAvailableSpecies()};
}
+#individualObservationCreateFromBatch {
+ text: "tutti.createIndividualObservationBatch.field.createFromBatch";
+ selected: {model.isSpeciesFromBatch() && model.isCreateFromBatch()};
+ enabled: {model.isSpeciesFromBatch()};
+ toolTipText: "tutti.createIndividualObservationBatch.field.createFromBatch.tip";
+ _help: {"tutti.createIndividualObservationBatch.field.createFromBatch.help"};
+}
+
#individualObservationWeightLabel {
text: "tutti.createIndividualObservationBatch.field.individualObservationWeight";
toolTipText: "tutti.createIndividualObservationBatch.field.individualObservationWeight.tip";
@@ -112,6 +120,17 @@
_help: {"tutti.createIndividualObservationBatch.action.saveAndClose.help"};
}
+/*
+#saveFromBatchAndCloseButton {
+ actionIcon: save;
+ text: "tutti.createIndividualObservationBatch.action.saveFromBatchAndClose";
+ toolTipText: "tutti.createIndividualObservationBatch.action.saveFromBatchAndClose.tip";
+ i18nMnemonic: "tutti.createIndividualObservationBatch.action.saveFromBatchAndClose.mnemonic";
+ enabled: {model.isValid() && model.isSpeciesFromBatch()};
+ _help: {"tutti.createIndividualObservationBatch.action.saveFromBatchAndClose.help"};
+}
+*/
+
#cancelButton {
actionIcon: cancel;
text: "tutti.createIndividualObservationBatch.action.cancel";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx 2013-10-03 12:05:44 UTC (rev 1271)
@@ -88,6 +88,14 @@
</cell>
</row>
+ <!-- Create from batch ? -->
+ <row>
+ <cell anchor='west' columns="3">
+ <JCheckBox id='individualObservationCreateFromBatch'
+ onItemStateChanged='handler.setBoolean(event, "createFromBatch")'/>
+ </cell>
+ </row>
+
<!-- IndividualObservation weight -->
<row>
<cell anchor='west'>
@@ -129,6 +137,7 @@
<JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
<JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
<JButton id='saveAndContinueButton' onActionPerformed='handler.saveAndContinue()'/>
+ <!--<JButton id='saveFromBatchAndCloseButton' onActionPerformed='handler.saveFromBatchAndClose()'/>-->
<JButton id='saveAndCloseButton' onActionPerformed='handler.saveAndClose()'/>
</JPanel>
</JPanel>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -316,13 +316,16 @@
List<Species> speciesListWithSurveyCode =
getDataContext().getReferentSpeciesWithSurveyCode();
+ List<Species> batchesSpeciesList = Lists.newArrayList();
+
List<Species> speciesList;
EditCatchesUI parent =
SwingUtil.getParentContainer(ui, EditCatchesUI.class);
List<SpeciesBatchRowModel> speciesRows =
parent.getSpeciesTabContent().getModel().getRows();
- if (CollectionUtils.isNotEmpty(speciesRows)) {
+ boolean withSpeciesBatch = CollectionUtils.isNotEmpty(speciesRows);
+ if (withSpeciesBatch) {
// use species from species batch
Set<Species> speciesSet = Sets.newHashSet();
@@ -333,6 +336,8 @@
}
}
+ batchesSpeciesList.addAll(speciesSet);
+
// plus readd the species filled here (individualObservations)
List<IndividualObservationBatchRowModel> rows = batchModel.getRows();
@@ -379,6 +384,8 @@
}
}
}
+
+ model.setBatchSpecies(batchesSpeciesList);
model.setAvailableSpecies(speciesList);
// set last species filled here
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -29,9 +29,8 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.jdesktop.beans.AbstractSerializableBean;
import java.io.Serializable;
@@ -45,10 +44,14 @@
private static final long serialVersionUID = 1L;
- private static final Log log = LogFactory.getLog(CreateIndividualObservationBatchUIModel.class);
-
public static final String PROPERTY_AVAILABLE_SPECIES = "availableSpecies";
+ public static final String PROPERTY_BATCH_SPECIES = "batchSpecies";
+
+ public static final String PROPERTY_SPECIES_FROM_BATCH = "speciesFromBatch";
+
+ public static final String PROPERTY_CREATE_FROM_BATCH = "createFromBatch";
+
public static final String PROPERTY_CARACTERISTICS = "caracteristics";
/**
@@ -59,6 +62,20 @@
protected List<Species> availableSpecies;
/**
+ * All species used in batches.
+ *
+ * @since 2.7
+ */
+ protected List<Species> batchSpecies;
+
+ /**
+ * Does we want to create rows from batch?
+ *
+ * @since 2.7
+ */
+ protected boolean createFromBatch;
+
+ /**
* Delegate edit object.
*
* @since 1.3
@@ -95,6 +112,7 @@
Object oldValue = getSpecies();
editObject.setSpecies(individualObservationSpecies);
firePropertyChange(IndividualObservationBatch.PROPERTY_SPECIES, oldValue, individualObservationSpecies);
+ firePropertyChange(PROPERTY_SPECIES_FROM_BATCH, null, isSpeciesFromBatch());
}
public Float getWeight() {
@@ -139,21 +157,41 @@
}
public List<Species> getAvailableSpecies() {
- if (log.isDebugEnabled()) {
- log.debug("getAvailableSpecies " + availableSpecies);
- }
return availableSpecies;
}
public void setAvailableSpecies(List<Species> availableSpecies) {
-
- if (log.isDebugEnabled()) {
- log.debug("setAvailableSpecies " + availableSpecies);
- }
this.availableSpecies = availableSpecies;
firePropertyChange(PROPERTY_AVAILABLE_SPECIES, null, availableSpecies);
}
+ public List<Species> getBatchSpecies() {
+ return batchSpecies;
+ }
+
+ public boolean isSpeciesFromBatch() {
+ return CollectionUtils.isNotEmpty(batchSpecies) &&
+ getSpecies() != null &&
+ batchSpecies.contains(getSpecies());
+ }
+
+ public void setBatchSpecies(List<Species> batchSpecies) {
+ this.batchSpecies = batchSpecies;
+ firePropertyChange(PROPERTY_BATCH_SPECIES, null, batchSpecies);
+ firePropertyChange(PROPERTY_SPECIES_FROM_BATCH, null, isSpeciesFromBatch());
+ setCreateFromBatch(isCreateFromBatch());
+ }
+
+ public boolean isCreateFromBatch() {
+ return createFromBatch;
+ }
+
+ public void setCreateFromBatch(boolean createFromBatch) {
+ Object oldValue = isCreateFromBatch();
+ this.createFromBatch = createFromBatch;
+ firePropertyChange(PROPERTY_CREATE_FROM_BATCH, oldValue, createFromBatch);
+ }
+
@Override
protected IndividualObservationBatch newEntity() {
return IndividualObservationBatchs.newIndividualObservationBatch();
@@ -161,6 +199,7 @@
public void reset() {
setAvailableSpecies(Lists.<Species>newArrayList());
+ setBatchSpecies(Lists.<Species>newArrayList());
setSpecies(null);
setWeight(null);
setSize(null);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-10-03 12:05:44 UTC (rev 1271)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -34,6 +35,8 @@
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import org.apache.commons.collections.CollectionUtils;
+import java.util.List;
+
import static org.nuiton.i18n.I18n.n_;
/**
@@ -379,4 +382,28 @@
public String getIcon() {
return null;
}
+
+ public List<SpeciesBatchRowModel> getLeafs(Species species) {
+ List<SpeciesBatchRowModel> result = Lists.newArrayList();
+ for (SpeciesBatchRowModel rowModel : getRows()) {
+ if (rowModel.isBatchRoot()) {
+ getLeafs(species, rowModel, result);
+ }
+ }
+ return result;
+ }
+
+ public void getLeafs(Species species, SpeciesBatchRowModel rowModel, List<SpeciesBatchRowModel> used) {
+
+ if (rowModel.isBatchLeaf()) {
+
+ if (species.equals(rowModel.getSpecies())) {
+ used.add(rowModel);
+ }
+ } else {
+ for (SpeciesBatchRowModel child : rowModel.getChildBatch()) {
+ getLeafs(species, child, used);
+ }
+ }
+ }
}
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml 2013-10-03 12:05:44 UTC (rev 1271)
@@ -35,27 +35,49 @@
</field>
<field name="weight">
- <field-validator type="required" short-circuit="true">
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ weight != null || createFromBatch ]]></param>
<message>
tutti.validator.error.createIndividualObservationBatch.weight.required
</message>
</field-validator>
+
+ <!--field-validator type="required" short-circuit="true">
+ <message>
+ tutti.validator.error.createIndividualObservationBatch.weight.required
+ </message>
+ </field-validator-->
</field>
<field name="size">
- <field-validator type="required" short-circuit="true">
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ size != null || createFromBatch ]]></param>
<message>
tutti.validator.error.createIndividualObservationBatch.size.required
</message>
</field-validator>
+ <!--field-validator type="required" short-circuit="true">
+ <message>
+ tutti.validator.error.createIndividualObservationBatch.size.required
+ </message>
+ </field-validator-->
</field>
<field name="lengthStepCaracteristic">
- <field-validator type="required" short-circuit="true">
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ lengthStepCaracteristic != null || createFromBatch ]]></param>
<message>
tutti.validator.error.createIndividualObservationBatch.lengthStepCaracteristic.required
</message>
</field-validator>
+ <!--field-validator type="required" short-circuit="true">
+ <message>
+ tutti.validator.error.createIndividualObservationBatch.lengthStepCaracteristic.required
+ </message>
+ </field-validator-->
</field>
</validators>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-10-03 12:05:44 UTC (rev 1271)
@@ -125,6 +125,7 @@
tutti.config.option.ui.config.file.description=
tutti.config.option.ui.coordinateEditorType.description=
tutti.config.option.ui.dateFormat.description=
+tutti.config.option.ui.individualObservationRowsToCreate.description=
tutti.config.option.ui.shortcut.closePopup.description=
tutti.config.option.ui.showNumberEditorButton.description=
tutti.config.option.ui.weight.unit.accidentalCatch.description=
@@ -204,6 +205,11 @@
tutti.createIndividualObservationBatch.action.saveAndContinue=
tutti.createIndividualObservationBatch.action.saveAndContinue.mnemonic=
tutti.createIndividualObservationBatch.action.saveAndContinue.tip=
+tutti.createIndividualObservationBatch.confirm.help=
+tutti.createIndividualObservationBatch.confirm.message=
+tutti.createIndividualObservationBatch.confirm.title=
+tutti.createIndividualObservationBatch.field.createFromBatch=
+tutti.createIndividualObservationBatch.field.createFromBatch.tip=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.tip=
tutti.createIndividualObservationBatch.field.individualObservationSize=
@@ -212,6 +218,8 @@
tutti.createIndividualObservationBatch.field.individualObservationSpecies.tip=
tutti.createIndividualObservationBatch.field.individualObservationWeight=
tutti.createIndividualObservationBatch.field.individualObservationWeight.tip=
+tutti.createIndividualObservationBatch.help=
+tutti.createIndividualObservationBatch.message=
tutti.createIndividualObservationBatch.title=
tutti.createMarineLitterBatch.action.cancel=
tutti.createMarineLitterBatch.action.cancel.mnemonic=
@@ -731,6 +739,11 @@
tutti.editIndividualObservationBatch.action.importMultiPost.sourceFile.title=
tutti.editIndividualObservationBatch.action.importMultiPost.success=
tutti.editIndividualObservationBatch.action.importMultiPost.tip=
+tutti.editIndividualObservationBatch.action.removeAllBatch=
+tutti.editIndividualObservationBatch.action.removeAllBatch.confirm.message=
+tutti.editIndividualObservationBatch.action.removeAllBatch.confirm.title=
+tutti.editIndividualObservationBatch.action.removeAllBatch.mnemonic=
+tutti.editIndividualObservationBatch.action.removeAllBatch.tip=
tutti.editIndividualObservationBatch.action.removeBatch=
tutti.editIndividualObservationBatch.action.removeBatch.confirm.message=
tutti.editIndividualObservationBatch.action.removeBatch.confirm.title=
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-10-03 09:07:04 UTC (rev 1270)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-10-03 12:05:44 UTC (rev 1271)
@@ -126,6 +126,7 @@
tutti.config.option.ui.config.file.description=Chemin du fichier de configuration des interfaces graphiques
tutti.config.option.ui.coordinateEditorType.description=Type de l'éditeur de coordonnées
tutti.config.option.ui.dateFormat.description=Format de dates
+tutti.config.option.ui.individualObservationRowsToCreate.description=Nombre maximum de données individuelles à créer sans demande de confirmation
tutti.config.option.ui.shortcut.closePopup.description=Fermer une popup
tutti.config.option.ui.showNumberEditorButton.description=Afficher le pavé numérique de saisie
tutti.config.option.ui.weight.unit.accidentalCatch.description=Unité de poids à utiliser dans la saisies des captures accidentelles
@@ -205,6 +206,11 @@
tutti.createIndividualObservationBatch.action.saveAndContinue=Créer et Continuer
tutti.createIndividualObservationBatch.action.saveAndContinue.mnemonic=C
tutti.createIndividualObservationBatch.action.saveAndContinue.tip=Créer et saisir une nouvelle observation indidivuelle
+tutti.createIndividualObservationBatch.confirm.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour rester sur cet écran et annuler la création</li><li><strong>Ok</strong> pour confirmer la création des données individuellesd</li></ul>
+tutti.createIndividualObservationBatch.confirm.message=Vous avez demandé la création des données individuelles pour l'espèce %s depuis les captures saisies.<br/>%s données vont être créées \: %s
+tutti.createIndividualObservationBatch.confirm.title=Confirmer la création des données individuelles
+tutti.createIndividualObservationBatch.field.createFromBatch=Créer les données depuis les captures
+tutti.createIndividualObservationBatch.field.createFromBatch.tip=Utiliser les données saisies dans les captures pour créer les données individuelles
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic=Classe de taille
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.tip=Classe de taille
tutti.createIndividualObservationBatch.field.individualObservationSize=Taille
@@ -731,6 +737,11 @@
tutti.editIndividualObservationBatch.action.importMultiPost.sourceFile.title=Importer des lots d'observations individuelles
tutti.editIndividualObservationBatch.action.importMultiPost.success=Des lots d'observations individuelles ont été importés depuis le fichier %s
tutti.editIndividualObservationBatch.action.importMultiPost.tip=Importer des observations créées sur un poste satellite
+tutti.editIndividualObservationBatch.action.removeAllBatch=Supprimer l'espèce
+tutti.editIndividualObservationBatch.action.removeAllBatch.confirm.message=<html>Vous êtes sur le point de supprimer toutes les observations individuelles (%s entrées) pour l'espèce %s.<hr/>Êtes-vous sur de vouloir les supprimer ?</html>
+tutti.editIndividualObservationBatch.action.removeAllBatch.confirm.title=Suppression des observations individuelles d'une espèce
+tutti.editIndividualObservationBatch.action.removeAllBatch.mnemonic=E
+tutti.editIndividualObservationBatch.action.removeAllBatch.tip=Supprimer toutes les lignes de l'espèce sélectionnée
tutti.editIndividualObservationBatch.action.removeBatch=Supprimer la ligne sélectionnée
tutti.editIndividualObservationBatch.action.removeBatch.confirm.message=<html>Vous êtes sur le point de supprimer une observation individuelle.<hr/>Êtes-vous sur de vouloir la supprimer ?</html>
tutti.editIndividualObservationBatch.action.removeBatch.confirm.title=Suppression d'une observation individuelle
1
0