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
- 4058 discussions
See <http://ci.nuiton.org/jenkins/job/tutti/467/changes>
Changes:
[Tony Chemit] add more methods to TuttiIOUtil
------------------------------------------
[...truncated 331 lines...]
2013-03-09 09:03:19,518 673 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,522 677 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,529 684 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,532 687 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,536 691 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,539 694 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,547 702 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,550 705 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,550 705 [main] INFO fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService - Will import species from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-09 09:03:19,552 707 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.referential.Species - fr.ifremer.tutti.persistence.entities.referential.Species > [null] , will create a new default one.
2013-03-09 09:03:19,558 713 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-03-09 09:03:19,562 717 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-03-09 09:03:19,562 717 [main] INFO fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService - Will import gears from file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/surefi…>
2013-03-09 09:03:19,565 720 [main] INFO org.nuiton.util.beans.BinderFactory - No binder model found for <fr.ifremer.tutti.persistence.entities.referential.Gear - fr.ifremer.tutti.persistence.entities.referential.Gear > [null] , will create a new default one.
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.255 sec
Results :
Tests run: 15, Failures: 0, Errors: 0, Skipped: 0
mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.13(default-test)
[JENKINS] Recording test results
mojoStarted org.apache.maven.plugins:maven-jar-plugin:2.4(default-jar)
[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-…>
mojoSucceeded org.apache.maven.plugins:maven-jar-plugin:2.4(default-jar)
mojoStarted org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ tutti-service ---
mojoSucceeded org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
mojoStarted org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
[INFO]
[INFO] --- maven-install-plugin:2.4: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/1.1-SNAPSHOT/tutti-service-1.1-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/1.1-SNAPSHOT/tutti-service-1.1-SNAPSHOT.pom
mojoSucceeded org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
projectSucceeded fr.ifremer.tutti:tutti-service:1.1-SNAPSHOT
projectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 1.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 4.5 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (2 KB at 4.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (7 KB at 170.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.12-…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.… (808 B at 8.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.12-… (808 B at 7.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (62 KB at 1298.0 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru… (2 KB at 35.1 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 22.3 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 14.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 11.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 29.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (2 KB at 15.6 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (5 KB at 77.8 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va… (2 KB at 43.6 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 37.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (432 KB at 4594.8 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.12-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.12-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 43.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 31.9 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 27 modified jaxx file(s).
[WARNING] JAXX detects 3 warnings :
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLatitudeLabel' : [_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLongitudeLabel' : [_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'toolTipText' in component 'trawlDistanceField' : [model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null]
[INFO] Generated 27 file(s) in 19.393s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.12-SNAPSHOT(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserValidation (scan-sources) @ tutti-ui-swing ---
[INFO] Load rules file validation.rules
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-ui-swing ---
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 2/592 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:collect-i18n-artifacts (collect-i18n-artifacts) @ tutti-ui-swing ---
[INFO] collected 12 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/i18n/…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:bundle (make-bundle) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 2/857 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:update-project-license (attach-licenses) @ tutti-ui-swing ---
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:add-third-party (attach-licenses) @ tutti-ui-swing ---
[WARNING] No license name defined for org.hibernate.javax.persistence--hibernate-jpa-2.0-api--1.0.1.Final
[INFO] Load missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…>
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO] Using 'UTF-8' encoding to copy filtered resources.
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Copying 79 resources
[INFO] Copying 2 resources
[INFO] Copying 4 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-ui-swing ---
[INFO] Compiling 218 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/class…>
[INFO] -------------------------------------------------------------
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
[INFO] 1 error
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [21.728s]
[INFO] Tutti :: Persistence .............................. SUCCESS [30.915s]
[INFO] Tutti :: Service .................................. SUCCESS [4.354s]
[INFO] Tutti :: UI ....................................... FAILURE [36.862s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:37.902s
[INFO] Finished at: Sat Mar 09 09:03:56 CET 2013
[INFO] Final Memory: 58M/177M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: fr.ifremer:tutti:1.1-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-persistence:1.1-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-service:1.1-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml]>
[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-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-service/1.1-SNAPSHOT/tutti-service-1.1-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-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-service/1.1-SNAPSHOT/tutti-service-1.1-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-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-ui-swing/1.1-SNAPSHOT/tutti-ui-swing-1.1-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-ui-swing/1.1-SNAPSHOT/tutti-ui-swing-1.1-SNAPSHOT-third-party.properties
[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-03-09_09-02-09/archive/fr.ifremer/tutti/1.1-SNAPSHOT/tutti-1.1-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-1.1-SNAPSHOT-s…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-09_09-02-09/archive/fr.ifremer/tutti/1.1-SNAPSHOT/tutti-1.1-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-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-persistence/1.1-SNAPSHOT/tutti-persistence-1.1-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-03-09_09-02-09/archive/fr.ifremer.tutti/tutti-persistence/1.1-SNAPSHOT/tutti-persistence-1.1-SNAPSHOT.jar
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project tutti-ui-swing: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
cause : Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project tutti-ui-swing: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
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:601)
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:158)
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$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:729)
at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 27 more
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com
channel stopped
1
2
09 Mar '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/467/>
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 1.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 4.5 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (2 KB at 4.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (7 KB at 170.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.12-…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.… (808 B at 8.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.12-… (808 B at 7.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (62 KB at 1298.0 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru… (2 KB at 35.1 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 22.3 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 14.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 11.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 29.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (2 KB at 15.6 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (5 KB at 77.8 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va… (2 KB at 43.6 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 37.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (432 KB at 4594.8 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.12-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.12-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 43.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 31.9 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 27 modified jaxx file(s).
[WARNING] JAXX detects 3 warnings :
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLatitudeLabel' : [_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLongitudeLabel' : [_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'toolTipText' in component 'trawlDistanceField' : [model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null]
[INFO] Generated 27 file(s) in 19.393s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.12-SNAPSHOT(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserValidation (scan-sources) @ tutti-ui-swing ---
[INFO] Load rules file validation.rules
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-ui-swing ---
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 2/592 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:collect-i18n-artifacts (collect-i18n-artifacts) @ tutti-ui-swing ---
[INFO] collected 12 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:bundle (make-bundle) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 2/857 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:update-project-license (attach-licenses) @ tutti-ui-swing ---
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:add-third-party (attach-licenses) @ tutti-ui-swing ---
[WARNING] No license name defined for org.hibernate.javax.persistence--hibernate-jpa-2.0-api--1.0.1.Final
[INFO] Load missing file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO] Using 'UTF-8' encoding to copy filtered resources.
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Copying 79 resources
[INFO] Copying 2 resources
[INFO] Copying 4 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-ui-swing ---
[INFO] Compiling 218 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] -------------------------------------------------------------
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[412,10] error: exception IOException is never thrown in body of corresponding try statement
[INFO] 1 error
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.1-SNAPSHOT
1
2
09 Mar '13
Author: tchemit
Date: 2013-03-09 14:59:14 +0100 (Sat, 09 Mar 2013)
New Revision: 567
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/567
Log:
fixes #1715: [AIDE] - Aide modifiable sans recompilation (socle technique mis en place)
refs #1843: [AIDE] - Aide par champ (j'ai commenc?\195?\169, il faut passer sur tous les champs des ?\195?\169crans et fournit le fichier ?\195?\160 traduire ?\195?\160 l'ifremer)
fixes #2110: [ERGO] Am?\195?\169lioration des actions sur les pi?\195?\168ces-jointes
fixes #2111: [ERGO] Ajout d'une action pour fermer la fen?\195?\170tre de rapport des contr?\195?\180les
Added:
trunk/tutti-ui-swing/src/main/assembly/help.xml
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/help/
trunk/tutti-ui-swing/src/main/help/editCatchBatch.html
trunk/tutti-ui-swing/src/main/help/editCruise.html
trunk/tutti-ui-swing/src/main/help/editFishingOperation.html
trunk/tutti-ui-swing/src/main/help/editProgram.html
trunk/tutti-ui-swing/src/main/help/editProtocol.html
trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html
trunk/tutti-ui-swing/src/main/help/fishingOperations.html
trunk/tutti-ui-swing/src/main/help/main.html
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java
trunk/tutti-ui-swing/src/main/resources/icons/action-close-dialog.png
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditor.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachmentEditor.java
Modified:
trunk/pom.xml
trunk/src/update/update-tutti.properties
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/main/assembly/tutti-full-component.xml
trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.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/MainUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.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/BenthosBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionException.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/attachment/AttachmentCellEditor.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/attachment/AttachmentEditorUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.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/pom.xml
===================================================================
--- trunk/pom.xml 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/pom.xml 2013-03-09 13:59:14 UTC (rev 567)
@@ -129,6 +129,7 @@
<hibernateVersion>3.6.10.Final</hibernateVersion>
<h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
+ <licensePluginVersion>1.4</licensePluginVersion>
<jaxxVersion>2.5.12-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
@@ -163,10 +164,10 @@
<jMockVersion>2.5.1</jMockVersion>
<!-- Last JRE version to use -->
- <jreVersion>1.7.10</jreVersion>
+ <jreVersion>1.7.17</jreVersion>
<!-- Last tutti db version -->
- <!--<dbVersion>2013.02.02</dbVersion>-->
+ <!--<dbVersion>2013.02.27</dbVersion>-->
</properties>
@@ -712,5 +713,48 @@
</profile>
+ <profile>
+ <id>update-file-header</id>
+ <activation>
+ <property>
+ <name>performRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
+
+ <properties>
+ <license.descriptor>src/license/project.xml</license.descriptor>
+ </properties>
+ <build>
+ <defaultGoal>process-resources</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>update-file-header</id>
+ <goals>
+ <goal>update-file-header</goal>
+ </goals>
+ <configuration>
+ <addSvnKeyWords>true</addSvnKeyWords>
+ <excludes>
+ <exclude>**/i18n/*.properties</exclude>
+ <exclude>**/help/*.properties</exclude>
+ <exclude>**/THIRD-PARTY.properties</exclude>
+ <!-- since sh scripts must begins by the line #!/bin/sh,
+ can not use the mojo for the mojo -->
+ <exclude>**/*.sh</exclude>
+ </excludes>
+ </configuration>
+ <phase>process-resources</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
</profiles>
</project>
Modified: trunk/src/update/update-tutti.properties
===================================================================
--- trunk/src/update/update-tutti.properties 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/src/update/update-tutti.properties 2013-03-09 13:59:14 UTC (rev 567)
@@ -47,6 +47,13 @@
i18n.url=zip:http://nexus.nuiton.org/nexus/content/repositories/other-relea…
################################################################################
+### Help Updates ###############################################################
+################################################################################
+
+help.version=@projectVersion@
+help.url=zip:http://nexus.nuiton.org/nexus/content/repositories/other-releases/fr/ifremer/tutti/tutti-ui-swing/@projectVersion@/tutti-ui-swing-@projectVersion@-help.zip
+
+################################################################################
### DB Updates #################################################################
################################################################################
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/pom.xml 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,7 +21,9 @@
#L%
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -49,12 +51,18 @@
<jaxx.generateSearch>false</jaxx.generateSearch>
<jaxx.autoImportCss>true</jaxx.autoImportCss>
<jaxx.autoRecurseInCss>false</jaxx.autoRecurseInCss>
- <!--<jaxx.helpBrokerFQN>fr.ird.observe.ui.ObserveHelpBroker</jaxx.helpBrokerFQN>-->
<!-- jaxx help configuration -->
<jaxx.helpsetName>tutti</jaxx.helpsetName>
<jaxx.locales>fr</jaxx.locales>
- <!--<jaxx.helpTarget>src/main/help</jaxx.helpTarget>-->
+ <jaxx.mergeIdsToInput>true</jaxx.mergeIdsToInput>
+ <jaxx.inputHelpDirectory>
+ src/main/filtered-resources
+ </jaxx.inputHelpDirectory>
+ <jaxx.inputHelpFilenamePrefix>tutti-help</jaxx.inputHelpFilenamePrefix>
+ <jaxx.helpBrokerFQN>
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ </jaxx.helpBrokerFQN>
<i18n.bundleOutputName>tutti-i18n</i18n.bundleOutputName>
@@ -67,7 +75,9 @@
<bundlePrefix>tutti-${project.version}</bundlePrefix>
- <tutti.log.file>\$\{java.io.tmpdir\}\tutti-${project.version}.log</tutti.log.file>
+ <tutti.log.file>
+ \$\{java.io.tmpdir\}\tutti-${project.version}.log
+ </tutti.log.file>
</properties>
@@ -83,6 +93,14 @@
</includes>
</resource>
<resource>
+ <directory>src/main/filtered-resources/help</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>*.config</include>
+ <include>*.properties</include>
+ </includes>
+ </resource>
+ <resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
@@ -99,6 +117,7 @@
<execution>
<goals>
<goal>generate</goal>
+ <goal>generate-help-ids</goal>
</goals>
</execution>
</executions>
@@ -412,6 +431,9 @@
<descriptor>
src/main/assembly/i18n.xml
</descriptor>
+ <descriptor>
+ src/main/assembly/help.xml
+ </descriptor>
</descriptors>
</configuration>
</execution>
@@ -422,13 +444,13 @@
</profile>
<profile>
- <id>prepare-full-release</id>
- <activation>
- <property>
- <name>performFullRelease</name>
- <value>true</value>
- </property>
- </activation>
+ <id>prepare-full-release</id>
+ <activation>
+ <property>
+ <name>performFullRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
<properties>
<redmine.releaseFiles>
@@ -438,7 +460,7 @@
target/${bundlePrefix}-full-linux-x64.zip
</redmine.releaseFiles>
</properties>
- <build>
+ <build>
</build>
</profile>
Added: trunk/tutti-ui-swing/src/main/assembly/help.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/assembly/help.xml (rev 0)
+++ trunk/tutti-ui-swing/src/main/assembly/help.xml 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,54 @@
+<!--
+ #%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%
+ -->
+
+<assembly
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+ <id>i18n</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <fileSets>
+
+ <fileSet>
+ <directory>src/main/help</directory>
+ <outputDirectory/>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+
+ <fileSet>
+ <directory>src/main/assembly/min</directory>
+ <outputDirectory/>
+ <filtered>true</filtered>
+ <includes>
+ <include>version.appup</include>
+ </includes>
+ </fileSet>
+
+ </fileSets>
+</assembly>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/assembly/help.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/assembly/tutti-full-component.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/assembly/tutti-full-component.xml 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/assembly/tutti-full-component.xml 2013-03-09 13:59:14 UTC (rev 567)
@@ -31,6 +31,26 @@
<fileSets>
<fileSet>
+ <directory>src/main/assembly/full</directory>
+ <outputDirectory/>
+ <filtered>true</filtered>
+ <fileMode>0755</fileMode>
+ <includes>
+ <include>tutti.sh</include>
+ <include>tutti.bat</include>
+ <include>README*</include>
+ </includes>
+ </fileSet>
+
+ <fileSet>
+ <includes>
+ <include>LICENSE*</include>
+ </includes>
+ </fileSet>
+
+ <!-- TUTTI component -->
+
+ <fileSet>
<directory>target</directory>
<outputDirectory>tutti</outputDirectory>
<includes>
@@ -74,41 +94,41 @@
</excludes>
</fileSet>
+ <!-- I18N component -->
<fileSet>
- <directory>src/main/assembly/full</directory>
- <outputDirectory/>
- <filtered>true</filtered>
- <fileMode>0755</fileMode>
+ <directory>target/classes/META-INF</directory>
+ <outputDirectory>i18n</outputDirectory>
<includes>
- <include>tutti.sh</include>
- <include>tutti.bat</include>
- <include>README*</include>
+ <include>tutti-i18n*.properties</include>
</includes>
</fileSet>
<fileSet>
+ <directory>src/main/assembly/min</directory>
+ <outputDirectory>i18n</outputDirectory>
+ <filtered>true</filtered>
<includes>
- <include>LICENSE*</include>
+ <include>version.appup</include>
</includes>
</fileSet>
+ <!-- HELP component -->
<fileSet>
- <directory>target/classes/META-INF</directory>
- <outputDirectory>i18n</outputDirectory>
+ <directory>src/main/assembly/min</directory>
+ <outputDirectory>help</outputDirectory>
+ <filtered>true</filtered>
<includes>
- <include>tutti-i18n*.properties</include>
+ <include>version.appup</include>
</includes>
</fileSet>
<fileSet>
- <directory>src/main/assembly/min</directory>
- <outputDirectory>i18n</outputDirectory>
- <filtered>true</filtered>
+ <directory>src/main/help</directory>
+ <outputDirectory/>
<includes>
- <include>version.appup</include>
+ <include>**/*</include>
</includes>
</fileSet>
-
</fileSets>
</component>
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties 2013-03-09 13:59:14 UTC (rev 567)
@@ -33,6 +33,7 @@
log4j.logger.fr.ifremer.tutti=INFO
log4j.logger.fr.ifremer.tutti.ui.swing.util=WARN
log4j.logger.fr.ifremer.tutti.ui.swing.util.action=INFO
+log4j.logger.fr.ifremer.tutti.ui.swing.util.attachment=INFO
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=${tutti.log.file}
Added: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties (rev 0)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,92 @@
+#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
+#Sat Mar 09 13:54:32 CET 2013
+tuttihelp.editCatchBatch.help=editCatchBatch.html
+tuttihelp.editCruise.action.cancel.help=editCruise.html\#actions
+tuttihelp.editCruise.action.generateName.help=editCruise.html\#actions
+tuttihelp.editCruise.action.save.help=editCruise.html\#actions
+tuttihelp.editCruise.field.beginDate.help=editCruise.html\#fields
+tuttihelp.editCruise.field.comment.help=editCruise.html\#fields
+tuttihelp.editCruise.field.country.help=editCruise.html\#fields
+tuttihelp.editCruise.field.endDate.help=editCruise.html\#fields
+tuttihelp.editCruise.field.multirigNumber.help=editCruise.html\#fields
+tuttihelp.editCruise.field.name.help=editCruise.html\#fields
+tuttihelp.editCruise.field.program.help=editCruise.html\#fields
+tuttihelp.editCruise.field.surveyPart.help=editCruise.html\#fields
+tuttihelp.editCruise.field.year.help=editCruise.html\#fields
+tuttihelp.editCruise.filterVessel.help=editCruise.html\#fields
+tuttihelp.editCruise.help=editCruise.html
+tuttihelp.editCruise.list.gear.help=editCruise.html\#fields
+tuttihelp.editCruise.list.headOfMission.help=editCruise.html\#fields
+tuttihelp.editCruise.list.headOfSortRoom.help=editCruise.html\#fields
+tuttihelp.editCruise.list.vessel.help=editCruise.html\#fields
+tuttihelp.editFishingOperation.action.attachments.help=editFishingOperation.html\#actions
+tuttihelp.editFishingOperation.action.cancel.help=editFishingOperation.html\#actions
+tuttihelp.editFishingOperation.action.importCasino.help=editFishingOperation.html\#actions
+tuttihelp.editFishingOperation.action.save.help=editFishingOperation.html\#actions
+tuttihelp.editFishingOperation.field.comment.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.duration.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.fishingOperationNumber.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.fishingOperationRectiligne.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.fishingOperationValid.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gear.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearDate.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearLatitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearLongitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingEnd.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingEndLatitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingEndLongitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingStart.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearShootingStartLatitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.gearTime.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.location.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.multirigAggregation.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.stationNumber.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.strata.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.subStrata.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.trawlDistance.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.field.vessel.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.gearShootingStartLongitude.help=editFishingOperation.html\#fields
+tuttihelp.editFishingOperation.help=editFishingOperation.html
+tuttihelp.editFishingOperation.list.recorderPerson.help=editFishingOperation.html\#fields
+tuttihelp.editProgram.action.cancel.help=editProgram.html\#actions
+tuttihelp.editProgram.action.save.help=editProgram.html\#actions
+tuttihelp.editProgram.field.comment.help=editProgram.html\#fields
+tuttihelp.editProgram.field.name.help=editProgram.html\#fields
+tuttihelp.editProgram.field.zone.help=editProgram.html\#fields
+tuttihelp.editProgram.help=editProgram.html
+tuttihelp.editProtocol.action.addSpeciesProtocol.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.cancel.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.exportAllCaracteristic.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.exportCaracteristic.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.exportSpecies.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.importCaracteristic.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.importSpecies.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.removeSpeciesProtocol.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.save.help=editProtocol.html\#actions
+tuttihelp.editProtocol.action.selectOtherSpecies.help=editProtocol.html\#actions
+tuttihelp.editProtocol.field.comment.help=editProtocol.html\#fields
+tuttihelp.editProtocol.field.name.help=editProtocol.html\#fields
+tuttihelp.editProtocol.field.species.help=editProtocol.html\#fields
+tuttihelp.editProtocol.help=editProtocol.html
+tuttihelp.editProtocol.list.gearUseFeature.help=editProtocol.html\#fields
+tuttihelp.editProtocol.list.lengthClasses.help=editProtocol.html\#fields
+tuttihelp.editProtocol.list.vesselUseFeature.help=editProtocol.html\#fields
+tuttihelp.editProtocol.pane.caracteristic.help=editProtocol.html\#fields
+tuttihelp.editProtocol.table.species.help=editProtocol.html\#fields
+tuttihelp.editSpeciesBatch.help=editSpeciesBatch.html
+tuttihelp.fishingOperations.help=fishingOperations.html
+tuttihelp.main.help=main.html
+tuttihelp.main.menu.action.about.help=main.html\#menu_
+tuttihelp.main.menu.action.configuration.help=main.html\#menu_
+tuttihelp.main.menu.action.editCatches.help=main.html\#menu_
+tuttihelp.main.menu.action.editCruise.help=main.html\#menu_
+tuttihelp.main.menu.action.editProgram.help=main.html\#menu_
+tuttihelp.main.menu.action.editProtocol.help=main.html\#menu_
+tuttihelp.main.menu.action.exit.help=main.html\#menu_
+tuttihelp.main.menu.action.importTemporaryReferential.help=main.html\#menu_
+tuttihelp.main.menu.action.manageDb.help=main.html\#menu_
+tuttihelp.main.menu.action.selectCruise.help=main.html\#menu_
+tuttihelp.main.menu.action.showHelp.help=main.html\#menu_
+tuttihelp.main.menu.action.site.help=main.html\#menu_
+tuttihelp.main.menu.action.updateApplication.help=main.html\#menu_
+tuttihelp.main.menu.action.validateCatches.help=main.html\#menu_
Property changes on: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editCatchBatch.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editCatchBatch.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editCatchBatch.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer une capture</title>
+</head>
+<body>
+
+<h1>Éditer une capture</h1>
+
+<p>Sur cette écran on peut éditer une capture...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editCatchBatch.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editCruise.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editCruise.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editCruise.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer une campagne</title>
+</head>
+<body>
+
+<h1>Éditer une campagne</h1>
+
+<p>Sur cette écran on peut éditer une campagne...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editCruise.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editFishingOperation.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editFishingOperation.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editFishingOperation.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer un trait</title>
+</head>
+<body>
+
+<h1>Éditer un trait</h1>
+
+<p>Sur cette écran on peut éditer un trait...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editFishingOperation.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editProgram.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editProgram.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editProgram.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,54 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer une série de campagne</title>
+</head>
+<body>
+
+<h1>Éditer une série de campagne</h1>
+
+<p>Sur cette écran on peut éditer une campagne...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Zone</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editProgram.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editProtocol.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editProtocol.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editProtocol.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer un protocole</title>
+</head>
+<body>
+
+<h1>Éditer un protocole</h1>
+
+<p>Sur cette écran on peut éditer un protocole...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editProtocol.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer les lots de poissons</title>
+</head>
+<body>
+
+<h1>Éditer les lots de poissons</h1>
+
+<p>Sur cette écran on peut éditer un lots de poissons...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/editSpeciesBatch.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/fishingOperations.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/fishingOperations.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/fishingOperations.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,53 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Éditer / Créer des traits</title>
+</head>
+<body>
+
+<h1>Éditer / Créer des traits</h1>
+
+<p>Sur cette écran on peut créer / éditer des traits...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Champs</h2>
+<ul>
+ <li>Nom</li>
+ <li>Commentaire</li>
+</ul>
+
+<h2>Actions</h2>
+Actions possibles :
+
+<ul>
+ <li>Annuler</li>
+ <li>Enregister</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/fishingOperations.html
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/help/main.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/main.html (rev 0)
+++ trunk/tutti-ui-swing/src/main/help/main.html 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,48 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 - 2013 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<!DOCTYPE html>
+<html lang="fr">
+
+<head>
+ <meta charset="utf-8"/>
+ <title>Tutti - Écran principal</title>
+</head>
+<body>
+
+<h1>Écran principal</h1>
+
+<p>...</p>
+
+<strong>Documentation à rédiger</strong>
+
+<h2>Menu</h2>
+Actions possibles depuis le menu :
+
+<ul>
+ <li>Configuration</li>
+ <li>Gérerles bases</li>
+ <li>Quitter l'application</li>
+</ul>
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/help/main.html
___________________________________________________________________
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/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -27,6 +27,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
@@ -64,7 +65,8 @@
JRE,
TUTTI,
I18N,
- DB;
+ HELP,
+ DB
}
protected final TuttiUIContext context;
@@ -152,6 +154,7 @@
doRestart |= updateTutti;
doRestart |= updateDoneI18n(appToUpdate, appUpdateError);
+ doRestart |= updateDoneHelp(appToUpdate, appUpdateError);
updateDoneDb(appToUpdate, appUpdateError);
@@ -161,19 +164,22 @@
if (updateTutti) {
- TuttiPersistenceConfig persistenceConfig = context.getConfig().getServiceConfig().getPersistenceConfig();
+ TuttiPersistenceConfig persistenceConfig =
+ context.getConfig().getServiceConfig().getPersistenceConfig();
// must remove the enumeration file at exit
- persistenceConfig.getDbEnumerationPath().deleteOnExit();
+ File enumerationPath = persistenceConfig.getDbEnumerationPath();
+ TuttiIOUtil.forceDeleteOnExit(
+ enumerationPath,
+ "Could not delete enumeration file " + enumerationPath
+ );
+ //FIXME-check this is necessary: i18n is no more generated ?
// must also remove i18n directory
File i18nDirectory = context.getConfig().getI18nDirectory();
- try {
- FileUtils.forceDeleteOnExit(i18nDirectory);
- } catch (IOException e) {
- throw new TuttiTechnicalException(
- "could not delete i18n directory " + i18nDirectory, e);
- }
+ TuttiIOUtil.forceDeleteOnExit(
+ i18nDirectory,
+ "Could not delete i18n directory " + i18nDirectory);
}
}
}
@@ -264,6 +270,31 @@
return doRestart;
}
+ protected boolean updateDoneHelp(Map<String, ApplicationInfo> appToUpdate,
+ Map<String, Exception> appUpdateError) {
+ boolean doRestart = false;
+ Exception error = getError(UpdateType.HELP, appUpdateError);
+ if (error != null) {
+
+ // something bad while updating i18n
+ if (log.isErrorEnabled()) {
+ log.error("Could not update help", error);
+ }
+ } else {
+ ApplicationInfo info = getInfo(UpdateType.HELP, appToUpdate);
+ if (info != null) {
+
+ if (log.isInfoEnabled()) {
+ log.info(String.format(
+ "A help update was downloaded (oldVersion: %s, newVersion: %s), will restart application to use it",
+ info.oldVersion, info.newVersion));
+ }
+ doRestart = true;
+ }
+ }
+ return doRestart;
+ }
+
protected void updateDoneDb(Map<String, ApplicationInfo> appToUpdate,
Map<String, Exception> appUpdateError) {
Exception error = getError(UpdateType.DB, appUpdateError);
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,82 @@
+package fr.ifremer.tutti.ui.swing;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import jaxx.runtime.JAXXObject;
+import jaxx.runtime.swing.help.JAXXHelpBroker;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.swing.AbstractButton;
+import java.awt.event.ActionListener;
+
+/**
+ * Help broker.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.1
+ */
+public class TuttiHelpBroker extends JAXXHelpBroker {
+
+ /** Logger */
+ private static final Log log = LogFactory.getLog(TuttiHelpBroker.class);
+
+ public TuttiHelpBroker(String defaultID) {
+ super("tutti", "help",
+ defaultID,
+ TuttiUIContext.getApplicationContext());
+ }
+
+ @Override
+ public void prepareUI(JAXXObject c) {
+
+ if (c == null) {
+ throw new NullPointerException("parameter c can not be null!");
+ }
+
+ // l'ui doit avoir un boutton showHelp
+ AbstractButton help = getShowHelpButton(c);
+
+ if (help != null) {
+
+ // attach context to button
+ if (log.isDebugEnabled()) {
+ log.debug("attach context to showhelp button " + c);
+ }
+ help.putClientProperty(JAXX_CONTEXT_ENTRY, c);
+
+ // add tracking action
+ ActionListener listener = getShowHelpAction();
+ if (log.isDebugEnabled()) {
+ log.debug("adding tracking action " + listener);
+ }
+ help.addActionListener(listener);
+
+ if (log.isDebugEnabled()) {
+ log.debug("done for " + c);
+ }
+ }
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.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/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -25,8 +25,8 @@
*/
import com.google.common.base.Preconditions;
-import com.google.common.base.Throwables;
import com.google.common.collect.Sets;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
@@ -43,7 +43,9 @@
import fr.ifremer.tutti.ui.swing.util.TuttiErrorHelper;
import fr.ifremer.tutti.ui.swing.util.UIMessageNotifier;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
-import org.apache.commons.io.FileUtils;
+import jaxx.runtime.JAXXContext;
+import jaxx.runtime.swing.help.JAXXHelpBroker;
+import jaxx.runtime.swing.help.JAXXHelpUIHandler;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@@ -54,12 +56,16 @@
import org.nuiton.i18n.init.UserI18nInitializer;
import org.nuiton.widget.SwingSession;
+import java.awt.Desktop;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
import java.util.Locale;
+import java.util.Properties;
import java.util.Set;
/**
@@ -68,7 +74,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class TuttiUIContext extends AbstractBean implements Closeable, UIMessageNotifier {
+public class TuttiUIContext extends AbstractBean implements Closeable, UIMessageNotifier, JAXXHelpUIHandler {
public static final String VALIDATION_CONTEXT_EDIT = "edit";
@@ -173,6 +179,13 @@
protected TuttiDataContext dataContext;
/**
+ * Tutti help broker.
+ *
+ * @since 1.1
+ */
+ protected TuttiHelpBroker helpBroker;
+
+ /**
* Current screen displayed in ui.
*
* @since 0.1
@@ -211,6 +224,8 @@
*/
private boolean dbLoaded;
+ private Properties helpMapping;
+
public static TuttiUIContext newContext(TuttiApplicationConfig config) {
Preconditions.checkNotNull(config);
Preconditions.checkState(applicationContext == null,
@@ -407,11 +422,7 @@
public void init() {
- try {
- config.getServiceConfig().prepareDirectories();
- } catch (IOException e) {
- throw Throwables.propagate(e);
- }
+ config.getServiceConfig().prepareDirectories();
// use our special classLoader (which will read some files from resources from a configuration directory)
Thread.currentThread().setContextClassLoader(getResourceLoader());
@@ -435,7 +446,9 @@
throw new RuntimeException("Could not init persistence configuration", e);
}
- // Initialize i18n
+ //--------------------------------------------------------------------//
+ // init i18n
+ //--------------------------------------------------------------------//
File i18nDirectory = config.getI18nDirectory();
if (!config.isFullLaunchMode()) {
@@ -443,18 +456,17 @@
if (i18nDirectory.exists()) {
// clean i18n cache
- try {
- FileUtils.cleanDirectory(i18nDirectory);
- } catch (IOException e) {
- throw new RuntimeException("Could not delete i18n cache at " + i18nDirectory, e);
- }
+ TuttiIOUtil.cleanDirectory(
+ i18nDirectory,
+ "Could not delete i18n cache at " + i18nDirectory);
}
}
- try {
- FileUtils.forceMkdir(i18nDirectory);
- } catch (IOException e) {
- throw new RuntimeException("Could not create i18n at " + i18nDirectory, e);
+ TuttiIOUtil.forceMkdir(i18nDirectory,
+ "Could not create i18n at " + i18nDirectory);
+
+ if (log.isDebugEnabled()) {
+ log.debug("I18N directory: " + i18nDirectory);
}
Locale i18nLocale = config.getI18nLocale();
@@ -467,6 +479,48 @@
i18nDirectory, new DefaultI18nInitializer("tutti-i18n")),
i18nLocale);
+ //--------------------------------------------------------------------//
+ // init help
+ //--------------------------------------------------------------------//
+
+ File helpDirectory = config.getHelpDirectory();
+
+ if (!config.isFullLaunchMode()) {
+
+ if (!helpDirectory.exists()) {
+ helpDirectory = new File(config.getDataDirectory(), "help");
+ }
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("Help directory: " + helpDirectory);
+ }
+ TuttiIOUtil.forceMkdir(
+ helpDirectory,
+ "Could not create helpDirectory at " + helpDirectory);
+
+ // load help mapping
+ String mappingProperties =
+ "/tutti-help-" + i18nLocale.getLanguage() + ".properties";
+ try {
+
+ InputStream resourceAsStream =
+ getClass().getResourceAsStream(mappingProperties);
+ helpMapping = new Properties();
+ helpMapping.load(resourceAsStream);
+
+ } catch (Exception eee) {
+ log.error("Failed to load help mapping file at '" +
+ mappingProperties + "'", eee);
+ }
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Starts help with locale at [%s]",
+ helpDirectory));
+ }
+
+ //--------------------------------------------------------------------//
+ // init action UI
+ //--------------------------------------------------------------------//
setActionUI(new TuttiActionUI(null, this));
}
@@ -674,4 +728,44 @@
saveContextToConfig();
}
+
+ public TuttiHelpBroker getHelpBroker() {
+ return helpBroker;
+ }
+
+ public void setHelpBroker(TuttiHelpBroker helpBroker) {
+ this.helpBroker = helpBroker;
+ }
+
+ @Override
+ public void showHelp(JAXXContext context,
+ JAXXHelpBroker broker,
+ String helpId) {
+ if (helpId == null) {
+ helpId = broker.getDefaultID();
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("show help " + helpId);
+ }
+
+ String value = (String) helpMapping.get(helpId);
+
+ if (value == null) {
+ throw new TuttiTechnicalException("Could not find help page for " + helpId);
+ }
+
+ URI resolvedUri = getConfig().getHelpDirectory().toURI().resolve(value);
+ try {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Opening uri " + resolvedUri);
+ }
+
+ Desktop.getDesktop().browse(resolvedUri);
+ } catch (Exception eee) {
+ throw new TuttiTechnicalException("Could not open help page at " + helpId);
+ }
+
+ }
}
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -292,6 +292,11 @@
TuttiApplicationConfigOption.TUTTI_I18N_LOCALE.getKey());
}
+ public File getHelpDirectory() {
+ return applicationConfig.getOptionAsFile(
+ TuttiApplicationConfigOption.TUTTI_HELP_DIRECTORY.getKey());
+ }
+
public void setProgramId(String programId) {
if (programId == null) {
programId = "";
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -58,6 +58,13 @@
File.class
),
+ TUTTI_HELP_DIRECTORY(
+ "tutti.help.directory",
+ n_("tutti.option.help.directory.description"),
+ "${tutti.basedir}/help",
+ File.class
+ ),
+
TUTTI_I18N_LOCALE(
"tutti.i18n.locale",
n_("tutti.option.i18n.locale.description"),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -42,19 +42,23 @@
toolTipText: "tutti.action.configuration.tip";
actionIcon: config;
mnemonic: C;
+ _help: {"tuttihelp.main.menu.action.configuration.help"};
}
#menuFileExit {
_tuttiAction: {CloseApplicationAction.class};
+ _help: {"tuttihelp.main.menu.action.exit.help"};
}
#menuActionUpdate {
_tuttiAction: {UpdateApplicationAction.class};
+ _help: {"tuttihelp.main.menu.action.updateApplication.help"};
}
#menuActionManageDb {
enabled: {model.getScreen() != TuttiScreen.MANAGE_DB};
_tuttiAction: {ManageDbAction.class};
+ _help: {"tuttihelp.main.menu.action.manageDb.help"};
}
#menuActions {
@@ -67,21 +71,25 @@
#menuActionSelectCruise {
enabled: {model.getScreen() != TuttiScreen.SELECT_CRUISE};
_tuttiAction: {SelectCruiseAction.class};
+ _help: {"tuttihelp.main.menu.action.selectCruise.help"};
}
#menuActionEditProgram {
enabled: {model.getScreen() != TuttiScreen.EDIT_PROGRAM && model.isProgramFilled()};
_tuttiAction: {EditSelectedProgramAction.class};
+ _help: {"tuttihelp.main.menu.action.editProgram.help"};
}
#menuActionEditCruise {
enabled: {model.getScreen() != TuttiScreen.EDIT_CRUISE && model.isCruiseFilled()};
_tuttiAction: {EditSelectedCruiseAction.class};
+ _help: {"tuttihelp.main.menu.action.editCruise.help"};
}
#menuActionEditProtocol {
enabled: {model.getScreen() != TuttiScreen.EDIT_PROTOCOL && model.isProtocolFilled()};
_tuttiAction: {EditSelectedProtocolAction.class};
+ _help: {"tuttihelp.main.menu.action.editProtocol.help"};
}
#menuActionEditCatches {
@@ -90,6 +98,7 @@
|| model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
) && model.isCruiseFilled()};
_tuttiAction: {EditSelectedCruiseCatchesAction.class};
+ _help: {"tuttihelp.main.menu.action.editCatches.help"};
}
#menuActionValidateCatches {
@@ -98,9 +107,10 @@
|| model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
) && model.isCruiseFilled()};
_tuttiAction: {ValidateSelectedCruiseCatchesAction.class};
+ _help: {"tuttihelp.main.menu.action.validateCatches.help"};
}
-#menuAdministration{
+#menuAdministration {
enabled: {model.isDbLoaded()};
text: "tutti.menu.administration";
toolTipText: "tutti.menu.administration.tip";
@@ -110,39 +120,9 @@
#menuImportTemporaryReferential {
enabled: {model.getScreen() != TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL};
_tuttiAction: {ImportTemporaryReferentialAction.class};
+ _help: {"tuttihelp.main.menu.action.importTemporaryReferential.help"};
}
-#menuSynchronisations {
- enabled: {model.isDbLoaded()};
- text: "tutti.menu.synchronisations";
- toolTipText: "tutti.menu.synchronisations.tip";
- mnemonic: S;
-}
-
-#menuSynchronisationImport {
- text: "tutti.menu.synchronisationImport";
- toolTipText: "tutti.menu.synchronisationImport.tip";
- mnemonic: I;
- enabled: false;
- actionIcon: import;
-}
-
-#menuSynchronisationExport {
- text: "tutti.menu.synchronisationExport";
- toolTipText: "tutti.menu.synchronisationExport.tip";
- mnemonic: E;
- enabled: false;
- actionIcon: export;
-}
-
-#menuSynchronisationAllegro {
- text: "tutti.menu.synchronisationAllegro";
- toolTipText: "tutti.menu.synchronisationAllegro.tip";
- mnemonic: A;
- enabled: false;
- actionIcon: allegro;
-}
-
#menuHelp {
text: "tutti.menu.help";
toolTipText: "tutti.menu.help.tip";
@@ -154,6 +134,7 @@
toolTipText: "tutti.action.site.tip";
actionIcon: site;
mnemonic: S;
+ _help: {"tuttihelp.main.menu.action.site.help"};
}
#menuHelpAbout {
@@ -161,12 +142,9 @@
toolTipText: "tutti.action.about.tip";
actionIcon: about;
mnemonic: A;
+ _help: {"tuttihelp.main.menu.action.about.help"};
}
-#menuUpdateApplication {
- _tuttiAction: {UpdateApplicationAction.class};
-}
-
#bottomBar {
floatable: false;
margin: {new java.awt.Insets(0, 0, 0, 5)};
@@ -176,3 +154,14 @@
#validatorMessageWidget {
focusPainted: false;
}
+
+#showHelp {
+ toolTipText:"tutti.action.showHelp.tip";
+ actionIcon:"show-help";
+ _help: {"tuttihelp.main.menu.action.showHelp.help"};
+}
+
+#body {
+ _help: {"tuttihelp.main.help"};
+}
+
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -23,23 +23,29 @@
-->
<JFrame id='mainFrame' onWindowClosing='menuFileExit.getAction().actionPerformed(null)'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<TuttiUIContext, MainUIHandler>'
- width='800' height='600'>
+ width='800' height='600' decorator='help'>
<import>
- java.awt.BorderLayout
- javax.swing.JFrame
- org.jdesktop.swingx.JXTitledPanel
- jaxx.runtime.validator.swing.SwingValidator
- jaxx.runtime.validator.swing.SwingValidatorMessageWidget
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.TuttiScreen
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+
+ jaxx.runtime.validator.swing.SwingValidator
+ jaxx.runtime.validator.swing.SwingValidatorMessageWidget
+
+ org.jdesktop.swingx.JXTitledPanel
+
+ javax.swing.JFrame
+ javax.swing.border.EmptyBorder
+ java.awt.BorderLayout
</import>
<TuttiUIContext id='model'
initializer='getContextValue(TuttiUIContext.class)'/>
<MainUIHandler id='handler'
initializer='getContextValue(MainUIHandler.class)'/>
-
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.main.help"'/>
<script><![CDATA[
public MainUI(TuttiUIContext context) {
@@ -79,16 +85,6 @@
<JMenuItem id='menuImportTemporaryReferential'/>
</JMenu>
- <!--JMenu id='menuSynchronisations'>
-
- <JMenuItem id='menuSynchronisationImport'
- onActionPerformed="getHandler().showImportScreen()"/>
- <JMenuItem id='menuSynchronisationExport'
- onActionPerformed="getHandler().showExportScreen()"/>
- <JMenuItem id='menuSynchronisationAllegro'
- onActionPerformed="getHandler().showAllegroScreen()"/>
- </JMenu-->
-
<JMenu id='menuHelp'>
<JMenuItem id='menuHelpSite'
onActionPerformed='getHandler().gotoSite()'/>
@@ -101,6 +97,9 @@
<SwingValidatorMessageWidget id='validatorMessageWidget'/>
</JToolBar>
+ <!-- pour afficher l'aide contextuelle -->
+ <JButton id='showHelp'/>
+
<JXTitledPanel id='body' constraints='BorderLayout.CENTER'/>
<!-- status message bar -->
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -54,8 +54,10 @@
import org.nuiton.widget.SwingSession;
import javax.swing.Icon;
+import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
+import javax.swing.JPanel;
import javax.swing.JToolBar;
import java.awt.Desktop;
import java.beans.PropertyChangeEvent;
@@ -318,7 +320,7 @@
// load new body
JComponent screenUI;
- JComponent rightDecoration = null;
+ JToolBar rightDecoration = null;
String screenTitle;
Icon icon;
@@ -401,6 +403,16 @@
break;
}
+ JButton showHelp = ui.getShowHelp();
+ if (rightDecoration == null) {
+ rightDecoration = new JToolBar();
+ rightDecoration.setFloatable(false);
+ rightDecoration.setOpaque(false);
+ rightDecoration.setBorderPainted(false);
+ } else {
+ rightDecoration.remove(showHelp);
+ }
+ rightDecoration.add(showHelp, 0);
this.currentBody = screenUI;
context.getSwingSession().add(currentBody);
ui.getBody().setTitle(screenTitle);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -41,9 +41,15 @@
showReset: true;
}
+#editCruiseTopPanel {
+ _help: {"tuttihelp.editCruise.help"};
+}
+
#nameLabel {
text: "tutti.label.cruise.name";
labelFor: {nameField};
+ toolTipText: "tuttihelp.editCruise.field.name.tip";
+ _help: {"tuttihelp.editCruise.field.name.help"};
}
#nameField {
@@ -54,6 +60,8 @@
#yearLabel {
text: "tutti.label.cruise.year";
labelFor: {yearField};
+ toolTipText: "tuttihelp.editCruise.field.year.tip";
+ _help: {"tuttihelp.editCruise.field.year.help"};
}
#yearField {
@@ -67,6 +75,8 @@
#surveyPartLabel {
text: "tutti.label.cruise.surveyPart";
labelFor: {surveyPartField};
+ toolTipText: "tuttihelp.editCruise.field.surveyPart.tip";
+ _help: {"tuttihelp.editCruise.field.surveyPart.help"};
}
#surveyPartField {
@@ -77,6 +87,8 @@
#countryLabel {
text: "tutti.label.cruise.country";
labelFor: {countryComboBox};
+ toolTipText: "tuttihelp.editCruise.field.country.tip";
+ _help: {"tuttihelp.editCruise.field.country.help"};
}
#countryComboBox {
@@ -87,10 +99,12 @@
#programLabel {
text: "tutti.label.cruise.program";
- labelFor: {surveyComboBox};
+ labelFor: {programComboBox};
+ toolTipText: "tuttihelp.editCruise.field.program.tip";
+ _help: {"tuttihelp.editCruise.field.program.help"};
}
-#surveyComboBox {
+#programComboBox {
property: program;
selectedItem: {model.getProgram()};
_validatorLabel : {_("tutti.label.cruise.program")};
@@ -99,6 +113,8 @@
#beginDateLabel {
text: "tutti.label.cruise.beginDate";
labelFor: {beginDateField};
+ toolTipText: "tuttihelp.editCruise.field.beginDate.tip";
+ _help: {"tuttihelp.editCruise.field.beginDate.help"};
}
#beginDateField {
@@ -109,6 +125,8 @@
#endDateLabel {
text: "tutti.label.cruise.endDate";
labelFor: {endDateField};
+ toolTipText: "tuttihelp.editCruise.field.endDate.tip";
+ _help: {"tuttihelp.editCruise.field.endDate.help"};
}
#endDateField {
@@ -117,8 +135,10 @@
}
#multirigNumberLabel {
- text: "tutti.label.cruise.multirigNumber";
- labelFor: {multirigNumberField};
+ text: "tutti.label.cruise.multirigNumber";
+ labelFor: {multirigNumberField};
+ toolTipText: "tuttihelp.editCruise.field.multirigNumber.tip";
+ _help: {"tuttihelp.editCruise.field.multirigNumber.help"};
}
#multirigNumberField {
@@ -133,6 +153,8 @@
text: "tutti.label.filterVesselType";
_strongStyle: true;
actionIcon: filter;
+ toolTipText: "tuttihelp.editCruise.filterVessel.tip";
+ _help: {"tuttihelp.editCruise.filterVessel.help"};
}
#filterVesselAllButton {
@@ -163,28 +185,38 @@
property: vessel;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.vessel"))};
_validatorLabel : {_("tutti.label.list.vessel")};
+ toolTipText: "tuttihelp.editCruise.list.vessel.tip";
+ _help: {"tuttihelp.editCruise.list.vessel.help"};
}
#gearList {
property: gear;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.gear"))};
_validatorLabel : {_("tutti.label.list.gear")};
+ toolTipText: "tuttihelp.editCruise.list.gear.tip";
+ _help: {"tuttihelp.editCruise.list.gear.help"};
}
#headOfMissionList {
property: headOfMission;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.headOfMission"))};
_validatorLabel : {_("tutti.label.list.headOfMission")};
+ toolTipText: "tuttihelp.editCruise.list.headOfMission.tip";
+ _help: {"tuttihelp.editCruise.list.headOfMission.help"};
}
#headOfSortRoomList {
property: headOfSortRoom;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.headOfSortRoom"))};
_validatorLabel : {_("tutti.label.list.headOfSortRoom")};
+ toolTipText: "tuttihelp.editCruise.list.headOfSortRoom.tip";
+ _help: {"tuttihelp.editCruise.list.headOfSortRoom.help"};
}
#commentPane {
border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
+ toolTipText: "tuttihelp.editCruise.field.comment.tip";
+ _help: {"tuttihelp.editCruise.field.comment.help"};
}
#commentField {
@@ -195,22 +227,26 @@
#saveButton {
_tuttiAction: {SaveCruiseAction.class};
enabled: {model.isModify() && model.isValid()};
+ _help: {"tuttihelp.editCruise.action.save.help"};
}
#cancelButton {
_tuttiAction: {CancelEditCruiseAction.class};
+ _help: {"tuttihelp.editCruise.action.cancel.help"};
}
#generateNameButton {
actionIcon: generate;
text: "tutti.action.generateCampaignName";
enabled: {model.isCanGenerateName()};
+ toolTipText: "tuttihelp.editCruise.action.generateName.tip";
+ _help: {"tuttihelp.editCruise.action.generateName.help"};
}
#topToolBar {
floatable: false;
- opaque: true;
- borderPainted: true;
+ opaque: false;
+ borderPainted: false;
}
#attachmentsButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,7 +21,7 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editCruiseTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditCruiseUIModel, EditCruiseUIHandler>'>
<import>
@@ -32,17 +32,15 @@
fr.ifremer.tutti.persistence.entities.referential.Vessel
fr.ifremer.tutti.ui.swing.TuttiUIContext
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.util.TuttiUI
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
jaxx.runtime.swing.editor.NumberEditor
jaxx.runtime.swing.editor.bean.BeanComboBox
jaxx.runtime.swing.editor.bean.BeanListHeader
jaxx.runtime.swing.editor.bean.BeanDoubleList
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
org.jdesktop.swingx.JXDatePicker
javax.swing.DefaultListModel
@@ -76,11 +74,9 @@
<EditCruiseUIModel id='model'
initializer='getContextValue(EditCruiseUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
-
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
- <field name='program' component='surveyComboBox'/>
+ <field name='program' component='programComboBox'/>
<field name='year' component='yearField'/>
<field name='surveyPart' component='surveyPartField'/>
<field name='name' component='nameField'/>
@@ -95,8 +91,12 @@
<field name='comment' component='commentPane'/>
</BeanValidator>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editCruise.help"'/>
+
<JToolBar id='topToolBar'>
- <JButton id='attachmentsButton'/>
+ <ButtonAttachment id='attachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
</JToolBar>
<Table fill='both' constraints='BorderLayout.CENTER'>
@@ -107,7 +107,7 @@
<JLabel id='programLabel'/>
</cell>
<cell weightx='1'>
- <BeanComboBox id='surveyComboBox' constructorParams='this'
+ <BeanComboBox id='programComboBox' constructorParams='this'
genericType='Program'/>
</cell>
<cell anchor='west'>
@@ -231,7 +231,4 @@
</row>
</Table>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -180,7 +180,7 @@
}
});
- initBeanComboBox(ui.getSurveyComboBox(),
+ initBeanComboBox(ui.getProgramComboBox(),
persistenceService.getAllProgram(),
model.getProgram());
@@ -223,6 +223,8 @@
log.info("closing: " + ui);
}
clearValidators();
+
+ ui.getAttachmentsButton().onCloseUI();
}
@Override
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -469,6 +469,21 @@
handler.registerValidator();
}
+ Decorator<FishingOperation> decorator =
+ getDecorator(FishingOperation.class, null);
+
+ String fishingOperationText;
+
+ if (bean == null) {
+ fishingOperationText = null;
+ } else {
+ fishingOperationText = _("tutti.label.traitReminder",
+ decorator.toString(bean));
+ }
+ ui.getTraitGeneralTabPane().setTitle(fishingOperationText);
+ ui.getVesselUseFeatureTabPane().setTitle(fishingOperationText);
+ ui.getGearUseFeatureTabPane().setTitle(fishingOperationText);
+
handler.installStartDateListener();
handler.installCoordinatesListener();
}
@@ -560,8 +575,6 @@
// ui.getPlanktonTabContent().getHandler().selectFishingOperation(bean);
// ui.getMacroWasteTabContent().getHandler().selectFishingOperation(bean);
// ui.getAccidentalTabContent().getHandler().selectFishingOperation(bean);
-
-
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -54,6 +54,25 @@
bean: {model};
}
+#editFishingOperationTopPanel {
+ _help: {"tuttihelp.editFishingOperation.help"};
+}
+#traitGeneralTabPaneToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#fishingOperationAttachmentsButton {
+ enabled: {model.getId() != null};
+ toolTipText: "tuttihelp.editFishingOperation.action.attachments.tip";
+ _help: {"tuttihelp.editFishingOperation.action.attachments.help"};
+}
+
+#traitGeneralTabPane {
+ rightDecoration: {traitGeneralTabPaneToolBar};
+}
+
/*#fishingOperationTabScrollPane {
horizontalScrollBarPolicy: {javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER};
}*/
@@ -61,6 +80,8 @@
#stationNumberLabel {
text: "tutti.label.fishingOperation.stationNumber";
labelFor: {stationNumberField};
+ toolTipText: "tuttihelp.editFishingOperation.field.stationNumber.tip";
+ _help: {"tuttihelp.editFishingOperation.field.stationNumber.help"};
}
#stationNumberField {
@@ -71,6 +92,8 @@
#fishingOperationNumberLabel {
text: "tutti.label.fishingOperation.fishingOperationNumber";
labelFor: {fishingOperationNumberField};
+ toolTipText: "tuttihelp.editFishingOperation.field.fishingOperationNumber.tip";
+ _help: {"tuttihelp.editFishingOperation.field.fishingOperationNumber.help"};
}
#fishingOperationNumberField {
@@ -84,6 +107,8 @@
#strataLabel {
text: "tutti.label.fishingOperation.strata";
labelFor: {strataComboBox};
+ toolTipText: "tuttihelp.editFishingOperation.field.strata.tip";
+ _help: {"tuttihelp.editFishingOperation.field.strata.help"};
}
#strataComboBox {
@@ -95,6 +120,8 @@
#subStrataLabel {
text: "tutti.label.fishingOperation.subStrata";
labelFor: {subStrataComboBox};
+ toolTipText: "tuttihelp.editFishingOperation.field.subStrata.tip";
+ _help: {"tuttihelp.editFishingOperation.field.subStrata.help"};
}
#subStrataComboBox {
@@ -106,6 +133,8 @@
#locationLabel {
text: "tutti.label.fishingOperation.location";
labelFor: {locationComboBox};
+ toolTipText: "tuttihelp.editFishingOperation.field.location.tip";
+ _help: {"tuttihelp.editFishingOperation.field.location.help"};
}
#locationComboBox {
@@ -115,31 +144,43 @@
}
#gearLongitudeLabel {
- text: {_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())};
+ text: {handler.getGearLongitudeLabelText(handler.getConfig().getCoordinateEditorType())};
actionIcon: "coordinates";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearLongitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearLongitude.help"};
}
#gearLatitudeLabel {
- text: {_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())};
+ text: {handler.getGearLatitudeLabelText(handler.getConfig().getCoordinateEditorType())};
actionIcon: "coordinates";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearLatitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearLatitude.help"};
}
#gearDateLabel {
text: "tutti.label.fishingOperation.gearDate";
actionIcon: "calendar";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearDate.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearDate.help"};
}
#gearTimeLabel {
text: "tutti.label.fishingOperation.gearTime";
actionIcon: "time";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearTime.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearTime.help"};
}
#gearShootingStartLabel {
text: "tutti.label.fishingOperation.gearShootingStart";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingStart.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingStart.help"};
}
#gearShootingEndLabel {
text: "tutti.label.fishingOperation.gearShootingEnd";
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingEnd.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingEnd.help"};
}
CardLayout2Ext {
@@ -154,6 +195,8 @@
text: "tutti.label.fishingOperation.vessel";
labelFor: {vesselComboBox};
actionIcon: "vessel";
+ toolTipText: "tuttihelp.editFishingOperation.field.vessel.tip";
+ _help: {"tuttihelp.editFishingOperation.field.vessel.help"};
}
#vesselComboBox {
@@ -166,6 +209,8 @@
text: "tutti.label.fishingOperation.gear";
labelFor: {gearComboBox};
actionIcon: "gear";
+ toolTipText: "tuttihelp.editFishingOperation.field.gear.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gear.help"};
}
#gearComboBox {
@@ -177,6 +222,8 @@
#multirigAggregationLabel {
text: "tutti.label.fishingOperation.multirigAggregation";
labelFor: {multirigAggregationField};
+ toolTipText: "tuttihelp.editFishingOperation.field.multirigAggregation.tip";
+ _help: {"tuttihelp.editFishingOperation.field.multirigAggregation.help"};
}
#multirigAggregationField {
@@ -213,6 +260,8 @@
#gearShootingStartLongitudePanel {
layout:{gearShootingStartLongitudeLayout};
+ toolTipText: "tuttihelp.editFishingOperation.gearShootingStartLongitude.tip";
+ _help: {"tuttihelp.editFishingOperation.gearShootingStartLongitude.help"};
}
#gearShootingStartLongitudeDMSDegreeField {
@@ -258,6 +307,8 @@
#gearShootingStartLatitudePanel {
layout:{gearShootingStartLatitudeLayout};
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingStartLatitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingStartLatitude.help"};
}
#gearShootingStartLatitudeDMSDegreeField {
@@ -313,6 +364,8 @@
#gearShootingEndLongitudePanel {
layout:{gearShootingEndLongitudeLayout};
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingEndLongitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingEndLongitude.help"};
}
#gearShootingEndLongitudeDMSDegreeField {
@@ -358,6 +411,8 @@
#gearShootingEndLatitudePanel {
layout:{gearShootingEndLatitudeLayout};
+ toolTipText: "tuttihelp.editFishingOperation.field.gearShootingEndLatitude.tip";
+ _help: {"tuttihelp.editFishingOperation.field.gearShootingEndLatitude.help"};
}
#gearShootingEndLatitudeDMSDegreeField {
@@ -416,6 +471,8 @@
borderPainted: false;
opaque: false;
_validatorLabel : {_("tutti.label.fishingOperation.fishingOperationValidity")};
+ toolTipText: "tuttihelp.editFishingOperation.field.fishingOperationValid.tip";
+ _help: {"tuttihelp.editFishingOperation.field.fishingOperationValid.help"};
}
#resetValidStateButton {
@@ -443,11 +500,15 @@
#fishingOperationRectiligneCheckBox {
text: "tutti.label.fishingOperation.fishingOperationRectiligne";
selected: {model.isFishingOperationRectiligne()};
+ toolTipText: "tuttihelp.editFishingOperation.field.fishingOperationRectiligne.tip";
+ _help: {"tuttihelp.editFishingOperation.field.fishingOperationRectiligne.help"};
}
#trawlDistanceLabel {
text: "tutti.label.fishingOperation.trawlDistance";
labelFor: {trawlDistanceField};
+ toolTipText: "tuttihelp.editFishingOperation.field.trawlDistance.tip";
+ _help: {"tuttihelp.editFishingOperation.field.trawlDistance.help"};
}
#trawlDistanceField {
@@ -456,13 +517,15 @@
useFloat: false;
numberPattern: {INT_6_DIGITS_PATTERN};
enabled: {!model.isFishingOperationRectiligne()};
- toolTipText: {model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null};
+ toolTipText: {handler.getTrawlDistanceTooltipText(model.getTrawlDistance())};
_validatorLabel : {_("tutti.label.fishingOperation.trawlDistance")};
}
#durationLabel {
text: "tutti.label.fishingOperation.duration";
labelFor: {durationField};
+ toolTipText: "tuttihelp.editFishingOperation.field.duration.tip";
+ _help: {"tuttihelp.editFishingOperation.field.duration.help"};
}
#durationField {
@@ -475,10 +538,14 @@
property: recorderPerson;
border: {BorderFactory.createTitledBorder(_("tutti.label.list.recorderPerson"))};
_validatorLabel : {_("tutti.label.list.recorderPerson")};
+ toolTipText: "tuttihelp.editFishingOperation.list.recorderPerson.tip";
+ _help: {"tuttihelp.editFishingOperation.list.recorderPerson.help"};
}
#commentPane {
border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
+ toolTipText: "tuttihelp.editFishingOperation.field.comment.tip";
+ _help: {"tuttihelp.editFishingOperation.field.comment.help"};
}
#commentField {
@@ -488,16 +555,18 @@
#saveButton {
_tuttiAction: {SaveFishingOperationAction.class};
+ toolTipText: "tuttihelp.editFishingOperation.action.save.tip";
+ _help: {"tuttihelp.editFishingOperation.action.save.help"};
}
#cancelButton {
_tuttiAction: {CancelEditFishingOperationAction.class};
+ toolTipText: "tuttihelp.editFishingOperation.action.cancel.tip";
+ _help: {"tuttihelp.editFishingOperation.action.cancel.help"};
}
#importCasinoButton {
_tuttiAction: {ImportCasinoAction.class};
+ toolTipText: "tuttihelp.editFishingOperation.action.importCasino.tip";
+ _help: {"tuttihelp.editFishingOperation.action.importCasino.help"};
}
-
-#attachmentsButton {
- enabled: {model.getId() !=null}
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,23 +21,24 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editFishingOperationTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditFishingOperationUIModel, EditFishingOperationUIHandler>'>
<import>
- fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation
fr.ifremer.tutti.persistence.entities.data.FishingOperation
+ fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation
fr.ifremer.tutti.persistence.entities.referential.Gear
fr.ifremer.tutti.persistence.entities.referential.Person
fr.ifremer.tutti.persistence.entities.referential.Vessel
fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUI
fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUI
-
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
+
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ fr.ifremer.tutti.ui.swing.util.TuttiUIUtil
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType
fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor
- fr.ifremer.tutti.ui.swing.util.TuttiUIUtil
jaxx.runtime.swing.editor.bean.BeanComboBox
jaxx.runtime.swing.editor.bean.BeanListHeader
@@ -46,11 +47,9 @@
jaxx.runtime.swing.editor.TimeEditor
jaxx.runtime.swing.CardLayout2Ext
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
org.jdesktop.swingx.JXDatePicker
org.jdesktop.swingx.JXTable
+ org.jdesktop.swingx.JXTitledPanel
java.awt.Dimension
@@ -79,10 +78,7 @@
<EditFishingOperationUIModel id='model'
initializer='getContextValue(EditFishingOperationUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
-
<BeanValidator id='validator' context='validate' bean='model'
- errorTableModel='errorTableModel'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='stationNumber' component='stationNumberField'/>
<field name='fishingOperationNumber'
@@ -159,370 +155,372 @@
<CardLayout2Ext id='gearShootingEndLatitudeLayout'
constructorParams='this, "gearShootingEndLatitudePanel"'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editeditFishingOperation.help"'/>
+ <JToolBar id='traitGeneralTabPaneToolBar'>
+ <JButton id='importCasinoButton'/>
+ <ButtonAttachment id='fishingOperationAttachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
+ </JToolBar>
+
<JPanel id='fishingOperationPane' constraints='BorderLayout.CENTER'
layout='{new BorderLayout()}'>
<JTabbedPane id='fishingOperationTabPane' constraints='BorderLayout.CENTER'>
<tab id='traitGeneralTab'>
- <!-- <JScrollPane id='fishingOperationTabScrollPane'>-->
- <Table fill='both' id='generalForm'>
+ <JXTitledPanel id='traitGeneralTabPane'>
+ <!-- <JScrollPane id='fishingOperationTabScrollPane'>-->
+ <Table fill='both' id='generalForm'>
- <!-- Numero station / Numéro trait / Numéro de poche -->
- <row>
- <cell>
- <JLabel id='stationNumberLabel'/>
- </cell>
- <cell weightx='0.3'>
- <JTextField id='stationNumberField'
- onKeyReleased='handler.setText(event, "stationNumber")'/>
- </cell>
- <cell>
- <JLabel id='fishingOperationNumberLabel'/>
- </cell>
- <cell weightx='0.3'>
- <NumberEditor id='fishingOperationNumberField'
- constructorParams='this'/>
- </cell>
- <cell>
- <JLabel id='multirigAggregationLabel'/>
- </cell>
- <cell weightx='0.3'>
- <JTextField id='multirigAggregationField'
- onKeyReleased='handler.setText(event, "multirigAggregation")'/>
- </cell>
- </row>
+ <!-- Numero station / Numéro trait / Numéro de poche -->
+ <row>
+ <cell>
+ <JLabel id='stationNumberLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <JTextField id='stationNumberField'
+ onKeyReleased='handler.setText(event, "stationNumber")'/>
+ </cell>
+ <cell>
+ <JLabel id='fishingOperationNumberLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <NumberEditor id='fishingOperationNumberField'
+ constructorParams='this'/>
+ </cell>
+ <cell>
+ <JLabel id='multirigAggregationLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <JTextField id='multirigAggregationField'
+ onKeyReleased='handler.setText(event, "multirigAggregation")'/>
+ </cell>
+ </row>
- <!-- Strate d'association / Sous Strate / Localité -->
- <row>
- <cell>
- <JLabel id='strataLabel'/>
- </cell>
- <cell weightx='0.3'>
- <BeanComboBox id='strataComboBox' constructorParams='this'
- genericType='FishingOperationLocation'/>
- </cell>
- <cell>
- <JLabel id='subStrataLabel'/>
- </cell>
- <cell weightx='0.3'>
- <BeanComboBox id='subStrataComboBox' constructorParams='this'
- genericType='FishingOperationLocation'/>
- </cell>
- <cell>
- <JLabel id='locationLabel'/>
- </cell>
- <cell weightx='0.3'>
- <BeanComboBox id='locationComboBox' constructorParams='this'
- genericType='FishingOperationLocation'/>
- </cell>
- </row>
+ <!-- Strate d'association / Sous Strate / Localité -->
+ <row>
+ <cell>
+ <JLabel id='strataLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <BeanComboBox id='strataComboBox' constructorParams='this'
+ genericType='FishingOperationLocation'/>
+ </cell>
+ <cell>
+ <JLabel id='subStrataLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <BeanComboBox id='subStrataComboBox' constructorParams='this'
+ genericType='FishingOperationLocation'/>
+ </cell>
+ <cell>
+ <JLabel id='locationLabel'/>
+ </cell>
+ <cell weightx='0.3'>
+ <BeanComboBox id='locationComboBox' constructorParams='this'
+ genericType='FishingOperationLocation'/>
+ </cell>
+ </row>
- <!-- début de traine long-lat-date-heure
- fin de traine long-lat-date-heure -->
- <row>
- <cell columns='6'>
- <JPanel layout="{new BorderLayout()}">
- <Table id="gearCaracteristicsTable" fill="both" weightx='1'
- constraints='BorderLayout.CENTER'>
- <row>
- <cell>
- <JPanel/>
- </cell>
- <cell>
- <JLabel id='gearLatitudeLabel'/>
- </cell>
- <cell>
- <JLabel id='gearLongitudeLabel'/>
- </cell>
- <cell>
- <JLabel id='gearDateLabel'/>
- </cell>
- <cell>
- <JLabel id='gearTimeLabel'/>
- </cell>
- </row>
+ <!-- début de traine long-lat-date-heure
+ fin de traine long-lat-date-heure -->
+ <row>
+ <cell columns='6'>
+ <JPanel layout="{new BorderLayout()}">
+ <Table id="gearCaracteristicsTable" fill="both" weightx='1'
+ constraints='BorderLayout.CENTER'>
+ <row>
+ <cell>
+ <JPanel/>
+ </cell>
+ <cell>
+ <JLabel id='gearLatitudeLabel'/>
+ </cell>
+ <cell>
+ <JLabel id='gearLongitudeLabel'/>
+ </cell>
+ <cell>
+ <JLabel id='gearDateLabel'/>
+ </cell>
+ <cell>
+ <JLabel id='gearTimeLabel'/>
+ </cell>
+ </row>
- <row>
- <cell>
- <JLabel id='gearShootingStartLabel'/>
- </cell>
- <cell weightx='1'>
- <JPanel id='gearShootingStartLatitudePanel'>
- <NumberEditor id='gearShootingStartLatitudeDDField'
- constraints='"DD"'
- constructorParams='this'/>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMS"'>
- <NumberEditor
- id='gearShootingStartLatitudeDMSDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <row>
+ <cell>
+ <JLabel id='gearShootingStartLabel'/>
+ </cell>
+ <cell weightx='1'>
+ <JPanel id='gearShootingStartLatitudePanel'>
+ <NumberEditor id='gearShootingStartLatitudeDDField'
+ constraints='"DD"'
+ constructorParams='this'/>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMS"'>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMSDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingStartLatitudeDMSMinuteField'
- constructorParams='this' styleClass='minute'/>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMSMinuteField'
+ constructorParams='this' styleClass='minute'/>
- <NumberEditor
- id='gearShootingStartLatitudeDMSSecondField'
- constructorParams='this' styleClass='second'/>
- </JPanel>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMD"'>
- <NumberEditor
- id='gearShootingStartLatitudeDMDDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMSSecondField'
+ constructorParams='this' styleClass='second'/>
+ </JPanel>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMD"'>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMDDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingStartLatitudeDMDMinuteField'
- constructorParams='this'
- styleClass='decimalMinute'/>
+ <NumberEditor
+ id='gearShootingStartLatitudeDMDMinuteField'
+ constructorParams='this'
+ styleClass='decimalMinute'/>
+ </JPanel>
</JPanel>
- </JPanel>
- </cell>
- <cell weightx='1'>
- <JPanel id='gearShootingStartLongitudePanel'>
- <NumberEditor id='gearShootingStartLongitudeDDField'
- constraints='"DD"'
- constructorParams='this'/>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMS"'>
- <NumberEditor
- id='gearShootingStartLongitudeDMSDegreeField'
- constructorParams='this' styleClass='degree'/>
+ </cell>
+ <cell weightx='1'>
+ <JPanel id='gearShootingStartLongitudePanel'>
+ <NumberEditor id='gearShootingStartLongitudeDDField'
+ constraints='"DD"'
+ constructorParams='this'/>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMS"'>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMSDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingStartLongitudeDMSMinuteField'
- constructorParams='this' styleClass='minute'/>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMSMinuteField'
+ constructorParams='this' styleClass='minute'/>
- <NumberEditor
- id='gearShootingStartLongitudeDMSSecondField'
- constructorParams='this' styleClass='second'/>
- </JPanel>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMD"'>
- <NumberEditor
- id='gearShootingStartLongitudeDMDDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMSSecondField'
+ constructorParams='this' styleClass='second'/>
+ </JPanel>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMD"'>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMDDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingStartLongitudeDMDMinuteField'
- constructorParams='this'
- styleClass='decimalMinute'/>
+ <NumberEditor
+ id='gearShootingStartLongitudeDMDMinuteField'
+ constructorParams='this'
+ styleClass='decimalMinute'/>
+ </JPanel>
</JPanel>
- </JPanel>
- </cell>
- <cell>
- <JXDatePicker id='gearShootingStartDateField'
- onActionPerformed='handler.setDate(event, "gearShootingStartDate")'/>
- </cell>
- <cell>
- <SimpleTimeEditor id='gearShootingStartTimeField'
+ </cell>
+ <cell>
+ <JXDatePicker id='gearShootingStartDateField'
+ onActionPerformed='handler.setDate(event, "gearShootingStartDate")'/>
+ </cell>
+ <cell>
+ <SimpleTimeEditor id='gearShootingStartTimeField'
+ constructorParams='this'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel id='gearShootingEndLabel'/>
+ </cell>
+ <cell weightx='1'>
+ <JPanel id='gearShootingEndLatitudePanel'>
+ <NumberEditor id='gearShootingEndLatitudeDDField'
+ constraints='"DD"'
constructorParams='this'/>
- </cell>
- </row>
- <row>
- <cell>
- <JLabel id='gearShootingEndLabel'/>
- </cell>
- <cell weightx='1'>
- <JPanel id='gearShootingEndLatitudePanel'>
- <NumberEditor id='gearShootingEndLatitudeDDField'
- constraints='"DD"'
- constructorParams='this'/>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMS"'>
- <NumberEditor
- id='gearShootingEndLatitudeDMSDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMS"'>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMSDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingEndLatitudeDMSMinuteField'
- constructorParams='this' styleClass='minute'/>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMSMinuteField'
+ constructorParams='this' styleClass='minute'/>
- <NumberEditor
- id='gearShootingEndLatitudeDMSSecondField'
- constructorParams='this' styleClass='second'/>
- </JPanel>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMD"'>
- <NumberEditor
- id='gearShootingEndLatitudeDMDDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMSSecondField'
+ constructorParams='this' styleClass='second'/>
+ </JPanel>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMD"'>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMDDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingEndLatitudeDMDMinuteField'
- constructorParams='this'
- styleClass='decimalMinute'/>
+ <NumberEditor
+ id='gearShootingEndLatitudeDMDMinuteField'
+ constructorParams='this'
+ styleClass='decimalMinute'/>
+ </JPanel>
</JPanel>
- </JPanel>
- </cell>
- <cell weightx='1'>
- <JPanel id='gearShootingEndLongitudePanel'>
- <NumberEditor id='gearShootingEndLongitudeDDField'
- constraints='"DD"'
- constructorParams='this'/>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMS"'>
- <NumberEditor
- id='gearShootingEndLongitudeDMSDegreeField'
- constructorParams='this' styleClass='degree'/>
+ </cell>
+ <cell weightx='1'>
+ <JPanel id='gearShootingEndLongitudePanel'>
+ <NumberEditor id='gearShootingEndLongitudeDDField'
+ constraints='"DD"'
+ constructorParams='this'/>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMS"'>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMSDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingEndLongitudeDMSMinuteField'
- constructorParams='this' styleClass='minute'/>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMSMinuteField'
+ constructorParams='this' styleClass='minute'/>
- <NumberEditor
- id='gearShootingEndLongitudeDMSSecondField'
- constructorParams='this' styleClass='second'/>
- </JPanel>
- <JPanel layout="{new GridLayout(1,0)}"
- constraints='"DMD"'>
- <NumberEditor
- id='gearShootingEndLongitudeDMDDegreeField'
- constructorParams='this' styleClass='degree'/>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMSSecondField'
+ constructorParams='this' styleClass='second'/>
+ </JPanel>
+ <JPanel layout="{new GridLayout(1,0)}"
+ constraints='"DMD"'>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMDDegreeField'
+ constructorParams='this' styleClass='degree'/>
- <NumberEditor
- id='gearShootingEndLongitudeDMDMinuteField'
- constructorParams='this'
- styleClass='decimalMinute'/>
+ <NumberEditor
+ id='gearShootingEndLongitudeDMDMinuteField'
+ constructorParams='this'
+ styleClass='decimalMinute'/>
+ </JPanel>
</JPanel>
- </JPanel>
- </cell>
- <cell>
- <JXDatePicker id='gearShootingEndDateField'
- onActionPerformed='handler.setDate(event, "gearShootingEndDate")'/>
- </cell>
- <cell>
- <SimpleTimeEditor id='gearShootingEndTimeField'
+ </cell>
+ <cell>
+ <JXDatePicker id='gearShootingEndDateField'
+ onActionPerformed='handler.setDate(event, "gearShootingEndDate")'/>
+ </cell>
+ <cell>
+ <SimpleTimeEditor id='gearShootingEndTimeField'
+ constructorParams='this'/>
+ </cell>
+ </row>
+
+ <!-- FishingOperation rectiligne / distance chalutee / durée -->
+ <row>
+ <cell>
+ <JLabel/>
+ </cell>
+ <cell>
+ <JCheckBox id='fishingOperationRectiligneCheckBox'
+ onItemStateChanged='handler.setBoolean(event, "fishingOperationRectiligne")'/>
+ </cell>
+ <cell>
+ <JPanel layout="{new BorderLayout()}">
+ <JLabel id='trawlDistanceLabel'
+ constraints='BorderLayout.WEST'/>
+ <NumberEditor id='trawlDistanceField'
+ constraints='BorderLayout.CENTER'
constructorParams='this'/>
- </cell>
- </row>
+ </JPanel>
+ </cell>
+ <cell>
+ <JLabel/>
+ </cell>
+ <cell>
+ <JPanel layout="{new BorderLayout()}">
+ <JLabel id='durationLabel'
+ constraints='BorderLayout.WEST'/>
+ <JTextField id='durationField'
+ constraints='BorderLayout.CENTER'/>
+ </JPanel>
+ </cell>
+ </row>
- <!-- FishingOperation rectiligne / distance chalutee / durée -->
- <row>
- <cell>
- <JLabel/>
- </cell>
- <cell>
- <JCheckBox id='fishingOperationRectiligneCheckBox'
- onItemStateChanged='handler.setBoolean(event, "fishingOperationRectiligne")'/>
- </cell>
- <cell>
- <JPanel layout="{new BorderLayout()}">
- <JLabel id='trawlDistanceLabel'
- constraints='BorderLayout.WEST'/>
- <NumberEditor id='trawlDistanceField'
- constraints='BorderLayout.CENTER'
- constructorParams='this'/>
- </JPanel>
- </cell>
- <cell>
- <JLabel/>
- </cell>
- <cell>
- <JPanel layout="{new BorderLayout()}">
- <JLabel id='durationLabel'
- constraints='BorderLayout.WEST'/>
- <JTextField id='durationField'
- constraints='BorderLayout.CENTER'/>
- </JPanel>
- </cell>
- </row>
+ <!-- Fishing operation valid / invalid-->
+ <row>
+ <cell>
+ <JToolBar id='fishingOperationValidPanel'
+ layout='{new BorderLayout()}'>
+ <JButton id='resetValidStateButton'
+ constraints='BorderLayout.WEST'
+ onActionPerformed="model.setFishingOperationValid(null)"/>
+ <JRadioButton id='fishingOperationResetRadio'
+ constraints='BorderLayout.EAST'/>
+ </JToolBar>
+ </cell>
+ <cell>
+ <HBox>
+ <JRadioButton id='fishingOperationValidRadio'
+ onActionPerformed='model.setFishingOperationValid(Boolean.TRUE)'/>
+ <JRadioButton id='fishingOperationInvalidRadio'
+ onActionPerformed='model.setFishingOperationValid(Boolean.FALSE)'/>
+ </HBox>
+ </cell>
+ <cell columns="4">
+ <JPanel/>
+ </cell>
+ </row>
+ </Table>
+ </JPanel>
+ </cell>
+ </row>
- <!-- Fishing operation valid / invalid-->
- <row>
- <cell>
- <JToolBar id='fishingOperationValidPanel'
- layout='{new BorderLayout()}'>
- <JButton id='resetValidStateButton'
- constraints='BorderLayout.WEST'
- onActionPerformed="model.setFishingOperationValid(null)"/>
- <JRadioButton id='fishingOperationResetRadio'
- constraints='BorderLayout.EAST'/>
- </JToolBar>
- </cell>
- <cell>
- <HBox>
- <JRadioButton id='fishingOperationValidRadio'
- onActionPerformed='model.setFishingOperationValid(Boolean.TRUE)'/>
- <JRadioButton id='fishingOperationInvalidRadio'
- onActionPerformed='model.setFishingOperationValid(Boolean.FALSE)'/>
- </HBox>
- </cell>
- <cell columns="4">
- <JPanel/>
- </cell>
- </row>
- </Table>
- </JPanel>
- </cell>
- </row>
+ <!-- RecorderPerson / Vessel / Gear -->
+ <row weighty='0.2'>
+ <cell columns='6'>
+ <JPanel layout='{new GridLayout(1,0)}'>
+ <BeanDoubleList id='recorderPersonList' genericType='Person'/>
+ <Table fill="both" weightx='1' id='traitVesselPanel'>
+ <row>
+ <cell anchor='west'>
+ <JLabel id='vesselLabel'/>
+ </cell>
+ <cell weightx="1.0" fill="both">
+ <BeanComboBox id='vesselComboBox'
+ constructorParams='this'
+ genericType='Vessel'/>
+ </cell>
+ </row>
+ <row>
+ <cell anchor='west'>
+ <JLabel id='gearLabel'/>
+ </cell>
+ <cell>
+ <BeanComboBox id='gearComboBox'
+ constructorParams='this'
+ genericType='Gear'/>
+ </cell>
+ </row>
+ </Table>
+ </JPanel>
+ </cell>
+ </row>
- <!-- Actions d'import -->
- <row>
- <cell columns='6'>
- <JPanel layout='{new GridLayout(1,0)}'>
- <JButton id='importCasinoButton'/>
- <JButton id='attachmentsButton'/>
- </JPanel>
- </cell>
- </row>
-
- <!-- RecorderPerson / Vessel / Gear -->
- <row weighty='0.2'>
- <cell columns='6'>
- <JPanel layout='{new GridLayout(1,0)}'>
- <BeanDoubleList id='recorderPersonList' genericType='Person'/>
- <Table fill="both" weightx='1' id='traitVesselPanel'>
- <row>
- <cell anchor='west'>
- <JLabel id='vesselLabel'/>
- </cell>
- <cell weightx="1.0" fill="both">
- <BeanComboBox id='vesselComboBox'
- constructorParams='this'
- genericType='Vessel'/>
- </cell>
- </row>
- <row>
- <cell anchor='west'>
- <JLabel id='gearLabel'/>
- </cell>
- <cell>
- <BeanComboBox id='gearComboBox'
- constructorParams='this'
- genericType='Gear'/>
- </cell>
- </row>
- </Table>
- </JPanel>
- </cell>
- </row>
-
- <!-- Commentaire -->
- <row weighty='0.8'>
- <cell columns='6'>
- <JScrollPane id='commentPane'
- onFocusGained='commentField.requestFocus()'>
- <JTextArea id='commentField'
- onKeyReleased='handler.setText(event, "comment")'/>
- </JScrollPane>
- </cell>
- </row>
- </Table>
+ <!-- Commentaire -->
+ <row weighty='0.8'>
+ <cell columns='6'>
+ <JScrollPane id='commentPane'
+ onFocusGained='commentField.requestFocus()'>
+ <JTextArea id='commentField'
+ onKeyReleased='handler.setText(event, "comment")'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ </Table>
+ </JXTitledPanel>
<!--</JScrollPane>-->
</tab>
<tab id='gearUseFeatureTab'>
-
- <GearUseFeatureTabUI id='gearUseFeatureTabContent'
- constructorParams='this'/>
+ <JXTitledPanel id='gearUseFeatureTabPane'>
+ <GearUseFeatureTabUI id='gearUseFeatureTabContent'
+ constructorParams='this'/>
+ </JXTitledPanel>
</tab>
<tab id='vesselUseFeatureTab'>
-
- <VesselUseFeatureTabUI id='vesselUseFeatureTabContent'
- constructorParams='this'/>
+ <JXTitledPanel id='vesselUseFeatureTabPane'>
+ <VesselUseFeatureTabUI id='vesselUseFeatureTabContent'
+ constructorParams='this'/>
+ </JXTitledPanel>
</tab>
</JTabbedPane>
@@ -538,7 +536,4 @@
</JPanel>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -46,6 +46,7 @@
import fr.ifremer.tutti.ui.swing.util.TabHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.time.DateUtils;
@@ -357,13 +358,21 @@
clearValidators();
+ ui.getFishingOperationAttachmentsButton().onCloseUI();
closeUI(ui.getGearUseFeatureTabContent());
closeUI(ui.getVesselUseFeatureTabContent());
}
@Override
+ protected boolean onTabChanged(int currentIndex, int newIndex) {
+ ui.getFishingOperationAttachmentsButton().onCloseUI();
+ return super.onTabChanged(currentIndex, newIndex);
+ }
+
+ @Override
public boolean onHideTab(int currentIndex, int newIndex) {
boolean result;
+ ui.getFishingOperationAttachmentsButton().onCloseUI();
if (isAModelModified()) {
// something was modified
@@ -475,6 +484,23 @@
return fishingOperationMonitor;
}
+ public String getGearLatitudeLabelText(CoordinateEditorType coordinateEditorType) {
+ String result = _("tutti.label.fishingOperation.gearLatitude", coordinateEditorType.toString());
+ return result;
+ }
+
+ public String getGearLongitudeLabelText(CoordinateEditorType coordinateEditorType) {
+ String result = _("tutti.label.fishingOperation.gearLongitude", coordinateEditorType.toString());
+ return result;
+ }
+
+ public String getTrawlDistanceTooltipText(Float trawlDistance) {
+ String result = trawlDistance == null ?
+ null :
+ _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(trawlDistance));
+ return result;
+ }
+
@Override
public void setDate(ActionEvent event, String property) {
JXDatePicker field = (JXDatePicker) event.getSource();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -28,6 +28,9 @@
bean: {model};
}
+#fishingOperationsTopPanel {
+ _help: {"tuttihelp.fishingOperations.help"};
+}
#newFishingOperationButton {
_tuttiAction: {NewFishingOperationAction.class};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,15 +21,16 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='fishingOperationsTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<FishingOperationsUIModel, FishingOperationsUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.data.FishingOperation
- fr.ifremer.tutti.ui.swing.util.TuttiUI
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
jaxx.runtime.swing.editor.bean.BeanComboBox
@@ -55,6 +56,8 @@
<FishingOperationsUIModel id='model'
initializer='getContextValue(FishingOperationsUIModel.class)'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.fishingOperations.help"'/>
<Table fill='both' id='topPanel' constraints='BorderLayout.NORTH'>
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -41,6 +41,27 @@
computedDataColor: {handler.getConfig().getColorComputedWeights()};
}
+#editCatchesTopPanel {
+ _help: {"tuttihelp.editCatchBatch.help"};
+}
+#catchesCaracteristicsTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#catchesCaracteristicsAttachmentsButton {
+ enabled: {model.getObjectId() != null};
+}
+
+#catchesCaracteristicsTabPane {
+ rightDecoration: {catchesCaracteristicsTabToolBar};
+}
+
+#speciesTabFishingOperationReminderLabel {
+ rightDecoration: {speciesTabContent.getSpeciesBatchTabToolBar()};
+}
+
#catchTable {
border: {BorderFactory.createTitledBorder(_("tutti.legend.catch.total"))};
}
@@ -225,12 +246,6 @@
_tuttiAction: {ImportPupitriAction.class};
}
-#attachmentsButton {
- actionIcon: edit-attachment;
- toolTipText: "tutti.action.attachments.tip";
- text: {ButtonAttachmentEditor.getButtonText(model.getAttachment())};
-}
-
#benthosTab {
enabled: {false};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,10 +21,12 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editCatchesTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditCatchesUIModel, EditCatchesUIHandler>'>
<import>
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+
fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI
fr.ifremer.tutti.ui.swing.content.operation.catches.accidental.AccidentalBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchUI
@@ -36,7 +38,7 @@
fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
fr.ifremer.tutti.ui.swing.util.editor.TuttiComputedOrNotDataEditor
org.jdesktop.swingx.JXTitledPanel
@@ -44,9 +46,6 @@
jaxx.runtime.swing.CardLayout2Ext
jaxx.runtime.swing.editor.NumberEditor
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
static org.nuiton.i18n.I18n._
static jaxx.runtime.SwingUtil.getStringValue
static fr.ifremer.tutti.ui.swing.util.TuttiUIUtil.getWeightStringValue
@@ -70,9 +69,7 @@
<EditCatchesUIModel id='model'
initializer='getContextValue(EditCatchesUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
-
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='catchTotalWeight' component='catchTotalWeightField'/>
<!-- <field name='catchTotalSortedTremisWeight'
@@ -99,6 +96,15 @@
<CardLayout2Ext id='speciesTabPanelLayout'
constructorParams='this, "speciesTabPanel"'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editCatchBatch.help"'/>
+
+ <JToolBar id='catchesCaracteristicsTabToolBar'>
+ <JButton id='importPupitriButton'/>
+ <ButtonAttachment id='catchesCaracteristicsAttachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
+ </JToolBar>
+
<JTabbedPane id='tabPane' constraints='BorderLayout.CENTER'>
<tab id='catchesCaracteristicsTab'>
<JXTitledPanel id='catchesCaracteristicsTabPane'>
@@ -276,16 +282,6 @@
</Table>
</cell>
</row>
-
- <!-- Actions d'import -->
- <row>
- <cell columns='2'>
- <JPanel layout='{new GridLayout(1,0)}'>
- <JButton id='importPupitriButton'/>
- <JButton id='attachmentsButton'/>
- </JPanel>
- </cell>
- </row>
</Table>
</JPanel>
</JScrollPane>
@@ -352,7 +348,4 @@
</JPanel>
</JPanel>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
\ No newline at end of file
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -113,7 +113,7 @@
if (log.isInfoEnabled()) {
log.info("closing: " + ui);
}
-
+ ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI();
// close batches tabs, then general tab
closeUI(ui.getSpeciesTabContent());
// closeUI(ui.getBenthosTabContent());
@@ -151,7 +151,17 @@
}
@Override
+ protected boolean onTabChanged(int currentIndex, int newIndex) {
+ ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI();
+ ui.getSpeciesTabContent().getSpeciesBatchAttachmentsButton().onCloseUI();
+ return super.onTabChanged(currentIndex, newIndex);
+ }
+
+ @Override
public boolean onHideTab(int currentIndex, int newIndex) {
+
+ ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI();
+ ui.getSpeciesTabContent().getSpeciesBatchAttachmentsButton().onCloseUI();
//FIXME 20130203 kmorin: cannot change tab if model is modified
// (I do not even know why it is set to modified and have no time
// before the demo)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -194,8 +194,10 @@
public void setCatchBatch(CatchBatch catchBatch) {
Object oldValue = getCatchBatch();
+ Object oldObjectId = getObjectId();
this.catchBatch = catchBatch;
firePropertyChange(PROPERTY_CATCH_BATCH, oldValue, catchBatch);
+ firePropertyChange(PROPERTY_OBJECT_ID, oldObjectId, getObjectId());
}
public FishingOperation getFishingOperation() {
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -27,7 +27,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -249,9 +248,7 @@
Decorator<Attachment> decorator = getDecorator(Attachment.class, null);
addColumnToModel(columnModel,
AttachmentCellEditor.newEditor(
- ui,
- AttachmentCellRenderer.newRender(decorator),
- AttachementObjectTypeEnum.SAMPLE
+ ui
),
AttachmentCellRenderer.newRender(decorator),
AccidentalBatchTableModel.ATTACHMENTS);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -28,7 +28,6 @@
fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
jaxx.runtime.swing.editor.NumberEditor
@@ -144,7 +143,4 @@
onFocusLost='handler.saveSelectedRowIfRequired(event)'/>
</JScrollPane>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -26,7 +26,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
@@ -265,9 +264,8 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
- AttachementObjectTypeEnum.SAMPLE),
+ AttachmentCellEditor.newEditor(ui
+ ),
AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
BenthosBatchTableModel.ATTACHMENT);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -26,7 +26,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.MacroWasteBatch;
@@ -256,9 +255,8 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
- AttachementObjectTypeEnum.SAMPLE),
+ AttachmentCellEditor.newEditor(ui
+ ),
AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
MacroWasteBatchTableModel.ATTACHMENTS);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -26,7 +26,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.PlanktonBatch;
@@ -252,9 +251,8 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
- AttachementObjectTypeEnum.SAMPLE),
+ AttachmentCellEditor.newEditor(ui
+ ),
AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
PlanktonBatchTableModel.ATTACHMENTS);
}
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -41,6 +41,19 @@
computedDataColor: {handler.getConfig().getColorComputedWeights()};
}
+#speciesBatchTopPanel {
+ _help: {"tuttihelp.editSpeciesBatch.help"};
+}
+#speciesBatchTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#speciesBatchAttachmentsButton {
+ enabled: {model.getObjectId() != null};
+}
+
#speciesTotalWeightLabel {
text: "tutti.label.catches.speciesTotalWeight";
labelFor: {speciesTotalWeightField};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,13 +21,13 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='speciesBatchTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<SpeciesBatchUIModel, SpeciesBatchUIHandler>'>
<import>
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.util.TuttiUI
-
- fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
fr.ifremer.tutti.ui.swing.util.editor.TuttiComputedOrNotDataEditor
@@ -35,9 +35,6 @@
jaxx.runtime.swing.editor.NumberEditor
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
-
javax.swing.ListSelectionModel
java.awt.Color
@@ -65,14 +62,20 @@
<SpeciesBatchUIModel id='model'
initializer='getContextValue(SpeciesBatchUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
-
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='speciesTotalSortedWeight'
component='speciesTotalSortedWeightField'/>
</BeanValidator>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editSpeciesBatch.help"'/>
+
+ <JToolBar id='speciesBatchTabToolBar'>
+ <ButtonAttachment id='speciesBatchAttachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
+ </JToolBar>
+
<LongTextEditorUI id='longTextEditor'/>
<JPopupMenu id='tablePopup'>
@@ -144,7 +147,6 @@
<JPanel layout='{new GridLayout(1,0)}' constraints='BorderLayout.WEST'>
<JButton id='createSpeciesBatchButton'
onActionPerformed='handler.createSpeciesBatch()'/>
- <JButton id='attachmentsButton'/>
</JPanel>
<JPanel id='filterTablePane' constraints='BorderLayout.CENTER'>
<JLabel id='filterSpeciesBatchLabel'/>
@@ -166,7 +168,4 @@
onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
</JScrollPane>
- <ButtonAttachmentEditor id='attachmentEditor'
- initializer='ButtonAttachmentEditor.newEditor(this, attachmentsButton)'/>
-
</JPanel>
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -30,7 +30,6 @@
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.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -629,9 +628,8 @@
{ // File column
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
- AttachementObjectTypeEnum.SAMPLE),
+ AttachmentCellEditor.newEditor(ui
+ ),
AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
SpeciesBatchTableModel.ATTACHMENT);
}
@@ -710,6 +708,7 @@
if (log.isInfoEnabled()) {
log.info("Closing: " + ui);
}
+ ui.getSpeciesBatchAttachmentsButton().onCloseUI();
}
//------------------------------------------------------------------------//
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -371,7 +371,9 @@
}
public void setRootBatchId(String rootBatchId) {
+ String oldValue = getObjectId();
this.rootBatchId = rootBatchId;
+ firePropertyChange(PROPERTY_OBJECT_ID, oldValue, getObjectId());
}
public String getRootBatchId() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -28,6 +28,10 @@
bean: {model};
}
+#editProgramTopPanel {
+ _help: {"tuttihelp.editProgram.help"};
+}
+
#form {
border: {BorderFactory.createTitledBorder((String)null)};
}
@@ -35,6 +39,8 @@
#nameLabel {
text: "tutti.label.program.name";
labelFor: {nameField};
+ toolTipText: "tuttihelp.editProgram.field.name.tip";
+ _help: {"tuttihelp.editProgram.field.name.help"};
}
#nameField {
@@ -44,6 +50,8 @@
#commentPane {
border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
+ toolTipText: "tuttihelp.editProgram.field.comment.tip";
+ _help: {"tuttihelp.editProgram.field.comment.help"};
}
#commentField {
@@ -54,6 +62,8 @@
#zoneLabel {
text: "tutti.label.program.zone";
labelFor: {zoneComboBox};
+ toolTipText: "tuttihelp.editProgram.field.zone.tip";
+ _help: {"tuttihelp.editProgram.field.zone.help"};
}
#zoneComboBox {
@@ -65,8 +75,10 @@
#saveButton {
_tuttiAction: {SaveProgramAction.class};
enabled: {model.isModify() && model.isValid()};
+ _help: {"tuttihelp.editProgram.action.save.help"};
}
#cancelButton {
_tuttiAction: {CancelEditProgramAction.class};
+ _help: {"tuttihelp.editProgram.action.cancel.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,24 +21,23 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editProgramTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditProgramUIModel, EditProgramUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Zone
+
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.util.TuttiUI
- fr.ifremer.tutti.ui.swing.TuttiUIContext
jaxx.runtime.swing.editor.bean.BeanComboBox
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
java.awt.Dimension
javax.swing.ListSelectionModel
static org.nuiton.i18n.I18n._
static jaxx.runtime.SwingUtil.getStringValue
-
</import>
<script><![CDATA[
@@ -61,9 +60,10 @@
<EditProgramUIModel id='model'
initializer='getContextValue(EditProgramUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editProgram.help"'/>
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='name' component='nameField'/>
<field name='zone' component='zoneComboBox'/>
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -32,6 +32,10 @@
bean: {model};
}
+#editProtocolTopPanel {
+ _help: {"tuttihelp.editProtocol.help"};
+}
+
#form {
border: {BorderFactory.createTitledBorder((String)null)};
}
@@ -39,6 +43,8 @@
#nameLabel {
text: "tutti.label.protocol.name";
labelFor: {nameField};
+ toolTipText: "tuttihelp.editProtocol.field..tip";
+ _help: {"tuttihelp.editProtocol.field.name.help"};
}
#nameField {
@@ -48,6 +54,8 @@
#commentPane {
border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
+ toolTipText: "tuttihelp.editProtocol.field.comment.tip";
+ _help: {"tuttihelp.editProtocol.field.comment.help"};
}
#commentField {
@@ -68,24 +76,30 @@
#saveButton {
enabled: {model.isModify() && model.isValid()};
_tuttiAction: {SaveProtocolAction.class};
+ _help: {"tuttihelp.editProtocol.action.save.help"};
}
#cancelButton {
_tuttiAction: {CancelEditProtocolAction.class};
+ _help: {"tuttihelp.editProtocol.action.cancel.help"};
}
#speciesComboBox {
showReset: false;
enabled: {!speciesComboBox.isEmpty()};
+ toolTipText: "tuttihelp.editProtocol.field..tip";
+ _help: {"tuttihelp.editProtocol.field.species.help"};
}
#selectOtherSpecies {
_tuttiAction: {SelectOtherSpeciesAction.class};
+ _help: {"tuttihelp.editProtocol.action.selectOtherSpecies.help"};
}
#addSpeciesProtocol {
_tuttiAction: {AddSpeciesProtocolAction.class};
enabled: {speciesComboBox.getSelectedItem() != null};
+ _help: {"tuttihelp.editProtocol.action.addSpeciesProtocol.help"};
}
#tablePopup {
@@ -96,6 +110,7 @@
_tuttiAction: {RemoveSpeciesProtocolAction.class};
enabled: {model.isRemoveSpeciesEnabled()};
mnemonic: R;
+ _help: {"tuttihelp.editProtocol.action.removeSpeciesProtocol.help"};
}
#speciesTable {
@@ -103,44 +118,54 @@
selectionBackground: {null};
selectionForeground: {Color.BLACK};
sortable: false;
+ _help: {"tuttihelp.editProtocol.table.species.help"};
}
#caracteristicPane {
tabPlacement: {JTabbedPane.LEFT};
+ _help: {"tuttihelp.editProtocol.pane.caracteristic.help"};
}
#importSpecies {
_tuttiAction: {ImportProtocolSpeciesAction.class};
+ _help: {"tuttihelp.editProtocol.action.importSpecies.help"};
}
#exportSpecies {
_tuttiAction: {ExportProtocolSpeciesAction.class};
+ _help: {"tuttihelp.editProtocol.action.exportSpecies.help"};
}
#importCaracteristic {
_tuttiAction: {ImportProtocolCaracteristicAction.class};
+ _help: {"tuttihelp.editProtocol.action.importCaracteristic.help"};
}
#exportCaracteristic {
_tuttiAction: {ExportProtocolCaracteristicAction.class};
+ _help: {"tuttihelp.editProtocol.action.exportCaracteristic.help"};
}
#exportAllCaracteristic {
_tuttiAction: {ExportAllCaracteristicAction.class};
+ _help: {"tuttihelp.editProtocol.action.exportAllCaracteristic.help"};
}
#gearUseFeatureList {
property: gearUseFeaturePmfm;
beanType: {Caracteristic.class};
+ _help: {"tuttihelp.editProtocol.list.gearUseFeature.help"};
}
#vesselUseFeatureList {
property: vesselUseFeaturePmfm;
beanType: {Caracteristic.class};
+ _help: {"tuttihelp.editProtocol.list.vesselUseFeature.help"};
}
#lengthClassesList {
property: lengthClassesPmfm;
beanType: {Caracteristic.class};
+ _help: {"tuttihelp.editProtocol.list.lengthClasses.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,19 +21,19 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel id='homePanel' layout='{new BorderLayout()}'
+<JPanel id='editProtocolTopPanel' layout='{new BorderLayout()}' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditProtocolUIModel, EditProtocolUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Caracteristic
fr.ifremer.tutti.persistence.entities.referential.Species
+
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.util.TuttiUI
- fr.ifremer.tutti.ui.swing.TuttiUIContext
jaxx.runtime.swing.editor.bean.BeanComboBox
jaxx.runtime.swing.editor.bean.BeanDoubleList
- jaxx.runtime.validator.swing.SwingValidatorUtil
- jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
java.awt.Dimension
java.awt.Color
@@ -68,9 +68,10 @@
<EditProtocolUIModel id='model'
initializer='getContextValue(EditProtocolUIModel.class)'/>
- <SwingValidatorMessageTableModel id='errorTableModel'/>
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editProtocol.help"'/>
- <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
+ <BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='name' component='nameField'/>
<field name='comment' component='commentPane'/>
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -10,15 +10,15 @@
* %%
* 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
+ * 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
+ *
+ * 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%
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -38,7 +38,7 @@
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
-import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor;
+import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment;
import fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.SwingUtil;
@@ -353,8 +353,8 @@
} else if (component instanceof SimpleTimeEditor) {
initTimeEditor((SimpleTimeEditor) component);
- } else if (component instanceof ButtonAttachmentEditor) {
- initButtonAttachmentEditor((ButtonAttachmentEditor) component);
+ } else if (component instanceof ButtonAttachment) {
+ initButtonAttachment((ButtonAttachment) component);
} else if (component instanceof JLabel) {
JLabel jLabel = (JLabel) component;
@@ -393,7 +393,7 @@
}
}
- protected void initButtonAttachmentEditor(ButtonAttachmentEditor component) {
+ protected void initButtonAttachment(ButtonAttachment component) {
component.init();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -26,8 +26,6 @@
*/
import jaxx.runtime.SwingUtil;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -46,7 +44,7 @@
*/
public class CustomTab extends JPanel {
- private Log log = LogFactory.getLog(CustomTab.class);
+ private static final long serialVersionUID = 1L;
protected AbstractTuttiBeanUIModel model;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionException.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionException.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionException.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -45,7 +45,7 @@
Throwable cause) {
TuttiActionException result;
if (cause instanceof TuttiActionException) {
- result = ((TuttiActionException)cause);
+ result = ((TuttiActionException) cause);
} else {
result = new TuttiActionException(action, cause);
}
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -133,9 +133,6 @@
@Override
public void run() {
try {
- if (log.isInfoEnabled()) {
- log.info("Log to death!");
- }
worker.get();
} catch (ExecutionException e) {
// don't care .
@@ -164,9 +161,9 @@
}
}
- // protected void setMnemonic(int key) {
-// putValue(MNEMONIC_KEY, key);
-// }
+ public void setMnemonic(int key) {
+ putValue(MNEMONIC_KEY, key);
+ }
protected static class TuttiActionSwingWorker<A extends AbstractTuttiAction> extends SwingWorker<Void, String> {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellEditor.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellEditor.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellEditor.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -25,29 +25,25 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
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.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
-import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
-import jaxx.runtime.SwingUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.border.LineBorder;
+import javax.swing.event.CellEditorListener;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
import javax.swing.table.TableCellEditor;
import java.awt.Color;
import java.awt.Component;
-import java.awt.Frame;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
+import java.util.EventObject;
-import static org.nuiton.i18n.I18n._;
-
/**
* To edit attachments from a table cell.
*
@@ -62,90 +58,36 @@
/** Logger. */
private static final Log log = LogFactory.getLog(AttachmentCellEditor.class);
- public static TableCellEditor newEditor(TuttiUI ui,
- AttachmentCellRenderer renderer,
- AttachementObjectTypeEnum objectType) {
+ public static TableCellEditor newEditor(TuttiUI ui) {
- Frame frame = SwingUtil.getParentContainer(ui, Frame.class);
-
- renderer.setBorder(new LineBorder(Color.BLACK));
-
- return new AttachmentCellEditor(frame, renderer, objectType);
+ return new AttachmentCellEditor(ui.getHandler().getContext());
}
- protected final AttachmentCellRenderer component;
-
- protected AttachmentEditor attachmentEditor;
-
protected JTable table;
protected AbstractTuttiTableModel<AbstractTuttiBeanUIModel> tableModel;
- protected ColumnIdentifier<AbstractTuttiBeanUIModel> columnIdentifier;
-
- protected AttachmentModelAware editRow;
-
protected Integer rowIndex;
protected Integer columnIndex;
- protected PropertyChangeListener reloadAttachmentEditorTextListener;
+ protected final ButtonAttachment editorButton;
- public AttachmentCellEditor(Frame frame,
- AttachmentCellRenderer component,
- AttachementObjectTypeEnum objectTypeProperty) {
+ public AttachmentCellEditor(TuttiUIContext context) {
- this.component = component;
-
- reloadAttachmentEditorTextListener = new PropertyChangeListener() {
+ this.editorButton = new ButtonAttachment(context, null);
+ this.editorButton.setBorder(new LineBorder(Color.BLACK));
+ addCellEditorListener(new CellEditorListener() {
@Override
- public void propertyChange(PropertyChangeEvent evt) {
-
- tableModel.fireTableCellUpdated(rowIndex, columnIndex);
-// List<Attachment> attachment = (List<Attachment>) evt.getNewValue();
-// AttachmentCellEditor.this.component.setText(ButtonAttachmentEditor.getButtonText(attachment));
+ public void editingStopped(ChangeEvent e) {
+ editorButton.setSelected(false);
}
- };
- this.attachmentEditor = new AttachmentEditor(frame,
- component,
- objectTypeProperty,
- _("tutti.table.accidental.batch.header.file")) {
-
- private static final long serialVersionUID = 1L;
-
@Override
- protected AttachmentModelAware getBean() {
- return editRow;
+ public void editingCanceled(ChangeEvent e) {
+ editorButton.setSelected(false);
}
-
- @Override
- public void startEdit() {
-
- ((AbstractTuttiBeanUIModel) getBean()).addPropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, reloadAttachmentEditorTextListener);
-
- try {
- super.startEdit();
- int r = rowIndex;
- int c = columnIndex;
-
- // stop edition
- stopCellEditing();
-
- // refresh cell
- tableModel.fireTableCellUpdated(r, c);
-
- // reselect this cell
- AbstractSelectTableAction.doSelectCell(table, r, c);
-
- // focus on table
- table.requestFocus();
- } finally {
-
- ((AbstractTuttiBeanUIModel) getBean()).removePropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, reloadAttachmentEditorTextListener);
- }
- }
- };
+ });
}
@Override
@@ -156,25 +98,32 @@
int column) {
this.table = table;
this.tableModel = (AbstractTuttiTableModel<AbstractTuttiBeanUIModel>) table.getModel();
- columnIdentifier = tableModel.getPropertyName(column);
rowIndex = row;
columnIndex = column;
- editRow = (AttachmentModelAware) tableModel.getEntry(row);
+ AttachmentModelAware model =
+ (AttachmentModelAware) tableModel.getEntry(row);
- return component;
+ editorButton.init(model);
+
+ return editorButton;
}
@Override
+ public boolean shouldSelectCell(EventObject anEvent) {
+ return false;
+ }
+
+ @Override
public Object getCellEditorValue() {
- Preconditions.checkNotNull(editRow, "No editRow found in editor.");
+ AttachmentModelAware model = editorButton.getBean();
+ Preconditions.checkNotNull(model, "No model found in editor.");
- String propertyName = columnIdentifier.getPropertyName();
- Object result = TuttiUIUtil.getProperty(editRow, propertyName);
+ Object result = model.getAttachment();
if (log.isInfoEnabled()) {
- log.info("editor value (" + propertyName + "): " + result);
+ log.info("editor value: " + result);
}
return result;
@@ -184,18 +133,14 @@
public boolean stopCellEditing() {
boolean b = super.stopCellEditing();
if (b) {
- rowIndex = null;
- editRow = null;
- columnIndex = null;
+ editorButton.setBean(null);
}
return b;
}
@Override
public void cancelCellEditing() {
+ editorButton.setBean(null);
super.cancelCellEditing();
- rowIndex = null;
- columnIndex = null;
- editRow = null;
}
}
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -29,10 +29,10 @@
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.decorator.Decorator;
+import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
-import java.awt.Component;
-import java.util.Collection;
+import java.util.List;
import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
@@ -46,7 +46,6 @@
*/
public class AttachmentCellRenderer extends DefaultTableCellRenderer {
-
public static final String TEXT_PATTERN = "<html><body>%s</body></html>";
private static final long serialVersionUID = 1L;
@@ -72,18 +71,15 @@
}
@Override
- public Component getTableCellRendererComponent(JTable table,
- Object value,
- boolean isSelected,
- boolean hasFocus,
- int row,
- int column) {
+ public JComponent getTableCellRendererComponent(JTable table,
+ Object value,
+ boolean isSelected,
+ boolean hasFocus,
+ int row,
+ int column) {
-// if (table != null) {
+ List<Attachment> attachments = (List<Attachment>) value;
- Collection<Attachment> attachments = (Collection<Attachment>) value;
-
- String textValue;
String toolTipTextValue;
if (CollectionUtils.isEmpty(attachments)) {
@@ -91,7 +87,7 @@
// use HTML to show the tooltip in italic
toolTipTextValue = "<i>" + _(noneText) + "</i>";
- textValue = null;
+
} else {
StringBuilder sb = new StringBuilder();
@@ -100,14 +96,13 @@
}
// use html to display the tooltip on several lines
toolTipTextValue = sb.substring(5);
- textValue = "(" + attachments.size() + ")";
}
+ String textValue = ButtonAttachment.getButtonText(attachments);
boolean editable = table.isCellEditable(row, column);
toolTipTextValue = String.format(TEXT_PATTERN, toolTipTextValue);
setEnabled(editable);
setText(textValue);
setToolTipText(toolTipTextValue);
-// }
return this;
}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditor.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditor.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditor.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -1,155 +0,0 @@
-package fr.ifremer.tutti.ui.swing.util.attachment;
-
-/*
- * #%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.ezware.oxbow.swingbits.util.Preconditions;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
-import jaxx.runtime.JAXXUtil;
-import jaxx.runtime.swing.ComponentMover;
-import jaxx.runtime.swing.ComponentResizer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.swing.BorderFactory;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import java.awt.Component;
-import java.awt.Frame;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-
-/**
- * Editor of attachment.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.2
- */
-public abstract class AttachmentEditor extends JDialog {
-
- private static final long serialVersionUID = 1L;
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(AttachmentEditor.class);
-
- protected AttachmentEditorUI editor;
-
- protected JComponent component;
-
- public AttachmentEditor(Frame owner,
- JComponent component,
- AttachementObjectTypeEnum objectType,
- String title) {
- super(owner, true);
-
- Preconditions.checkNotNull(
- component,
- "AttachmentEditor.component can not be null");
- this.component = component;
- this.editor = new AttachmentEditorUI();
- editor.setBorder(BorderFactory.createTitledBorder(title));
- editor.setObjectType(objectType);
- editor.setObjectIdProperty(AttachmentModelAware.PROPERTY_OBJECT_ID);
-
- setUndecorated(true);
- add(editor);
- setResizable(true);
- pack();
-
- ComponentResizer cr = new ComponentResizer();
- cr.registerComponent(this);
- ComponentMover cm = new ComponentMover();
- cm.setDragInsets(cr.getDragInsets());
- cm.registerComponent(this);
-
- addWindowListener(new WindowAdapter() {
-
- @Override
- public void windowClosed(WindowEvent e) {
- Component ui = (Component) e.getSource();
- if (log.isInfoEnabled()) {
- log.info("Destroy ui " + ui);
- }
- JAXXUtil.destroy(ui);
- }
- });
-
- component.addKeyListener(new KeyAdapter() {
- @Override
- public void keyReleased(KeyEvent e) {
- if (e.getKeyCode() == KeyEvent.VK_ENTER ||
- e.getKeyCode() == KeyEvent.VK_SPACE) {
- e.consume();
- if (((JComponent) e.getSource()).isEnabled()) {
- startEdit();
- }
- }
- }
- });
-
- component.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- e.consume();
- if (((JComponent) e.getSource()).isEnabled()) {
- startEdit();
- }
- }
- });
- }
-
- protected abstract AttachmentModelAware getBean();
-
- public void startEdit() {
-
- editor.setBean(getBean());
-
- // Computes the location of bottom left corner of the cell
- Component comp = component;
- int x = 0;
- int y = component.getHeight();
- while (comp != null) {
- x += comp.getX();
- y += comp.getY();
- comp = comp.getParent();
- }
-
- pack();
- // if the editor is too big on the right,
- // then align its right side to the right side of the cell
- if (x + getWidth() > getOwner().getX() + getOwner().getWidth()) {
- x = x - getWidth() + component.getWidth();
- }
- setLocation(x, y);
- setVisible(true);
- }
-
- protected JComponent getComponent() {
- return component;
- }
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.css 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.css 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,6 +21,16 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+
+#attachmentDialog {
+ undecorated: true;
+ alwaysOnTop: true;
+}
+
+#attachmentBody {
+ title: "tutti.title.attachment";
+}
+
#fileLabel {
text: "tutti.label.attachmentEditor.file";
labelFor: {file};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.jaxx 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUI.jaxx 2013-03-09 13:59:14 UTC (rev 567)
@@ -21,23 +21,47 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<Table id='mainPanel'>
+<JDialog id='attachmentDialog' layout='{new BorderLayout()}'>
<import>
- fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel
- fr.ifremer.tutti.persistence.entities.data.Attachment
- fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
+
jaxx.runtime.swing.editor.FileEditor
+ org.jdesktop.swingx.JXTitledPanel
+ javax.swing.JComponent
</import>
+ <script><![CDATA[
+
+public AttachmentEditorUI(TuttiUIContext context) {
+ super(context.getMainUI());
+ setContextValue(context);
+ AttachmentEditorUIHandler handler = new AttachmentEditorUIHandler(context, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+}
+
+protected void $afterCompleteSetup() {
+ getHandler().afterInitUI();
+}
+
+public void openEditor(JComponent component) {
+ handler.openEditor(component);
+}
+
+public void closeEditor() {
+ handler.closeEditor();
+}
+ ]]></script>
+
<!-- bean property where to find the objectId to attach to Attachment (see Attachment#objectId) -->
- <String id='objectIdProperty' javaBean='""'/>
+ <!--<String id='objectIdProperty' javaBean='""'/>-->
<!-- object type of attachments (see Attachment#objectType) -->
- <AttachementObjectTypeEnum id='objectType' javaBean='null'/>
+ <!--<AttachementObjectTypeEnum id='objectType' javaBean='null'/>-->
<!-- bean property linked state -->
- <String id='property' javaBean='""'/>
+ <!--<String id='property' javaBean='""'/>-->
<!-- if true, display the form to add attachments
and the button to remove existing attachments -->
@@ -46,47 +70,54 @@
<!-- bean property -->
<AttachmentModelAware id='bean' javaBean='null'/>
- <AttachmentEditorUIHandler id='handler' constructorParams='this'/>
+ <AttachmentEditorUIHandler id='handler'
+ initializer='getContextValue(AttachmentEditorUIHandler.class)'/>
- <row fill='both'>
- <cell fill='both' weightx='1' columns='3'>
- <VBox id='attachments'></VBox>
- </cell>
- </row>
- <row fill='both'>
- <cell fill='both' weightx='1'>
- <JLabel id='fileLabel'/>
- </cell>
- <cell fill='both' weightx='1'>
- <FileEditor id='file'/>
- </cell>
- <cell fill='both' rows='3'>
- <JButton id='addButton'
- onActionPerformed='handler.addAttachment()'/>
- </cell>
- </row>
- <row fill='both'>
- <cell fill='both' weightx='1'>
- <JLabel id='fileNameLabel'/>
- </cell>
- <cell fill='both' weightx='1'>
- <JTextField id='fileName'/>
- </cell>
- </row>
- <row fill='both' weighty='1'>
- <cell fill='both' weightx='1'>
- <JLabel id='fileCommentLabel'/>
- </cell>
- <cell fill='both' weightx='1'>
- <JScrollPane>
- <JTextArea id='fileComment' rows='3'/>
- </JScrollPane>
- </cell>
- </row>
- <row fill='both'>
- <!-- actions -->
- <cell fill='both' weightx='1' columns='3'>
- <JButton id='closeButton' onActionPerformed='handler.close()'/>
- </cell>
- </row>
-</Table>
\ No newline at end of file
+ <JXTitledPanel id='attachmentBody' constraints='BorderLayout.CENTER'>
+ <JScrollPane id='attachmentBodyScrollPane'>
+ <Table id='mainPanel'>
+
+ <row fill='both'>
+ <cell fill='both' weightx='1' columns='3'>
+ <VBox id='attachments'></VBox>
+ </cell>
+ </row>
+ <row fill='both'>
+ <cell fill='both' weightx='1' columns='3'>
+ <JSeparator/>
+ </cell>
+ </row>
+ <row fill='both'>
+ <cell fill='both' weightx='1'>
+ <JLabel id='fileLabel'/>
+ </cell>
+ <cell fill='both' weightx='1'>
+ <FileEditor id='file'/>
+ </cell>
+ <cell fill='both' rows='3'>
+ <JButton id='addButton'
+ onActionPerformed='handler.addAttachment()'/>
+ </cell>
+ </row>
+ <row fill='both'>
+ <cell fill='both' weightx='1'>
+ <JLabel id='fileNameLabel'/>
+ </cell>
+ <cell fill='both' weightx='1'>
+ <JTextField id='fileName'/>
+ </cell>
+ </row>
+ <row fill='both' weighty='1'>
+ <cell fill='both' weightx='1'>
+ <JLabel id='fileCommentLabel'/>
+ </cell>
+ <cell fill='both' weightx='1'>
+ <JScrollPane>
+ <JTextArea id='fileComment' rows='3'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ </Table>
+ </JScrollPane>
+ </JXTitledPanel>
+</JDialog>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -27,28 +27,36 @@
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.ComponentMover;
+import jaxx.runtime.swing.ComponentResizer;
import jaxx.runtime.swing.HBox;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.ImageIcon;
import javax.swing.JButton;
-import javax.swing.JDialog;
+import javax.swing.JComponent;
import javax.swing.JLabel;
+import javax.swing.JRootPane;
+import javax.swing.JToolBar;
+import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
+import java.awt.Component;
import java.awt.Cursor;
-import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.List;
+import static org.nuiton.i18n.I18n._;
+
/**
* @author kmorin <morin(a)codelutin.com>
* @author tchemit <chemit(a)codelutin.com>
@@ -60,25 +68,118 @@
private static final Log log =
LogFactory.getLog(AttachmentEditorUIHandler.class);
- private final AttachmentEditorUI ui;
+ public static final String CLOSE_DIALOG_ACTION = "closeDialog";
- private final PersistenceService persistenceService;
+ public static final String SHOW_DIALOG_ACTION = "showDialog";
- public AttachmentEditorUIHandler(AttachmentEditorUI ui) {
+ protected final AttachmentEditorUI ui;
+
+ protected final PersistenceService persistenceService;
+
+ protected final TuttiUIContext context;
+
+ public AttachmentEditorUIHandler(TuttiUIContext context,
+ AttachmentEditorUI ui) {
+ this.context = context;
this.ui = ui;
- persistenceService =
- TuttiUIContext.getApplicationContext().getPersistenceService();
+ this.persistenceService = context.getPersistenceService();
+// this.ui.addPropertyChangeListener(new PropertyChangeListener() {
+//
+// @Override
+// public void propertyChange(PropertyChangeEvent evt) {
+// if (log.isInfoEnabled()) {
+// log.info("Init (property " + evt.getPropertyName() + " changed).");
+// }
+// init();
+// }
+// });
+ }
- this.ui.addPropertyChangeListener(new PropertyChangeListener() {
+ protected void beforeInitUI() {
+ }
+ protected void afterInitUI() {
+
+ ui.getFile().setDialogOwner(ui);
+ ui.pack();
+ ui.setResizable(true);
+// ui.setSize(800, 300);
+
+ ComponentResizer cr = new ComponentResizer();
+ cr.registerComponent(ui);
+ ComponentMover cm = new ComponentMover();
+ cm.setDragInsets(cr.getDragInsets());
+ cm.registerComponent(ui);
+
+ JRootPane rootPane = ui.getRootPane();
+
+ KeyStroke shortcutClosePopup = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
+
+ rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
+ shortcutClosePopup, CLOSE_DIALOG_ACTION);
+
+ closeAction = new AbstractAction() {
+ private static final long serialVersionUID = 1L;
+
@Override
- public void propertyChange(PropertyChangeEvent evt) {
- init();
+ public void actionPerformed(ActionEvent e) {
+ ui.dispose();
+ ui.setVisible(false);
}
- });
+ };
+
+ openAction = new AbstractAction() {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ui.setVisible(true);
+ }
+ };
+
+ ImageIcon actionIcon = SwingUtil.createActionIcon("close-dialog");
+ closeAction.putValue(Action.SMALL_ICON, actionIcon);
+ closeAction.putValue(Action.LARGE_ICON_KEY, actionIcon);
+ closeAction.putValue(Action.ACTION_COMMAND_KEY, "close");
+ closeAction.putValue(Action.NAME, "close");
+ closeAction.putValue(Action.SHORT_DESCRIPTION, _("tutti.action.closeAttachment.tip"));
+
+ rootPane.getActionMap().put(CLOSE_DIALOG_ACTION, closeAction);
+ rootPane.getActionMap().put(SHOW_DIALOG_ACTION, openAction);
+
+ JButton closeButton = new JButton(closeAction);
+ closeButton.setText(null);
+ closeButton.setFocusPainted(false);
+ closeButton.setRequestFocusEnabled(false);
+ closeButton.setFocusable(false);
+
+ JToolBar jToolBar = new JToolBar();
+ jToolBar.setOpaque(false);
+ jToolBar.add(closeAction);
+ jToolBar.setBorderPainted(false);
+ jToolBar.setFloatable(false);
+ ui.getAttachmentBody().setRightDecoration(jToolBar);
}
+ protected Action closeAction;
+
+ protected Action openAction;
+
+ public void closeEditor() {
+
+ closeAction.actionPerformed(null);
+ }
+
+ public void openEditor(JComponent component) {
+
+ if (component != null) {
+ place(component);
+ }
+ openAction.actionPerformed(null);
+ }
+
public void init() {
resetFields();
ui.getAttachments().removeAll();
@@ -93,6 +194,51 @@
}
}
+ public void place(JComponent component) {
+ // Computes the location of bottom left corner of the cell
+ Component comp = component;
+ int x = 0;
+ int y = component.getHeight();
+ while (comp != null) {
+ x += comp.getX();
+ y += comp.getY();
+ comp = comp.getParent();
+ }
+
+ ui.pack();
+ // if the editor is too big on the right,
+ // then align its right side to the right side of the cell
+ if (x + ui.getWidth() > ui.getOwner().getX() + ui.getOwner().getWidth()) {
+ x = x - ui.getWidth() + component.getWidth();
+ }
+ ui.setLocation(x, y);
+ }
+
+ public void addAttachment() {
+ AttachmentModelAware bean = ui.getBean();
+ Attachment attachment = new Attachment();
+
+ File file = ui.getFile().getSelectedFile();
+ if (file != null) {
+ String name = ui.getFileName().getText();
+ if (StringUtils.isEmpty(name)) {
+ name = file.getName();
+ }
+ attachment.setObjectType(bean.getObjectType());
+ attachment.setObjectId(Integer.valueOf(bean.getObjectId()));
+ attachment.setName(name);
+ attachment.setComment(ui.getFileComment().getText());
+
+ attachment = persistenceService.createAttachment(attachment, file);
+ bean.addAttachment(attachment);
+
+ resetFields();
+ addAttachment(attachment);
+
+ ui.pack();
+ }
+ }
+
protected void addAttachment(final Attachment attachment) {
final HBox hbox = new HBox();
hbox.setVerticalAlignment(SwingConstants.CENTER);
@@ -110,8 +256,7 @@
ui.getAttachments().remove(hbox);
- JDialog parent = SwingUtil.getParentContainer(ui, JDialog.class);
- parent.pack();
+ ui.pack();
}
});
hbox.add(deleteButton);
@@ -143,42 +288,9 @@
ui.getAttachments().add(hbox);
}
- /** closes the editor */
- public void close() {
- if (log.isInfoEnabled()) {
- log.info("Will close UI " + ui);
- }
- SwingUtil.getParentContainer(ui, Window.class).dispose();
- }
-
- public void addAttachment() {
- AttachmentModelAware bean = ui.getBean();
- Attachment attachment = new Attachment();
-
- File file = ui.getFile().getSelectedFile();
- if (file != null) {
- String name = ui.getFileName().getText();
- if (StringUtils.isEmpty(name)) {
- name = file.getName();
- }
- attachment.setObjectType(ui.getObjectType());
- attachment.setObjectId(Integer.valueOf(String.valueOf(TuttiUIUtil.getProperty(bean, ui.getObjectIdProperty()))));
- attachment.setName(name);
- attachment.setComment(ui.getFileComment().getText());
-
- attachment = persistenceService.createAttachment(attachment, file);
- bean.addAttachment(attachment);
-
- resetFields();
- addAttachment(attachment);
-
- JDialog parent = SwingUtil.getParentContainer(ui, JDialog.class);
- parent.pack();
- }
- }
-
protected void resetFields() {
ui.getFile().setSelectedFile((File) null);
+ ui.getFile().setSelectedFile((String) null);
ui.getFileName().setText("");
ui.getFileComment().setText("");
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -0,0 +1,188 @@
+package fr.ifremer.tutti.ui.swing.util.attachment;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import jaxx.runtime.SwingUtil;
+import org.jdesktop.beans.AbstractSerializableBean;
+
+import javax.swing.JToggleButton;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import java.awt.Point;
+import java.awt.event.HierarchyBoundsAdapter;
+import java.awt.event.HierarchyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Button to edit attachments.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.1
+ */
+public class ButtonAttachment extends JToggleButton {
+
+ private static final long serialVersionUID = 1L;
+
+ protected final AttachmentEditorUI popup;
+
+ private transient PropertyChangeListener listenAttachmentsChanged;
+
+ protected Point popupPosition = null;
+
+ protected boolean popupMoving;
+
+ public ButtonAttachment(TuttiUIContext context,
+ AttachmentModelAware model) {
+
+ setIcon(SwingUtil.createActionIcon("edit-attachment"));
+ setToolTipText(_("tutti.action.attachments.tip"));
+
+ popup = new AttachmentEditorUI(context);
+
+// popup.addComponentListener(new ComponentAdapter() {
+//
+// @Override
+// public void componentMoved(ComponentEvent e) {
+// Component component = e.getComponent();
+// if (component.isShowing() && !popupMoving) {
+// popupPosition = component.getLocationOnScreen();
+//
+// if (log.isInfoEnabled()) {
+// log.info("Popup has moved by user, keeping his position: " + popupPosition);
+// }
+// }
+// }
+// });
+
+ popup.addWindowListener(new WindowAdapter() {
+
+ @Override
+ public void windowOpened(WindowEvent e) {
+ setSelected(true);
+ }
+
+ @Override
+ public void windowClosing(WindowEvent e) {
+ setSelected(false);
+ }
+
+ @Override
+ public void windowClosed(WindowEvent e) {
+ setSelected(false);
+ }
+ });
+
+ addChangeListener(new ChangeListener() {
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ if (isSelected()) {
+ popup.openEditor(ButtonAttachment.this);
+ } else {
+ popup.closeEditor();
+ }
+ }
+ });
+
+ addHierarchyBoundsListener(new HierarchyBoundsAdapter() {
+
+ @Override
+ public void ancestorMoved(HierarchyEvent e) {
+ if (popup.isShowing()) {
+
+ // place dialog just under the button
+ Point point = new Point(getLocationOnScreen());
+ point.translate(-popup.getWidth() + getWidth(), getHeight());
+ popupMoving = true;
+ try {
+ popup.setLocation(point);
+ } finally {
+ popupMoving = false;
+ }
+ }
+ }
+ });
+ setBean(model);
+ }
+
+ public static String getButtonText(List<Attachment> attachment) {
+ return _("tutti.action.attachments", attachment.size());
+ }
+
+ public void init() {
+ popup.getHandler().init();
+ }
+
+ public void init(AttachmentModelAware model) {
+ setBean(model);
+ init();
+ }
+
+ public void onCloseUI() {
+ setSelected(false);
+ }
+
+ public AttachmentModelAware getBean() {
+ return popup.getBean();
+ }
+
+ protected void setBean(AttachmentModelAware model) {
+ AttachmentModelAware bean = popup.getBean();
+ if (bean != null) {
+ ((AbstractSerializableBean) bean).removePropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, getListenAttachmentsChanged());
+ }
+ popup.setBean(model);
+
+ if (model != null) {
+
+ ((AbstractSerializableBean) model).addPropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, getListenAttachmentsChanged());
+ List<Attachment> attachment = model.getAttachment();
+ setText(ButtonAttachment.getButtonText(attachment));
+ }
+ }
+
+ protected PropertyChangeListener getListenAttachmentsChanged() {
+ if (listenAttachmentsChanged == null) {
+ listenAttachmentsChanged = new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ List<Attachment> attachment = (List<Attachment>) evt.getNewValue();
+ setText(getButtonText(attachment));
+ if (!popup.isVisible()) {
+ init();
+ }
+ }
+ };
+ }
+ return listenAttachmentsChanged;
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachment.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachmentEditor.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachmentEditor.java 2013-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/ButtonAttachmentEditor.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -1,103 +0,0 @@
-package fr.ifremer.tutti.ui.swing.util.attachment;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.data.Attachment;
-import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import jaxx.runtime.SwingUtil;
-import org.jdesktop.beans.AbstractSerializableBean;
-
-import javax.swing.JButton;
-import java.awt.Frame;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.Collections;
-import java.util.List;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * To show attachment editor on a button.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.2
- */
-public class ButtonAttachmentEditor extends AttachmentEditor {
-
- private static final long serialVersionUID = 1L;
-
- public static String getButtonText(List<Attachment> attachment) {
- return _("tutti.action.attachments", attachment.size());
- }
-
- public static ButtonAttachmentEditor newEditor(TuttiUI ui,
- JButton button) {
-
- Frame frame = SwingUtil.getParentContainer(ui, Frame.class);
-
- return new ButtonAttachmentEditor(frame,
- button,
- (AttachmentModelAware) ui.getModel()
- );
- }
-
- protected final AttachmentModelAware model;
-
- protected ButtonAttachmentEditor(Frame owner,
- JButton component,
- AttachmentModelAware model) {
- super(owner,
- component,
- model.getObjectType(),
- null);
- this.model = model;
- }
-
- @Override
- protected AttachmentModelAware getBean() {
- return model;
- }
-
- protected JButton getComponent() {
- return (JButton) component;
- }
-
- public void init() {
-
- JButton button = getComponent();
- button.setIcon(SwingUtil.createActionIcon("edit-attachment"));
- button.setToolTipText(_("tutti.action.attachments.tip"));
- ((AbstractSerializableBean) model).addPropertyChangeListener(AttachmentModelAware.PROPERTY_ATTACHMENT, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- List<Attachment> attachment = (List<Attachment>) evt.getNewValue();
- getComponent().setText(ButtonAttachmentEditor.getButtonText(attachment));
- }
- });
- AttachmentModelAware bean = getBean();
- List<Attachment> attachment = bean == null ? Collections.<Attachment>emptyList() : bean.getAttachment();
- button.setText(ButtonAttachmentEditor.getButtonText(attachment));
- }
-}
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-03-09 13:59:14 UTC (rev 567)
@@ -307,7 +307,8 @@
new HighlightPredicate() {
@Override
public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- return StringUtils.isNotBlank((String) adapter.getValue());
+ String value = (String) adapter.getValue();
+ return StringUtils.isNotBlank(value);
}
}), cellWithValueColor);
table.addHighlighter(commentHighlighter);
@@ -320,7 +321,8 @@
new HighlightPredicate() {
@Override
public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
- return CollectionUtils.isNotEmpty((Collection) adapter.getValue());
+ Collection attachments = (Collection) adapter.getValue();
+ return CollectionUtils.isNotEmpty(attachments);
}
}
), cellWithValueColor);
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-03-09 07:57:31 UTC (rev 566)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-09 13:59:14 UTC (rev 567)
@@ -5,7 +5,7 @@
tutti.action.addSpecies.text=...
tutti.action.addSpecies.tip=Sélectionner une autre espèce
tutti.action.addSpeciesProtocol.tip=Ajouter une espèce au protocole
-tutti.action.attachments=Pièces jointes (%s)
+tutti.action.attachments=(%s)
tutti.action.attachments.tip=Pièces jointes
tutti.action.cancel=Annuler
tutti.action.cancel.editCruise=Annuler
@@ -29,6 +29,7 @@
tutti.action.cloneProtocol=Cloner
tutti.action.cloneProtocol.tip=Dupliquer le protocole sélectionné
tutti.action.close=Fermer
+tutti.action.closeAttachment.tip=Fermer la fenêtre des picèes-jointes
tutti.action.closeDb=Fermer
tutti.action.closeDb.tip=Fermer la base de données en cours d'utilisation
tutti.action.computeWeights=Elever les poids
@@ -159,6 +160,7 @@
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
tutti.action.selectOtherSpecies.text=...
tutti.action.selectOtherSpecies.tip=Sélectionner une autre espèce
+tutti.action.showHelp.tip=
tutti.action.site=Site
tutti.action.site.tip=Accéder au site du projet Tutti
tutti.action.splitSpeciesBatch=Catégoriser le lot
@@ -391,6 +393,7 @@
tutti.menu.synchronisations.tip=Import/Export
tutti.message.action.running=<html>Action <strong>%s</strong> en cours d'execution...<hr/></html>
tutti.option.cruiseId.description=Identifiant de la dernière campagne utilisée
+tutti.option.help.directory.description=Répertoire des fichiers d'aide
tutti.option.i18n.directory.description=Répertoire des fichiers de traductions
tutti.option.i18n.locale.description=Langue utilisée dans l'application
tutti.option.launch.mode.description=Mode de démarrage de l'application
@@ -487,6 +490,7 @@
tutti.table.species.sampleCategory.header.weight=Poids (kg)
tutti.timeeditor.H=H
tutti.title.about=À propos de Tutti
+tutti.title.attachment=Pièces jointes
tutti.title.choose.dbExportFile=Exporter la base de données
tutti.title.choose.exportTemporaryGearExampleFile=Exporter un exemple de référentiel Engin
tutti.title.choose.exportTemporaryPersonExampleFile=Exporter un exemple de référentiel Personne
@@ -590,3 +594,66 @@
tutti.validator.warning.longitude.outOfBounds=La Latitude doit être comprise entre -180.0 et 180.0
tutti.validator.warning.longitude.second.outOfBounds=La seconde de la longitude doit être comprise entre 0 et 60
tutti.weights.rate.difference.totalAndSorted.description=Pourcentage de différence entre les Poids totaux VRAC triés et les poids totaux VRAC en dessous duquel on demande confirmation sur la saisie.
+tuttihelp.editCruise.action.generateName.tip=
+tuttihelp.editCruise.beginDateField.tip=
+tuttihelp.editCruise.commentField.tip=
+tuttihelp.editCruise.countryComboBox.tip=
+tuttihelp.editCruise.endDateField.tip=
+tuttihelp.editCruise.field.beginDate.tip=
+tuttihelp.editCruise.field.comment.tip=
+tuttihelp.editCruise.field.country.tip=
+tuttihelp.editCruise.field.endDate.tip=
+tuttihelp.editCruise.field.multirigNumber.tip=
+tuttihelp.editCruise.field.name.tip=
+tuttihelp.editCruise.field.program.tip=
+tuttihelp.editCruise.field.surveyPart.tip=
+tuttihelp.editCruise.field.year.tip=
+tuttihelp.editCruise.filterVessel.tip=
+tuttihelp.editCruise.gearList.tip=
+tuttihelp.editCruise.generateNameAction.tip=
+tuttihelp.editCruise.headOfMissionList.tip=
+tuttihelp.editCruise.headOfSortRoomList.tip=
+tuttihelp.editCruise.list.gear.tip=
+tuttihelp.editCruise.list.headOfMission.tip=
+tuttihelp.editCruise.list.headOfSortRoom.tip=
+tuttihelp.editCruise.list.vessel.tip=
+tuttihelp.editCruise.multirigNumberField.tip=
+tuttihelp.editCruise.nameField.tip=
+tuttihelp.editCruise.programComboBox.tip=
+tuttihelp.editCruise.surveyPartField.tip=
+tuttihelp.editCruise.vesselList.tip=
+tuttihelp.editCruise.yearField.tip=
+tuttihelp.editFishingOperation.action.attachments.tip=
+tuttihelp.editFishingOperation.action.cancel.tip=
+tuttihelp.editFishingOperation.action.importCasino.tip=
+tuttihelp.editFishingOperation.action.save.tip=
+tuttihelp.editFishingOperation.field..tip=
+tuttihelp.editFishingOperation.field.comment.tip=
+tuttihelp.editFishingOperation.field.duration.tip=
+tuttihelp.editFishingOperation.field.fishingOperationNumber.tip=
+tuttihelp.editFishingOperation.field.fishingOperationRectiligne.tip=
+tuttihelp.editFishingOperation.field.fishingOperationValid.tip=
+tuttihelp.editFishingOperation.field.gear.tip=
+tuttihelp.editFishingOperation.field.gearDate.tip=
+tuttihelp.editFishingOperation.field.gearLatitude.tip=
+tuttihelp.editFishingOperation.field.gearLongitude.tip=
+tuttihelp.editFishingOperation.field.gearShootingEnd.tip=
+tuttihelp.editFishingOperation.field.gearShootingEndLatitude.tip=
+tuttihelp.editFishingOperation.field.gearShootingEndLongitude.tip=
+tuttihelp.editFishingOperation.field.gearShootingStart.tip=
+tuttihelp.editFishingOperation.field.gearShootingStartLatitude.tip=
+tuttihelp.editFishingOperation.field.gearTime.tip=
+tuttihelp.editFishingOperation.field.location.tip=
+tuttihelp.editFishingOperation.field.multirigAggregation.tip=
+tuttihelp.editFishingOperation.field.stationNumber.tip=
+tuttihelp.editFishingOperation.field.strata.tip=
+tuttihelp.editFishingOperation.field.subStrata.tip=
+tuttihelp.editFishingOperation.field.trawlDistance.tip=
+tuttihelp.editFishingOperation.field.vessel.tip=
+tuttihelp.editFishingOperation.gearShootingStartLongitude.tip=
+tuttihelp.editFishingOperation.list.recorderPerson.tip=
+tuttihelp.editProgram.field.comment.tip=
+tuttihelp.editProgram.field.name.tip=
+tuttihelp.editProgram.field.zone.tip=
+tuttihelp.editProtocol.field..tip=
+tuttihelp.editProtocol.field.comment.tip=
Added: trunk/tutti-ui-swing/src/main/resources/icons/action-close-dialog.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-close-dialog.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r566 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti tutti-service/src/main/java/fr/ifremer/tutti/service/config
by tchemit@users.forge.codelutin.com 09 Mar '13
by tchemit@users.forge.codelutin.com 09 Mar '13
09 Mar '13
Author: tchemit
Date: 2013-03-09 08:57:31 +0100 (Sat, 09 Mar 2013)
New Revision: 566
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/566
Log:
add more methods to TuttiIOUtil
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java 2013-03-08 15:03:08 UTC (rev 565)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiIOUtil.java 2013-03-09 07:57:31 UTC (rev 566)
@@ -70,6 +70,29 @@
}
}
+ public static void cleanDirectory(File dir, String errorMessage) {
+ try {
+ FileUtils.cleanDirectory(dir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void deleteDirectory(File dir, String errorMessage) {
+ try {
+ FileUtils.deleteDirectory(dir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+ public static void forceDeleteOnExit(File dir, String errorMessage) {
+ try {
+ FileUtils.forceDeleteOnExit(dir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
public static void copyDirectory(File source, File target, String errorMessage) {
try {
FileUtils.copyDirectory(source, target);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java 2013-03-08 15:03:08 UTC (rev 565)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java 2013-03-09 07:57:31 UTC (rev 566)
@@ -24,13 +24,12 @@
* #L%
*/
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
-import org.apache.commons.io.FileUtils;
import org.nuiton.util.Version;
import org.nuiton.util.config.ApplicationConfig;
import java.io.File;
-import java.io.IOException;
import java.net.URL;
/**
@@ -103,16 +102,26 @@
}
public char getCsvSeparator() {
- return applicationConfig.getOption(TuttiServiceConfigOption.CSV_SEPARATOR.getKey()).charAt(0);
+ return applicationConfig.getOption(
+ TuttiServiceConfigOption.CSV_SEPARATOR.getKey()).charAt(0);
}
- public void prepareDirectories() throws IOException {
+ public void prepareDirectories() {
- FileUtils.forceMkdir(getDataDirectory());
+ File dataDirectory = getDataDirectory();
+ TuttiIOUtil.forceMkdir(
+ dataDirectory,
+ "Could not create data directory " + dataDirectory);
+
File tmpDirectory = getTmpDirectory();
if (tmpDirectory.exists()) {
- FileUtils.deleteDirectory(tmpDirectory);
+
+ TuttiIOUtil.deleteDirectory(
+ tmpDirectory,
+ "Could not delete temp directory " + tmpDirectory);
}
- FileUtils.forceMkdir(tmpDirectory);
+ TuttiIOUtil.forceMkdir(
+ tmpDirectory,
+ "Could not create temp directory " + tmpDirectory);
}
}
1
0
r565 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches
by kmorin@users.forge.codelutin.com 08 Mar '13
by kmorin@users.forge.codelutin.com 08 Mar '13
08 Mar '13
Author: kmorin
Date: 2013-03-08 16:03:08 +0100 (Fri, 08 Mar 2013)
New Revision: 565
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/565
Log:
debug NPE
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-08 14:37:49 UTC (rev 564)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-08 15:03:08 UTC (rev 565)
@@ -72,7 +72,10 @@
computeSpeciesBatches();
if (errorMessage == null) {
- Float speciesTotalSortedWeight = model.getSpeciesTotalSortedComputedWeight();
+ Float speciesTotalSortedWeight = model.getSpeciesTotalSortedWeight();
+ if (speciesTotalSortedWeight == null) {
+ speciesTotalSortedWeight = model.getSpeciesTotalSortedComputedWeight();
+ }
Float speciesTotalUnsortedWeight = model.getSpeciesTotalUnsortedComputedWeight();
model.setCatchTotalSortedComputedWeight(speciesTotalSortedWeight);
1
0
r564 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches: . species
by kmorin@users.forge.codelutin.com 08 Mar '13
by kmorin@users.forge.codelutin.com 08 Mar '13
08 Mar '13
Author: kmorin
Date: 2013-03-08 15:37:49 +0100 (Fri, 08 Mar 2013)
New Revision: 564
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/564
Log:
fixes #2093 [CAPTURE] - Comportement de l'onglet "R?\195?\169sum?\195?\169" ?\195?\160 l'?\195?\169l?\195?\169vation des poids
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.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/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-08 14:37:49 UTC (rev 564)
@@ -153,14 +153,14 @@
if (inertWeight != null) {
totalSortedWeight += inertWeight.floatValue();
} else {
- model.setSpeciesTotalInertWeight(0f);
+ model.setSpeciesTotalInertComputedWeight(0f);
}
Number livingNotItemizedWeight = model.getSpeciesTotalLivingNotItemizedWeight();
if (livingNotItemizedWeight != null) {
totalSortedWeight += livingNotItemizedWeight.floatValue();
} else {
- model.setSpeciesTotalLivingNotItemizedWeight(0f);
+ model.setSpeciesTotalLivingNotItemizedComputedWeight(0f);
}
model.setSpeciesTotalSampleSortedComputedWeight(totalSortedWeight);
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-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-08 14:37:49 UTC (rev 564)
@@ -138,7 +138,9 @@
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT,
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SORTED_COMPUTED_WEIGHT,
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT,
- EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_INERT_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_COMPUTED_WEIGHT
));
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-08 14:37:49 UTC (rev 564)
@@ -78,8 +78,12 @@
public static final String PROPERTY_SPECIES_TOTAL_INERT_WEIGHT = "speciesTotalInertWeight";
+ public static final String PROPERTY_SPECIES_TOTAL_INERT_COMPUTED_WEIGHT = "speciesTotalInerComputedtWeight";
+
public static final String PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT = "speciesTotalLivingNotItemizedWeight";
+ public static final String PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_COMPUTED_WEIGHT = "speciesTotalLivingNotItemizedComputedWeight";
+
public static final String PROPERTY_BENTHOS_TOTAL_WEIGHT = "benthosTotalWeight";
public static final String PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT = "benthosTotalSortedWeight";
@@ -110,9 +114,9 @@
protected Float speciesTotalSampleSortedComputedWeight;
- protected Float speciesTotalInertWeight = 0f;
+ protected TuttiComputedOrNotData<Float> speciesTotalInertComputedOrNotWeight = new TuttiComputedOrNotData<Float>();
- protected Float speciesTotalLivingNotItemizedWeight = 0f;
+ protected TuttiComputedOrNotData<Float> speciesTotalLivingNotItemizedComputedOrNotWeight = new TuttiComputedOrNotData<Float>();
protected Float benthosTotalWeight;
@@ -346,26 +350,54 @@
firePropertyChange(PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT, oldValue, speciesTotalUnsortedComputedWeight);
}
+ public TuttiComputedOrNotData<Float> getSpeciesTotalInertComputedOrNotWeight() {
+ return speciesTotalInertComputedOrNotWeight;
+ }
+
public Float getSpeciesTotalInertWeight() {
- return speciesTotalInertWeight;
+ return speciesTotalInertComputedOrNotWeight.getData();
}
public void setSpeciesTotalInertWeight(Float speciesTotalInertWeight) {
Object oldValue = getSpeciesTotalInertWeight();
- this.speciesTotalInertWeight = speciesTotalInertWeight;
+ this.speciesTotalInertComputedOrNotWeight.setData(speciesTotalInertWeight);
firePropertyChange(PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, oldValue, speciesTotalInertWeight);
}
+ public Float getSpeciesTotalInertComputedWeight() {
+ return speciesTotalInertComputedOrNotWeight.getComputedData();
+ }
+
+ public void setSpeciesTotalInertComputedWeight(Float speciesTotalInertComputedWeight) {
+ Object oldValue = getSpeciesTotalInertComputedWeight();
+ this.speciesTotalInertComputedOrNotWeight.setComputedData(speciesTotalInertComputedWeight);
+ firePropertyChange(PROPERTY_SPECIES_TOTAL_INERT_COMPUTED_WEIGHT, oldValue, speciesTotalInertComputedWeight);
+ }
+
+ public TuttiComputedOrNotData<Float> getSpeciesTotalLivingNotItemizedComputedOrNotWeight() {
+ return speciesTotalLivingNotItemizedComputedOrNotWeight;
+ }
+
public Float getSpeciesTotalLivingNotItemizedWeight() {
- return speciesTotalLivingNotItemizedWeight;
+ return speciesTotalLivingNotItemizedComputedOrNotWeight.getData();
}
public void setSpeciesTotalLivingNotItemizedWeight(Float speciesTotalLivingNotItemizedWeight) {
- Object oldValue = getSpeciesTotalLivingNotItemizedWeight();
- this.speciesTotalLivingNotItemizedWeight = speciesTotalLivingNotItemizedWeight;
+ Object oldValue = getSpeciesTotalLivingNotItemizedComputedWeight();
+ this.speciesTotalLivingNotItemizedComputedOrNotWeight.setData(speciesTotalLivingNotItemizedWeight);
firePropertyChange(PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, oldValue, speciesTotalLivingNotItemizedWeight);
}
+ public Float getSpeciesTotalLivingNotItemizedComputedWeight() {
+ return speciesTotalLivingNotItemizedComputedOrNotWeight.getComputedData();
+ }
+
+ public void setSpeciesTotalLivingNotItemizedComputedWeight(Float speciesTotalLivingNotItemizedComputedWeight) {
+ Object oldValue = getSpeciesTotalLivingNotItemizedComputedWeight();
+ this.speciesTotalLivingNotItemizedComputedOrNotWeight.setComputedData(speciesTotalLivingNotItemizedComputedWeight);
+ firePropertyChange(PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_COMPUTED_WEIGHT, oldValue, speciesTotalLivingNotItemizedComputedWeight);
+ }
+
public Float getBenthosTotalWeight() {
return benthosTotalWeight;
}
@@ -476,6 +508,8 @@
}
public void reset() {
+ setSpeciesTotalInertComputedWeight(null);
+ setSpeciesTotalLivingNotItemizedComputedWeight(null);
setSpeciesTotalSampleSortedComputedWeight(null);
setSpeciesTotalSortedComputedWeight(null);
setSpeciesTotalUnsortedComputedWeight(null);
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-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-03-08 14:37:49 UTC (rev 564)
@@ -87,9 +87,8 @@
}
#speciesTotalInertWeightField {
- property: speciesTotalInertWeight;
+ bean: {model.getSpeciesTotalInertComputedOrNotWeight()};
model: {model.getSpeciesTotalInertWeight()};
- showReset: false;
}
#speciesTotalLivingNotItemizedWeightLabel {
@@ -98,9 +97,8 @@
}
#speciesTotalLivingNotItemizedWeightField {
- property: speciesTotalLivingNotItemizedWeight;
+ bean: {model.getSpeciesTotalLivingNotItemizedComputedOrNotWeight()};
model: {model.getSpeciesTotalLivingNotItemizedWeight()};
- showReset: false;
}
#tablePopup {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-08 14:37:49 UTC (rev 564)
@@ -125,15 +125,15 @@
<JLabel id='speciesTotalInertWeightLabel'/>
</cell>
<cell>
- <NumberEditor id='speciesTotalInertWeightField'
- constructorParams='this'/>
+ <TuttiComputedOrNotDataEditor id='speciesTotalInertWeightField'
+ constructorParams='this'/>
</cell>
<cell>
<JLabel id='speciesTotalLivingNotItemizedWeightLabel'/>
</cell>
<cell>
- <NumberEditor id='speciesTotalLivingNotItemizedWeightField'
- constructorParams='this'/>
+ <TuttiComputedOrNotDataEditor id='speciesTotalLivingNotItemizedWeightField'
+ constructorParams='this'/>
</cell>
</row>
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-03-07 15:36:14 UTC (rev 563)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-08 14:37:49 UTC (rev 564)
@@ -203,6 +203,10 @@
catchesUIModel.setSpeciesTotalSampleSortedComputedWeight(speciesTotalSampleSortedComputedWeight);
}
+ public TuttiComputedOrNotData<Float> getSpeciesTotalInertComputedOrNotWeight() {
+ return catchesUIModel.getSpeciesTotalInertComputedOrNotWeight();
+ }
+
public Float getSpeciesTotalInertWeight() {
return catchesUIModel.getSpeciesTotalInertWeight();
}
@@ -211,6 +215,18 @@
catchesUIModel.setSpeciesTotalInertWeight(speciesTotalInertWeight);
}
+ public Float getSpeciesTotalInertComputedWeight() {
+ return catchesUIModel.getSpeciesTotalInertComputedWeight();
+ }
+
+ public void setSpeciesTotalInertComputedWeight(Float speciesTotalInertComputedWeight) {
+ catchesUIModel.setSpeciesTotalInertComputedWeight(speciesTotalInertComputedWeight);
+ }
+
+ public TuttiComputedOrNotData<Float> getSpeciesTotalLivingNotItemizedComputedOrNotWeight() {
+ return catchesUIModel.getSpeciesTotalLivingNotItemizedComputedOrNotWeight();
+ }
+
public Float getSpeciesTotalLivingNotItemizedWeight() {
return catchesUIModel.getSpeciesTotalLivingNotItemizedWeight();
}
@@ -219,6 +235,14 @@
catchesUIModel.setSpeciesTotalLivingNotItemizedWeight(speciesTotalLivingNotItemizedWeight);
}
+ public Float getSpeciesTotalLivingNotItemizedComputedWeight() {
+ return catchesUIModel.getSpeciesTotalLivingNotItemizedComputedWeight();
+ }
+
+ public void setSpeciesTotalLivingNotItemizedComputedWeight(Float speciesTotalLivingNotItemizedComputedWeight) {
+ catchesUIModel.setSpeciesTotalLivingNotItemizedComputedWeight(speciesTotalLivingNotItemizedComputedWeight);
+ }
+
public List<SampleCategoryType> getSamplingOrder() {
return samplingOrder;
}
1
0
07 Mar '13
Author: tchemit
Date: 2013-03-07 16:36:14 +0100 (Thu, 07 Mar 2013)
New Revision: 563
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/563
Log:
fixes #2035: [CAMPAGNE] - Gestion des campagnes - Doublons dans la liste des navires
Modified:
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-03-07 13:27:32 UTC (rev 562)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-03-07 15:36:14 UTC (rev 563)
@@ -43,5 +43,5 @@
tutti.propety.no.species.surveyCode=\#
tutti.propety.no.vessel.name=Nom inconnu
tutti.propety.no.zone=Pas de zone
-tutti.propety.vessel.nation.registrationCode=National \: %s
+tutti.propety.vessel.nation.registrationCode=%s (nat.)
tutti.service.config=Configuration des services de Tutti
1
0
r562 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/home content/operation/catches/species content/operation/catches/species/split content/program content/protocol util util/action
by tchemit@users.forge.codelutin.com 07 Mar '13
by tchemit@users.forge.codelutin.com 07 Mar '13
07 Mar '13
Author: tchemit
Date: 2013-03-07 14:27:32 +0100 (Thu, 07 Mar 2013)
New Revision: 562
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/562
Log:
fix some loading + try to improve the dialog open api
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/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
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-03-07 10:40:39 UTC (rev 561)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-03-07 13:27:32 UTC (rev 562)
@@ -110,8 +110,7 @@
}
List<TuttiProtocol> protocols =
- persistenceService.getAllProtocol();
-// Lists.newArrayList(persistenceService.getAllProtocol());
+ Lists.newArrayList(persistenceService.getAllProtocol());
model.setProtocols(protocols);
if (protocols.isEmpty()) {
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-03-07 10:40:39 UTC (rev 561)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-07 13:27:32 UTC (rev 562)
@@ -1188,12 +1188,12 @@
}
public Species openAddSpeciesDialog(String title, List<Species> species) {
- SelectSpeciesUI dialog = new SelectSpeciesUI(ui);
- SelectSpeciesUIModel model = dialog.getModel();
+ SelectSpeciesUI dialogContent = new SelectSpeciesUI(ui);
+ SelectSpeciesUIModel model = dialogContent.getModel();
model.setSelectedSpecies(null);
model.setSpecies(species);
- openDialog(ui, dialog, title, new Dimension(400, 130));
+ openDialog(dialogContent, title, new Dimension(400, 130));
return model.getSelectedSpecies();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-03-07 10:40:39 UTC (rev 561)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-03-07 13:27:32 UTC (rev 562)
@@ -39,7 +39,6 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.Cancelable;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
@@ -244,13 +243,12 @@
}
public Species openAddSpeciesDialog(String title, List<Species> species) {
- SelectSpeciesUI dialog = new SelectSpeciesUI(ui);
- SelectSpeciesUIModel model = dialog.getModel();
+ SelectSpeciesUI dialogContent = new SelectSpeciesUI(ui);
+ SelectSpeciesUIModel model = dialogContent.getModel();
model.setSelectedSpecies(null);
model.setSpecies(species);
- TuttiActionUI actionUI = context.getActionUI();
- openDialog(actionUI, dialog, title, new Dimension(400, 130));
+ openDialog(dialogContent, title, new Dimension(400, 130));
return model.getSelectedSpecies();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-03-07 10:40:39 UTC (rev 561)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-03-07 13:27:32 UTC (rev 562)
@@ -65,8 +65,7 @@
@Override
public void beforeInitUI() {
- EditProgramUIModel model = null;
-// EditProgramUIModel model = new EditProgramUIModel();
+ EditProgramUIModel model = new EditProgramUIModel();
List<Program> programs =
Lists.newArrayList(persistenceService.getAllProgram());
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-03-07 10:40:39 UTC (rev 561)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-07 13:27:32 UTC (rev 562)
@@ -484,7 +484,7 @@
model.setSpecies(species);
model.setSelectedSpecies(null);
- openDialog(ui, dialog, title, new Dimension(400, 130));
+ openDialog(dialog, title, new Dimension(400, 130));
return model.getSelectedSpecies();
}
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-03-07 10:40:39 UTC (rev 561)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-07 13:27:32 UTC (rev 562)
@@ -36,6 +36,7 @@
import fr.ifremer.tutti.ui.swing.content.MainUI;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor;
import fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor;
@@ -76,7 +77,6 @@
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
-import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
@@ -214,20 +214,15 @@
}
}
- public void openDialog(TuttiUI ui,
- TuttiUI dialogContent,
+ public void openDialog(TuttiUI dialogContent,
String title, Dimension dim) {
- Window window;
- if (Window.class.isAssignableFrom(ui.getClass())) {
- window = (Window) ui;
- } else {
- window = SwingUtil.getParentContainer(ui, Window.class);
- }
+ Component topestUI = getTopestUI();
+
JDialog result;
- if (window instanceof Frame) {
- result = new JDialog((Frame) window, title, true);
+ if (topestUI instanceof Frame) {
+ result = new JDialog((Frame) topestUI, title, true);
} else {
- result = new JDialog((Dialog) window, title, true);
+ result = new JDialog((Dialog) topestUI, title, true);
}
result.add((Component) dialogContent);
@@ -283,10 +278,11 @@
message,
_("tutti.dialog.askSaveBeforeLeaving.help"));
int result = JOptionPane.showConfirmDialog(
- getContext().getMainUI(),
+ getTopestUI(),
htmlMessage,
_("tutti.dialog.askSaveBeforeLeaving.title"),
- JOptionPane.YES_NO_CANCEL_OPTION);
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE);
return result;
}
@@ -296,11 +292,11 @@
message,
_("tutti.dialog.askCancelEditBeforeLeaving.help"));
int i = JOptionPane.showConfirmDialog(
- getContext().getMainUI(),
+ getTopestUI(),
htmlMessage,
_("tutti.dialog.askCancelEditBeforeLeaving.title"),
JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.WARNING_MESSAGE);
+ JOptionPane.QUESTION_MESSAGE);
boolean result = i == JOptionPane.OK_OPTION;
return result;
@@ -317,17 +313,27 @@
_("tutti.dialog.askOverwriteFile.help"));
result = JOptionPane.showConfirmDialog(
- getContext().getMainUI(),
+ getTopestUI(),
htmlMessage,
_("tutti.dialog.askOverwriteFile.title"),
JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.INFORMATION_MESSAGE) == JOptionPane.OK_OPTION;
+ JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION;
} else {
// file does not exist
result = true;
}
+ return result;
+ }
+ protected Component getTopestUI() {
+ Component result;
+ TuttiActionUI actionUI = getContext().getActionUI();
+ if (actionUI.isVisible()) {
+ result = actionUI;
+ } else {
+ result = getContext().getMainUI();
+ }
return result;
}
//------------------------------------------------------------------------//
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-03-07 10:40:39 UTC (rev 561)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-03-07 13:27:32 UTC (rev 562)
@@ -85,7 +85,7 @@
// by default nothing to clean
}
- public void doAfterAction(Throwable error) {
+ public void postAction(Throwable error) {
// by default nothing to do after action
}
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-03-07 10:40:39 UTC (rev 561)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-07 13:27:32 UTC (rev 562)
@@ -263,7 +263,7 @@
}
// user after action call
- action.doAfterAction(error);
+ action.postAction(error);
if (timer != null) {
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/456/>
------------------------------------------
Started by an SCM change
Building on master in workspace <http://ci.nuiton.org/jenkins/job/tutti/ws/>
Updating http://svn.forge.codelutin.com/svn/tutti/trunk to revision '2013-03-06T23:17:04.401 +0100'
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java
AU tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/CloseApplicationAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
ERROR: Failed to update http://svn.forge.codelutin.com/svn/tutti/trunk
org.tmatesoft.svn.core.SVNException: svn: E175002: REPORT /svn/tutti/!svn/vcc/default failed
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:304)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:289)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:277)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:696)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:328)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1289)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:837)
at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.update(SVNUpdateClient16.java:557)
at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doUpdate(SVNUpdateClient16.java:414)
at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doUpdate(SVNUpdateClient16.java:324)
at org.tmatesoft.svn.core.internal.wc2.old.SvnOldUpdate.run(SvnOldUpdate.java:27)
at org.tmatesoft.svn.core.internal.wc2.old.SvnOldUpdate.run(SvnOldUpdate.java:11)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1221)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:292)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:315)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:295)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:391)
at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:143)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:152)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:824)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:805)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:788)
at hudson.FilePath.act(FilePath.java:852)
at hudson.FilePath.act(FilePath.java:825)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:771)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:713)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1325)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
at hudson.model.Run.execute(Run.java:1543)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:236)
Caused by: svn: E175002: REPORT /svn/tutti/!svn/vcc/default failed
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97)
... 35 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E155017: REPORT request failed on '/svn/tutti/!svn/vcc/default'
svn: E155017: Checksum mismatch while updating '<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…';> expected: 'c918bc7575d21edc89b8da011546c513', actual: 'bc67311f994d181741b87a51edf4eba0'
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:675)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:298)
... 34 more
Caused by: svn: E155017: REPORT request failed on '/svn/tutti/!svn/vcc/default'
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97)
at org.tmatesoft.svn.core.SVNErrorMessage.wrap(SVNErrorMessage.java:414)
... 36 more
Caused by: svn: E155017: Checksum mismatch while updating '<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…';> expected: 'c918bc7575d21edc89b8da011546c513', actual: 'bc67311f994d181741b87a51edf4eba0'
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:189)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:141)
at org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor15.textDeltaEnd(SVNUpdateEditor15.java:634)
at org.tmatesoft.svn.core.internal.wc.SVNAmbientDepthFilterEditor.textDeltaEnd(SVNAmbientDepthFilterEditor.java:221)
at org.tmatesoft.svn.core.internal.wc.SVNCancellableEditor.textDeltaEnd(SVNCancellableEditor.java:130)
at org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVDeltaHandler.setDeltaProcessing(BasicDAVDeltaHandler.java:41)
at org.tmatesoft.svn.core.internal.io.dav.handlers.DAVEditorHandler.endElement(DAVEditorHandler.java:548)
at org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVHandler.endElement(BasicDAVHandler.java:103)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1742)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2900)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:796)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:761)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:218)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:385)
... 35 more
ERROR: Subversion update failed
java.io.IOException
at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:184)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:152)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:824)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:805)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:788)
at hudson.FilePath.act(FilePath.java:852)
at hudson.FilePath.act(FilePath.java:825)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:771)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:713)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1325)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
at hudson.model.Run.execute(Run.java:1543)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:236)
Caused by: hudson.scm.subversion.UpdaterException: failed to perform svn update
... 17 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: REPORT /svn/tutti/!svn/vcc/default failed
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:304)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:289)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:277)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:696)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:328)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1289)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:837)
at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.update(SVNUpdateClient16.java:557)
at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doUpdate(SVNUpdateClient16.java:414)
at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doUpdate(SVNUpdateClient16.java:324)
at org.tmatesoft.svn.core.internal.wc2.old.SvnOldUpdate.run(SvnOldUpdate.java:27)
at org.tmatesoft.svn.core.internal.wc2.old.SvnOldUpdate.run(SvnOldUpdate.java:11)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1221)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:292)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:315)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:295)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:391)
at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:143)
... 16 more
Caused by: svn: E175002: REPORT /svn/tutti/!svn/vcc/default failed
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97)
... 35 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E155017: REPORT request failed on '/svn/tutti/!svn/vcc/default'
svn: E155017: Checksum mismatch while updating '<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…';> expected: 'c918bc7575d21edc89b8da011546c513', actual: 'bc67311f994d181741b87a51edf4eba0'
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:675)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:298)
... 34 more
Caused by: svn: E155017: REPORT request failed on '/svn/tutti/!svn/vcc/default'
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97)
at org.tmatesoft.svn.core.SVNErrorMessage.wrap(SVNErrorMessage.java:414)
... 36 more
Caused by: svn: E155017: Checksum mismatch while updating '<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…';> expected: 'c918bc7575d21edc89b8da011546c513', actual: 'bc67311f994d181741b87a51edf4eba0'
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:189)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:141)
at org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor15.textDeltaEnd(SVNUpdateEditor15.java:634)
at org.tmatesoft.svn.core.internal.wc.SVNAmbientDepthFilterEditor.textDeltaEnd(SVNAmbientDepthFilterEditor.java:221)
at org.tmatesoft.svn.core.internal.wc.SVNCancellableEditor.textDeltaEnd(SVNCancellableEditor.java:130)
at org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVDeltaHandler.setDeltaProcessing(BasicDAVDeltaHandler.java:41)
at org.tmatesoft.svn.core.internal.io.dav.handlers.DAVEditorHandler.endElement(DAVEditorHandler.java:548)
at org.tmatesoft.svn.core.internal.io.dav.handlers.BasicDAVHandler.endElement(BasicDAVHandler.java:103)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1742)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2900)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:796)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:761)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:218)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:385)
... 35 more
1
5
r561 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol
by kmorin@users.forge.codelutin.com 07 Mar '13
by kmorin@users.forge.codelutin.com 07 Mar '13
07 Mar '13
Author: kmorin
Date: 2013-03-07 11:40:39 +0100 (Thu, 07 Mar 2013)
New Revision: 561
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/561
Log:
fixes #2013 [PROTOCOLE] - Caract?\195?\169ristiques - supprimer une caract?\195?\169ristique s?\195?\169lectionn?\195?\169e des autres onglets
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
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-03-07 10:30:55 UTC (rev 560)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-07 10:40:39 UTC (rev 561)
@@ -10,21 +10,22 @@
* %%
* 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
+ * 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
+ *
+ * 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.ezware.oxbow.swingbits.util.Preconditions;
+import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
@@ -62,6 +63,9 @@
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import javax.swing.JTabbedPane;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
import static org.nuiton.i18n.I18n._;
@@ -297,21 +301,74 @@
initDoubleList(EditProtocolUIModel.PROPERTY_LENGTH_CLASSES_PMFM_ID,
ui.getLengthClassesList(),
Lists.newArrayList(model.getCaracteristics()),
- model.getLengthClassesPmfmId());
+ model.getLengthClassesPmfmId(),
+ new Predicate<Caracteristic>() {
+ public boolean apply(Caracteristic input) {
+ boolean result = !ui.getGearUseFeatureList().getModel().getSelected().contains(input);
+ result &= !ui.getVesselUseFeatureList().getModel().getSelected().contains(input);
+ return result;
+ }
+ });
+
initDoubleList(EditProtocolUIModel.PROPERTY_GEAR_USE_FEATURE_PMFM_ID,
ui.getGearUseFeatureList(),
Lists.newArrayList(model.getCaracteristics()),
- model.getGearUseFeaturePmfmId());
+ model.getGearUseFeaturePmfmId(),
+ new Predicate<Caracteristic>() {
+ public boolean apply(Caracteristic input) {
+ boolean result = !ui.getLengthClassesList().getModel().getSelected().contains(input);
+ result &= !ui.getVesselUseFeatureList().getModel().getSelected().contains(input);
+ return result;
+ }
+ });
+
initDoubleList(EditProtocolUIModel.PROPERTY_VESSEL_USE_FEATURE_PMFM_ID,
ui.getVesselUseFeatureList(),
Lists.newArrayList(model.getCaracteristics()),
- model.getVesselUseFeaturePmfmId());
+ model.getVesselUseFeaturePmfmId(),
+ new Predicate<Caracteristic>() {
+ public boolean apply(Caracteristic input) {
+ boolean result = !ui.getGearUseFeatureList().getModel().getSelected().contains(input);
+ result &= !ui.getLengthClassesList().getModel().getSelected().contains(input);
+ return result;
+ }
+ });
+
// if new protocol can already cancel his creation
model.setModify(model.isCreate());
+ ui.getCaracteristicPane().addChangeListener(new ChangeListener() {
+
+ public void stateChanged(ChangeEvent e) {
+ JTabbedPane tabPanel = (JTabbedPane) e.getSource();
+ int selectedIndex = tabPanel.getSelectedIndex();
+ BeanDoubleList<Caracteristic> selectedDoubleList;
+ log.debug("selected " + selectedIndex);
+ switch (selectedIndex) {
+ case 0:
+ selectedDoubleList = ui.getLengthClassesList();
+ break;
+
+ case 1:
+ selectedDoubleList = ui.getGearUseFeatureList();
+ break;
+
+ case 2:
+ selectedDoubleList = ui.getVesselUseFeatureList();
+ break;
+
+ default:
+ selectedDoubleList = null;
+ }
+ if (selectedDoubleList != null) {
+ selectedDoubleList.getHandler().refreshFilteredElements();
+ }
+ }
+ });
+
dialog = new SelectSpeciesUI(ui);
}
@@ -439,7 +496,8 @@
protected void initDoubleList(String propertyId,
BeanDoubleList<Caracteristic> widget,
List<Caracteristic> availableCaracteristics,
- List<String> selectedCaracteristics) {
+ List<String> selectedCaracteristics,
+ Predicate<Caracteristic> filter) {
initBeanList(widget, availableCaracteristics,
Lists.<Caracteristic>newArrayList());
@@ -450,6 +508,8 @@
widget.putClientProperty("_updateListener", listener);
widget.putClientProperty("_updateListenerId", propertyId);
listener.select(selectedCaracteristics);
+
+ widget.getHandler().addFilter(filter);
}
protected void selectLengthClasses(List<String> ids, JComboBox comboBox) {
1
0