Coser-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
August 2012
- 3 participants
- 44 discussions
r1051 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui
by echatellier@users.forge.codelutin.com 17 Aug '12
by echatellier@users.forge.codelutin.com 17 Aug '12
17 Aug '12
Author: echatellier
Date: 2012-08-17 11:00:05 +0200 (Fri, 17 Aug 2012)
New Revision: 1051
Url: http://forge.codelutin.com/repositories/revision/coser/1051
Log:
Correction sur la notification de chargement d'une selection
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2012-08-17 08:11:45 UTC (rev 1050)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2012-08-17 09:00:05 UTC (rev 1051)
@@ -42,6 +42,7 @@
import javax.swing.filechooser.FileFilter;
import jaxx.runtime.JAXXContext;
+import jaxx.runtime.JAXXUtil;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
@@ -301,8 +302,7 @@
* Ferme le projet.
*/
public void closeProject() {
- view.setProject(null);
- view.removeContextValue(Project.class);
+ projectLoaded(null);
view.setTitle(_("coser.ui.mainview.titleempty"));
showHomeView();
}
@@ -310,16 +310,34 @@
/**
* Do some operation when a new project is loaded into application.
*
- * @param project loaded project
+ * @param project loaded project (can be null)
*/
public void projectLoaded(Project project) {
view.setProject(project);
- view.setSelection(null); // to update freize
- view.setContextValue(project);
- view.setTitle(_("coser.ui.mainview.titleproject", project.getName()));
+ if (project != null) {
+ view.setContextValue(project);
+ view.setTitle(_("coser.ui.mainview.titleproject", project.getName()));
+ } else {
+ view.removeContextValue(Project.class);
+ }
+ selectionLoaded(null); // to update freize
}
/**
+ * Do some operation when a new selection is loaded into application.
+ *
+ * @param selection loaded selection (can be null)
+ */
+ public void selectionLoaded(Selection selection) {
+ view.setSelection(selection); // to update freize
+ if (selection != null) {
+ view.setContextValue(selection);
+ } else {
+ view.removeContextValue(Selection.class);
+ }
+ }
+
+ /**
* Affiche la fenêtre de résumé d'un projet.
*/
public void showSummaryView() {
@@ -406,7 +424,7 @@
setWaitCursor(view);
try {
Selection selection = projectService.initProjectSelection(project);
- view.setContextValue(selection);
+ selectionLoaded(selection);
SelectionView selectionView = new SelectionView(view);
selectionView.setSelection(selection);
@@ -476,8 +494,7 @@
setWaitCursor(view);
try {
- view.setSelection(selection); // for freize
- view.setContextValue(selection);
+ selectionLoaded(selection);
SelectionView selectionView = new SelectionView(view);
selectionView.setSelection(selection);
1
0
Author: echatellier
Date: 2012-08-17 10:11:45 +0200 (Fri, 17 Aug 2012)
New Revision: 1050
Url: http://forge.codelutin.com/repositories/revision/coser/1050
Log:
Update to struts 2.3.4.1
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-14 17:29:50 UTC (rev 1049)
+++ trunk/pom.xml 2012-08-17 08:11:45 UTC (rev 1050)
@@ -343,7 +343,7 @@
<jaxx.version>2.5.4</jaxx.version>
<i18n.version>2.4.1</i18n.version>
<!-- 2.3.1.1 fails to validate fields in jnlp -->
- <struts.version>2.3.4</struts.version>
+ <struts.version>2.3.4.1</struts.version>
</properties>
<scm>
1
0
r1049 - in trunk: . coser-ui coser-ui/src/main/java/fr/ifremer/coser/ui coser-ui/src/main/java/fr/ifremer/coser/ui/freize coser-ui/src/main/resources/i18n coser-ui/src/main/resources/icons
by echatellier@users.forge.codelutin.com 14 Aug '12
by echatellier@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: echatellier
Date: 2012-08-14 19:29:50 +0200 (Tue, 14 Aug 2012)
New Revision: 1049
Url: http://forge.codelutin.com/repositories/revision/coser/1049
Log:
fixes #1328: Ajouter une frise permettant de guide l'utilisateur dans le processus
Added:
trunk/coser-ui/src/main/resources/icons/agt_action_fail.png
trunk/coser-ui/src/main/resources/icons/button_ok.png
trunk/coser-ui/src/main/resources/icons/stock_lock.png
Modified:
trunk/coser-ui/pom.xml
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/Freize.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/FreizeHandler.java
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
trunk/pom.xml
Modified: trunk/coser-ui/pom.xml
===================================================================
--- trunk/coser-ui/pom.xml 2012-08-14 14:45:09 UTC (rev 1048)
+++ trunk/coser-ui/pom.xml 2012-08-14 17:29:50 UTC (rev 1049)
@@ -77,6 +77,10 @@
<artifactId>jaxx-validator</artifactId>
</dependency>
<dependency>
+ <groupId>org.nuiton.jaxx</groupId>
+ <artifactId>jaxx-widgets</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-core</artifactId>
</dependency>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2012-08-14 14:45:09 UTC (rev 1048)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2012-08-14 17:29:50 UTC (rev 1049)
@@ -314,6 +314,7 @@
*/
public void projectLoaded(Project project) {
view.setProject(project);
+ view.setSelection(null); // to update freize
view.setContextValue(project);
view.setTitle(_("coser.ui.mainview.titleproject", project.getName()));
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/Freize.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/Freize.jaxx 2012-08-14 14:45:09 UTC (rev 1048)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/Freize.jaxx 2012-08-14 17:29:50 UTC (rev 1049)
@@ -22,7 +22,7 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JPanel layout="{new GridLayout(0, 4)}"
+<JPanel layout="{new GridLayout(0, 5)}"
border="{BorderFactory.createLineBorder(Color.BLACK)}">
<import>
@@ -36,66 +36,79 @@
<Table id="step0Panel" border="{BorderFactory.createEtchedBorder()}">
<row>
- <cell weightx="1">
+ <cell columns="2">
<JLabel text="coser.ui.freize.projectstep" font-weight="bold" />
</cell>
- <cell rows="2">
- <JLabel id="step0Icon" icon="button_ok.png" />
- </cell>
</row>
<row>
- <cell>
- <JButton text='coser.ui.freize.projectaction'
+ <cell weightx="1" anchor="center">
+ <JButton text='coser.ui.freize.projectcreate'
onActionPerformed="getParentContainer(CoserFrame.class).getHandler().showProjectCreationView()"/>
</cell>
+ <cell weightx="1" anchor="center">
+ <JButton text='coser.ui.freize.projectopen'
+ onActionPerformed="getParentContainer(CoserFrame.class).getHandler().showProjectOpenView()"/>
+ </cell>
</row>
</Table>
<Table id="step1Panel" border="{BorderFactory.createEtchedBorder()}" decorator="boxed">
<row>
- <cell weightx="1">
- <JLabel text="coser.ui.freize.controlstep" enabled="{model.isStep1Enabled()}" />
+ <cell columns="2">
+ <JLabel text="coser.ui.freize.controlstep" enabled="{model.isStep1Enabled()}" font-weight="bold" />
</cell>
- <cell rows="2">
- <JLabel id="step1Icon" icon="stock_lock.png" enabled="{model.isStep1Enabled()}" />
- </cell>
</row>
<row>
- <cell>
+ <cell weightx="1" anchor="center">
<JButton text='coser.ui.freize.controlaction' enabled="{model.isStep1Enabled()}"
onActionPerformed="getParentContainer(CoserFrame.class).getHandler().showControlView()"/>
</cell>
+ <cell weightx="2" anchor="center">
+ <JLabel id="controlStatus" enabled="{model.isStep1Enabled()}" />
+ </cell>
</row>
</Table>
-
+
<Table id="step2Panel" border="{BorderFactory.createEtchedBorder()}" decorator="boxed">
<row>
- <cell weightx="1">
- <JLabel text="coser.ui.freize.selectionstep" enabled="{model.isStep2Enabled()}" />
+ <cell columns="2">
+ <JLabel text="coser.ui.freize.selectionstep" enabled="{model.isStep2Enabled()}" font-weight="bold" />
</cell>
- <cell rows="2">
- <JLabel id="step2Icon" icon="agt_action_fail.png" enabled="{model.isStep2Enabled()}" />
- </cell>
</row>
<row>
- <cell>
- <JButton text='coser.ui.freize.selectionaction' enabled="{model.isStep2Enabled()}"
- onActionPerformed="getParentContainer(CoserFrame.class).getHandler().showSelectionView(model.getSelection(), 0)"/>
+ <cell weightx="2" anchor="center">
+ <JButton text='coser.ui.freize.selectionaction'
+ enabled="{model.isStep2Enabled()}"
+ onMousePressed="getHandler().showSelectionDropDownMenu(this, event)"/>
</cell>
+ <cell weightx="2" anchor="center">
+ <JLabel id="selectionStatus" enabled="{model.isStep2Enabled()}" />
+ </cell>
</row>
</Table>
-
+
<Table id="step3Panel" border="{BorderFactory.createEtchedBorder()}" decorator="boxed">
<row>
<cell weightx="1">
- <JLabel text="coser.ui.freize.resultstep" enabled="{model.isStep3Enabled()}" />
+ <JLabel text="coser.ui.freize.rsufistep" enabled="{model.isStep3Enabled()}" font-weight="bold" />
</cell>
- <cell rows="2">
- <JLabel id="step3Icon" icon="agt_action_fail.png" enabled="{model.isStep3Enabled()}" />
+ </row>
+ <row>
+ <cell>
+ <JButton text='coser.ui.freize.rsufiaction' enabled="{model.isStep3Enabled()}"
+ onActionPerformed="getParentContainer(CoserFrame.class).getHandler().showSelectionView(model.getSelection(), 2)"/>
</cell>
</row>
+ </Table>
+
+ <Table id="step4Panel" border="{BorderFactory.createEtchedBorder()}" decorator="boxed">
<row>
<cell>
+ <JLabel text="coser.ui.freize.resultstep" enabled="{model.isStep3Enabled()}" font-weight="bold" />
+ </cell>
+ </row>
+ <row>
+ <cell weightx="1">
<JButton text='coser.ui.freize.resultaction' enabled="{model.isStep3Enabled()}"
onActionPerformed="getParentContainer(CoserFrame.class).getHandler().showSelectionView(model.getSelection(), 2)"/>
</cell>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/FreizeHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/FreizeHandler.java 2012-08-14 14:45:09 UTC (rev 1048)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/FreizeHandler.java 2012-08-14 17:29:50 UTC (rev 1049)
@@ -22,18 +22,25 @@
*/
package fr.ifremer.coser.ui.freize;
+import static org.nuiton.i18n.I18n._;
+
import java.awt.Color;
+import java.awt.Component;
+import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
+import javax.swing.JPopupMenu;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import fr.ifremer.coser.bean.Project;
import fr.ifremer.coser.bean.Selection;
+import fr.ifremer.coser.ui.CoserFrame;
+import fr.ifremer.coser.ui.SelectionsListMenu;
/**
@@ -100,39 +107,79 @@
view.getStep0Panel().setBackground(DISABLED_COLOR);
view.getStep1Panel().setBackground(DISABLED_COLOR);
view.getStep2Panel().setBackground(DISABLED_COLOR);
- view.getStep0Icon().setIcon(BAD_ICON);
- view.getStep1Icon().setIcon(BAD_ICON);
- view.getStep2Icon().setIcon(BAD_ICON);
+ view.getStep3Panel().setBackground(DISABLED_COLOR);
+ view.getStep4Panel().setBackground(DISABLED_COLOR);
Project project = model.getProject();
+ // step 0
if (project != null) {
- view.getStep0Icon().setIcon(OK_ICON);
view.getStep0Panel().setBackground(COMPLETE_COLOR);
+
+ // step 1
model.setStep1Enabled(true);
-
if (project.getControl().isValidated()) {
view.getStep1Panel().setBackground(COMPLETE_COLOR);
+
+ // step 2
model.setStep2Enabled(true);
if (!project.getSelections().isEmpty()) {
- view.getStep1Icon().setIcon(LOCKED_ICON);
+ view.getControlStatus().setText(_("coser.ui.freize.locked"));
+ view.getControlStatus().setToolTipText(_("coser.ui.freize.controllockedtip"));
+ view.getControlStatus().setIcon(LOCKED_ICON);
} else {
- view.getStep1Icon().setIcon(OK_ICON);
+ view.getControlStatus().setText(_("coser.ui.freize.validated"));
+ view.getControlStatus().setIcon(OK_ICON);
}
Selection selection = model.getSelection();
if (selection != null && selection.isValidated()) {
- view.getStep2Icon().setIcon(OK_ICON);
+ view.getSelectionStatus().setIcon(OK_ICON);
+ view.getSelectionStatus().setText(_("coser.ui.freize.validated"));
view.getStep2Panel().setBackground(COMPLETE_COLOR);
+
+ // step 3
model.setStep3Enabled(true);
+ view.getStep3Panel().setBackground(COMPLETE_COLOR);
+
+ // step 4
+ if (selection.getRsufiResults().isEmpty()) {
+ view.getStep4Panel().setBackground(PENDING_COLOR);
+ } else {
+ view.getStep4Panel().setBackground(COMPLETE_COLOR);
+ }
+
} else {
view.getStep2Panel().setBackground(PENDING_COLOR);
+ view.getSelectionStatus().setIcon(BAD_ICON);
+ view.getSelectionStatus().setText(_("coser.ui.freize.unvalidated"));
}
} else {
view.getStep1Panel().setBackground(PENDING_COLOR);
+ view.getControlStatus().setIcon(BAD_ICON);
+ view.getControlStatus().setText(_("coser.ui.freize.unvalidated"));
}
} else {
view.getStep0Panel().setBackground(PENDING_COLOR);
- view.getStep0Icon().setIcon(BAD_ICON);
}
- }
+ }
+
+ /**
+ * Affiche en popup l'equivalent du menu "Données" > "Selection".
+ *
+ * @param view view
+ */
+ public void showSelectionDropDownMenu(Freize view, MouseEvent event) {
+ JPopupMenu menu = new JPopupMenu();
+
+ SelectionsListMenu oldMenu = new SelectionsListMenu(view.getParentContainer(CoserFrame.class));
+ oldMenu.setProject(view.getModel().getProject());
+
+ // lorsqu'on ajoute un element a menu, il est supprimé
+ // de oldMenu, donc le parcourt doit se faire en sens inverse
+ for (int i = oldMenu.getItemCount() - 1; i >= 0; i--) {
+ menu.insert(oldMenu.getMenuComponent(i), 0);
+ }
+
+ menu.show((Component)event.getSource(), event.getX(), event.getY());
+ }
}
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2012-08-14 14:45:09 UTC (rev 1048)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2012-08-14 17:29:50 UTC (rev 1049)
@@ -61,14 +61,21 @@
coser.ui.error.htmlmessage=An error occurred \: %s
coser.ui.error.reportSendTo=A report has been sent to %s
coser.ui.error.title=Global application error
-coser.ui.freize.controlaction=
-coser.ui.freize.controlstep=
-coser.ui.freize.projectaction=
-coser.ui.freize.projectstep=
-coser.ui.freize.resultaction=
-coser.ui.freize.resultstep=
-coser.ui.freize.selectionaction=
-coser.ui.freize.selectionstep=
+coser.ui.freize.controlaction=Control
+coser.ui.freize.controllockedtip=Control locked because selection exists \!
+coser.ui.freize.controlstep=2/4 Control
+coser.ui.freize.locked=Locked
+coser.ui.freize.projectcreate=Create
+coser.ui.freize.projectopen=Open
+coser.ui.freize.projectstep=1/4 Project
+coser.ui.freize.resultaction=Add result
+coser.ui.freize.resultstep=5/5 Result
+coser.ui.freize.rsufiaction=RSufi export
+coser.ui.freize.rsufistep=4/5 RSUfi
+coser.ui.freize.selectionaction=Selection ►
+coser.ui.freize.selectionstep=3/4 Selection
+coser.ui.freize.unvalidated=Not validated
+coser.ui.freize.validated=Validated
coser.ui.graph.compareNumberCatchLength=Comparison Catch/Length
coser.ui.graph.compareNumberCatchLengthTip=Display catch and length number comparison graphs (data are generated only during error check)
coser.ui.graph.lengthStructure=Length structure
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2012-08-14 14:45:09 UTC (rev 1048)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2012-08-14 17:29:50 UTC (rev 1049)
@@ -62,13 +62,20 @@
coser.ui.error.reportSendTo=Un rapport a été envoyé à %s
coser.ui.error.title=Erreur globale
coser.ui.freize.controlaction=Contrôle
-coser.ui.freize.controlstep=2/4 \: Contrôle
-coser.ui.freize.projectaction=Créer
-coser.ui.freize.projectstep=1/4 \: Création
+coser.ui.freize.controllockedtip=Contrôle vérrouillé car sélections existantes \!
+coser.ui.freize.controlstep=2/5 \: Contrôle
+coser.ui.freize.locked=Vérrouillé
+coser.ui.freize.projectcreate=Créer
+coser.ui.freize.projectopen=Ouvrir
+coser.ui.freize.projectstep=1/5 \: Création
coser.ui.freize.resultaction=Ajouter un résultat
-coser.ui.freize.resultstep=4/4 \: Résultats
-coser.ui.freize.selectionaction=Sélection
-coser.ui.freize.selectionstep=3/4 \: Sélection
+coser.ui.freize.resultstep=5/5 \: Résultats
+coser.ui.freize.rsufiaction=Export RSUfi
+coser.ui.freize.rsufistep=4/5 RSUfi
+coser.ui.freize.selectionaction=Sélection ►
+coser.ui.freize.selectionstep=3/5 \: Sélection
+coser.ui.freize.unvalidated=Non validé
+coser.ui.freize.validated=Validé
coser.ui.graph.compareNumberCatchLength=Comparaison Captures/Tailles
coser.ui.graph.compareNumberCatchLengthTip=Affiche les graphiques de comparaison des nombres entre les captures et les tailles (Les données sont générées uniquement lors de la vérification des erreurs)
coser.ui.graph.lengthStructure=Structures en taille
Added: trunk/coser-ui/src/main/resources/icons/agt_action_fail.png
===================================================================
(Binary files differ)
Property changes on: trunk/coser-ui/src/main/resources/icons/agt_action_fail.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/coser-ui/src/main/resources/icons/button_ok.png
===================================================================
(Binary files differ)
Property changes on: trunk/coser-ui/src/main/resources/icons/button_ok.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/coser-ui/src/main/resources/icons/stock_lock.png
===================================================================
(Binary files differ)
Property changes on: trunk/coser-ui/src/main/resources/icons/stock_lock.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-14 14:45:09 UTC (rev 1048)
+++ trunk/pom.xml 2012-08-14 17:29:50 UTC (rev 1049)
@@ -155,6 +155,13 @@
<version>${jaxx.version}</version>
<scope>compile</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.nuiton.jaxx</groupId>
+ <artifactId>jaxx-widgets</artifactId>
+ <version>${jaxx.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.swinglabs.swingx</groupId>
1
0
r1048 - in trunk: . coser-business/src/license coser-ui coser-ui/src/license coser-ui/src/main/java/fr/ifremer/coser/ui/freize coser-web/src/license
by echatellier@users.forge.codelutin.com 14 Aug '12
by echatellier@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: echatellier
Date: 2012-08-14 16:45:09 +0200 (Tue, 14 Aug 2012)
New Revision: 1048
Url: http://forge.codelutin.com/repositories/revision/coser/1048
Log:
Update header, third party, dependencies
Modified:
trunk/coser-business/src/license/THIRD-PARTY.properties
trunk/coser-ui/pom.xml
trunk/coser-ui/src/license/THIRD-PARTY.properties
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/FreizeModel.java
trunk/coser-web/src/license/THIRD-PARTY.properties
trunk/pom.xml
Modified: trunk/coser-business/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/coser-business/src/license/THIRD-PARTY.properties 2012-08-14 14:16:17 UTC (rev 1047)
+++ trunk/coser-business/src/license/THIRD-PARTY.properties 2012-08-14 14:45:09 UTC (rev 1048)
@@ -22,9 +22,6 @@
# Please fill the missing licenses for dependencies :
#
#
-#Tue Jan 10 11:54:42 CET 2012
-asm--asm--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
-asm--asm-commons--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
-asm--asm-tree--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
+#Tue Aug 14 16:22:07 CEST 2012
commons-primitives--commons-primitives--1.0=Apache Software License, Version 2.0
javassist--javassist--3.8.0.GA=GNU Lesser General Public License
Modified: trunk/coser-ui/pom.xml
===================================================================
--- trunk/coser-ui/pom.xml 2012-08-14 14:16:17 UTC (rev 1047)
+++ trunk/coser-ui/pom.xml 2012-08-14 14:45:09 UTC (rev 1048)
@@ -41,10 +41,6 @@
<artifactId>nuiton-utils</artifactId>
</dependency>
<dependency>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-validator</artifactId>
- </dependency>
- <dependency>
<groupId>org.nuiton.i18n</groupId>
<artifactId>nuiton-i18n</artifactId>
</dependency>
@@ -81,10 +77,6 @@
<artifactId>jaxx-validator</artifactId>
</dependency>
<dependency>
- <groupId>org.nuiton.jaxx</groupId>
- <artifactId>jaxx-widgets</artifactId>
- </dependency>
- <dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-core</artifactId>
</dependency>
Modified: trunk/coser-ui/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/coser-ui/src/license/THIRD-PARTY.properties 2012-08-14 14:16:17 UTC (rev 1047)
+++ trunk/coser-ui/src/license/THIRD-PARTY.properties 2012-08-14 14:45:09 UTC (rev 1048)
@@ -9,7 +9,6 @@
# - Bouncy Castle License
# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
# - Common Public License Version 1.0
-# - Copyright (c) 2000-2011 INRIA, France Telecom
# - GNU General Public License - Version 2 with the class path exception
# - GNU Lesser General Public Licence
# - GNU Lesser General Public License (LGPL), version 2.1
@@ -27,10 +26,7 @@
# Please fill the missing licenses for dependencies :
#
#
-#Tue Jan 10 11:58:01 CET 2012
-asm--asm--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
-asm--asm-commons--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
-asm--asm-tree--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
+#Tue Aug 14 15:41:41 CEST 2012
commons-jxpath--commons-jxpath--1.3=Apache Software License, Version 2.0
commons-primitives--commons-primitives--1.0=Apache Software License, Version 2.0
javassist--javassist--3.8.0.GA=GNU Lesser General Public License
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/FreizeModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/FreizeModel.java 2012-08-14 14:16:17 UTC (rev 1047)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/freize/FreizeModel.java 2012-08-14 14:45:09 UTC (rev 1048)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Coser :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
package fr.ifremer.coser.ui.freize;
import java.beans.PropertyChangeListener;
Modified: trunk/coser-web/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/coser-web/src/license/THIRD-PARTY.properties 2012-08-14 14:16:17 UTC (rev 1047)
+++ trunk/coser-web/src/license/THIRD-PARTY.properties 2012-08-14 14:45:09 UTC (rev 1048)
@@ -7,7 +7,6 @@
# - BSD-style license
# - Bouncy Castle License
# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-# - Copyright (c) 2000-2011 INRIA, France Telecom
# - GNU Lesser General Public Licence
# - GNU Lesser General Public License (LGPL), version 2.1
# - Indiana University Extreme! Lab Software License, vesion 1.1.1
@@ -23,10 +22,7 @@
# Please fill the missing licenses for dependencies :
#
#
-#Tue Jan 10 11:59:53 CET 2012
-asm--asm--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
-asm--asm-commons--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
-asm--asm-tree--3.1=Copyright (c) 2000-2011 INRIA, France Telecom
+#Tue Aug 14 16:31:46 CEST 2012
commons-primitives--commons-primitives--1.0=Apache Software License, Version 2.0
javassist--javassist--3.8.0.GA=GNU Lesser General Public License
javax.servlet--servlet-api--2.5=License Agreement for Java(TM) Servlet API Specification Interface Classes
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-14 14:16:17 UTC (rev 1047)
+++ trunk/pom.xml 2012-08-14 14:45:09 UTC (rev 1048)
@@ -120,12 +120,6 @@
<version>2.5.3</version>
<scope>compile</scope>
</dependency>
- <dependency>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-validator</artifactId>
- <version>2.5.3</version>
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>org.nuiton.matrix</groupId>
@@ -161,13 +155,6 @@
<version>${jaxx.version}</version>
<scope>compile</scope>
</dependency>
-
- <dependency>
- <groupId>org.nuiton.jaxx</groupId>
- <artifactId>jaxx-widgets</artifactId>
- <version>${jaxx.version}</version>
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>org.swinglabs.swingx</groupId>
1
0
r1047 - in trunk/src/site: . en/rst/devel rst/devel
by echatellier@users.forge.codelutin.com 14 Aug '12
by echatellier@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: echatellier
Date: 2012-08-14 16:16:17 +0200 (Tue, 14 Aug 2012)
New Revision: 1047
Url: http://forge.codelutin.com/repositories/revision/coser/1047
Log:
fixes #1334: Am?\195?\169liorer la documentation (mise ?\195?\160 jour des textes du site)
Modified:
trunk/src/site/en/rst/devel/textupdate.rst
trunk/src/site/rst/devel/textupdate.rst
trunk/src/site/site_en.xml
trunk/src/site/site_fr.xml
Modified: trunk/src/site/en/rst/devel/textupdate.rst
===================================================================
--- trunk/src/site/en/rst/devel/textupdate.rst 2012-08-14 13:45:56 UTC (rev 1046)
+++ trunk/src/site/en/rst/devel/textupdate.rst 2012-08-14 14:16:17 UTC (rev 1047)
@@ -23,3 +23,77 @@
.. * #L%
.. -
+
+Website text update
+===================
+
+This documentation shows hom to update text content of website available at:
+http://www.ifremer.fr/SIH-indices-campagnes/.
+
+Source
+------
+In order to modify source content, you have to be part of coser project developper
+to be allowed to commit on repository.
+
+After this autorisation, sources can be retreived with a subversion client:
+
+ * Windows : http://tortoisesvn.net/
+ * Linux : command line ``svn``
+
+Repository address is : http://svn.forge.codelutin.com/svn/coser/trunk
+
+Directory layout
+----------------
+Root directory contains 3 maven modules:
+
+ * *coser-business* : contains all business code (used by both other modules)
+ * *coser-ui* : swing client
+ * *coser-web* : website
+
+In order to modify website content *coser-web* module will be used.
+
+
+coser-web module source
+-----------------------
+In coser-web module, two groups of files concern the modification of text content:
+
+ * ``src/main/webapp/WEB-INF/content`` : html pages
+ * ``src/main/resources/fr/ifremer/coser/web`` : text translation to include in html pages
+
+
+Indeed, in the html pages, we find this kind of code ::
+
+ <head>
+ <title><s:text name="message.index.title" /></title>
+ </head>
+
+This code define a html page title, with the translation key `message.layout.title`.
+
+And in files ``package_en.properties`` and ``package_fr.properties`` we find
+respectively::
+
+ message.index.title=Home
+
+et::
+
+ message.index.title=Accueil
+
+
+Change and commit to the server
+-------------------------------
+You can change the formatting and content of HTML pages.
+However, it is important to ensure that the contents of translation files
+are in adequacy with the html.
+
+After making changes, you can commiting these changes
+on the server with your svn client.
+
+
+Production
+----------
+The act of commiting does not mean that the production site will be updated.
+Indeed, a new stable release must be prepared and installed in production.
+The changes you make will only be integrated in the next production.
+
+However, it is possible to ask the development team to prepare
+a new version if your changes were urgent.
Modified: trunk/src/site/rst/devel/textupdate.rst
===================================================================
--- trunk/src/site/rst/devel/textupdate.rst 2012-08-14 13:45:56 UTC (rev 1046)
+++ trunk/src/site/rst/devel/textupdate.rst 2012-08-14 14:16:17 UTC (rev 1047)
@@ -46,7 +46,7 @@
Le répertoire racine est constitué de 3 modules maven:
* *coser-business* : contenant le code métier (tout le code utilisé par les deux
- autre modules)
+ autres modules)
* *coser-ui* : client swing
* *coser-web* : site internet
@@ -56,7 +56,7 @@
Source du modules coser-web
---------------------------
-Dans le module coser-web, deux groupes de fichiers concerne la modification
+Dans le module coser-web, deux groupes de fichiers concernent la modification
du contenu textuel:
* ``src/main/webapp/WEB-INF/content`` : qui contient les pages html
@@ -69,7 +69,7 @@
<title><s:text name="message.index.title" /></title>
</head>
-Cette code défini un titre de page html, contenant la traduction de le clé
+Ce code défini un titre de page html, contenant la traduction de le clé
`message.layout.title`.
Et dans les fichiers ``package_en.properties`` et ``package_fr.properties``, on trouve
@@ -79,4 +79,25 @@
et::
- message.index.title=Accueil
\ No newline at end of file
+ message.index.title=Accueil
+
+
+Modification et commit sur le serveur
+-------------------------------------
+Il est possible de modifier la mise en forme et le contenu des pages html.
+Toutefois, il est important de veiller à ce que le contenu des fichiers de
+traductions soit en adequation avec les fichiers html.
+
+Une fois les modifications effectuées, vous pouvez commiter ces modifications
+sur le serveur avec votre client svn.
+
+
+Mise en prod
+------------
+Le fait de commiter ne signifie pas que le site de production sera mis à jour.
+En effet, une nouvelle version stable (release) doit être préparée et mise
+en production. Les modifications que vous pourrez effectuer ne seront
+intégrées que lors de la prochaine mise en production.
+
+Il est toutefois possible de demander à l'equipe de developpement la production
+d'une nouvelle version si vos modifications se révélaient urgentes.
Modified: trunk/src/site/site_en.xml
===================================================================
--- trunk/src/site/site_en.xml 2012-08-14 13:45:56 UTC (rev 1046)
+++ trunk/src/site/site_en.xml 2012-08-14 14:16:17 UTC (rev 1047)
@@ -47,8 +47,6 @@
<poweredBy>
<logo href="http://maven.apache.org" name="Maven" img="http://maven-site.forge.codelutin.com/coser/images/logos/maven-feather.png"/>
- <logo href="http://maven-site.nuiton.org/jrst" name="JRst" img="http://maven-site.forge.codelutin.com/coser/images/jrst-logo.png"/>
- <logo href="http://docutils.sourceforge.net/rst.html" name="ReStructuredText" img="http://maven-site.forge.codelutin.com/coser/images/restructuredtext-logo.png"/>
</poweredBy>
<body>
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2012-08-14 13:45:56 UTC (rev 1046)
+++ trunk/src/site/site_fr.xml 2012-08-14 14:16:17 UTC (rev 1047)
@@ -47,8 +47,6 @@
<poweredBy>
<logo href="http://maven.apache.org" name="Maven" img="http://maven-site.forge.codelutin.com/coser/images/logos/maven-feather.png"/>
- <logo href="http://maven-site.nuiton.org/jrst" name="JRst" img="http://maven-site.forge.codelutin.com/coser/images/jrst-logo.png"/>
- <logo href="http://docutils.sourceforge.net/rst.html" name="ReStructuredText" img="http://maven-site.forge.codelutin.com/coser/images/restructuredtext-logo.png"/>
</poweredBy>
<body>
1
0
r1046 - trunk/coser-business/src/main/java/fr/ifremer/coser/services
by echatellier@users.forge.codelutin.com 14 Aug '12
by echatellier@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: echatellier
Date: 2012-08-14 15:45:56 +0200 (Tue, 14 Aug 2012)
New Revision: 1046
Url: http://forge.codelutin.com/repositories/revision/coser/1046
Log:
Correction d'un bug lors de l'upload de donn?\195?\169es (les r?\195?\169sultats n'?\195?\169taient pas supprim?\195?\169s)
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2012-08-14 13:16:42 UTC (rev 1045)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2012-08-14 13:45:56 UTC (rev 1046)
@@ -918,7 +918,7 @@
// return result depending on result type
if ( ( indicatorResults == null || rsufiResult.isIndicatorsResult() == indicatorResults )
- &&
+ ||
( mapResults == null || rsufiResult.isMapsResult() == mapResults ) ) {
String resultResultId = rsufiResult.getZone();
if (StringUtils.isNotBlank(resultResultId)) {
1
0
r1045 - in trunk: coser-business/src/main/java/fr/ifremer/coser coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/main/resources/i18n coser-ui/src/main/java/fr/ifremer/coser/ui/option
by echatellier@users.forge.codelutin.com 14 Aug '12
by echatellier@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: echatellier
Date: 2012-08-14 15:16:42 +0200 (Tue, 14 Aug 2012)
New Revision: 1045
Url: http://forge.codelutin.com/repositories/revision/coser/1045
Log:
fixes #1321: Ajouter un warning sur les tailles aberrantes par esp?\195?\168ce
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java
trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/option/ConfigurationHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/option/ConfigurationView.jaxx
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java 2012-08-14 12:37:26 UTC (rev 1044)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java 2012-08-14 13:16:42 UTC (rev 1045)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
@@ -158,6 +158,14 @@
setOption(CoserBusinessOption.CONTROL_TYPE_FISH.key, controlTypeFish);
}
+ public void setStandardDeviationToAverage(int deviationToAverage) {
+ setOption(CoserBusinessOption.CONTROL_STANDARD_DEVIATION_TO_AVERAGE.key, String.valueOf(deviationToAverage));
+ }
+
+ public int getStandardDeviationToAverage() {
+ return getOptionAsInt(CoserBusinessOption.CONTROL_STANDARD_DEVIATION_TO_AVERAGE.key);
+ }
+
public double getSelectionOccurrenceFilter() {
double result = getOptionAsDouble(CoserBusinessOption.SELECTION_FILTER_OCCURRENCE.key);
return result;
@@ -229,95 +237,57 @@
return emails;
}
- public static enum CoserBusinessOption implements OptionDef {
+ public static enum CoserBusinessOption {
- DATABASE_DIRECTORY("coser.database.directory", _("coser.config.database.directory.description"), "${user.home}" + File.separator + "coser", String.class, false, false),
- PROJECTS_DIRECTORY("coser.projects.directory", _("coser.config.projects.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "projects", String.class, false, false),
- VALIDATOR_DIRECTORY("coser.validator.directory", _("coser.config.validator.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "validators", String.class, false, false),
+ DATABASE_DIRECTORY("coser.database.directory", _("coser.config.database.directory.description"), "${user.home}" + File.separator + "coser"),
+ PROJECTS_DIRECTORY("coser.projects.directory", _("coser.config.projects.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "projects"),
+ VALIDATOR_DIRECTORY("coser.validator.directory", _("coser.config.validator.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "validators"),
- SMTP_HOST("coser.smtp.host", _("coser.config.smtp.host.description"), "smtp", String.class, false, false),
- LOCALE("coser.locale", _("coser.config.locale.description"), Locale.FRANCE.toString(), Locale.class, false, false),
+ SMTP_HOST("coser.smtp.host", _("coser.config.smtp.host.description"), "smtp"),
+ LOCALE("coser.locale", _("coser.config.locale.description"), Locale.FRANCE.toString()),
- REFERENCE_SPECIES("coser.reference.species", _("coser.config.reference.species.description"), "", String.class, false, false),
- REFERENCE_TYPE_ESPECES("coser.reference.typeSpecies", _("coser.config.reference.typeSpecies.description"), "", String.class, false, false),
+ REFERENCE_SPECIES("coser.reference.species", _("coser.config.reference.species.description"), ""),
+ REFERENCE_TYPE_ESPECES("coser.reference.typeSpecies", _("coser.config.reference.typeSpecies.description"), ""),
- CONTROL_NOBSMIN("coser.control.nobsmin", _("coser.config.control.nobsmin.description"), "1.0", Double.class, false, false),
- CONTROL_DIFF_CATCH_LENGTH("coser.control.diffcatchlength", _("coser.config.control.diffcatchlength.description"), "5.0", Double.class, false, false),
- CONTROL_TYPE_FISH("coser.control.typeFish", _("coser.config.control.typeFish.description"), "Pisces + Agnatha", String.class, false, false),
- SELECTION_FILTER_OCCURRENCE("coser.selection.occurrenceFilter", _("coser.config.selection.occurrenceFilter.description"), "5.0", Double.class, false, false),
- SELECTION_FILTER_DENSITY("coser.selection.densityFilter", _("coser.config.selection.densityFilter.description"), "5.0", Double.class, false, false),
+ CONTROL_NOBSMIN("coser.control.nobsmin", _("coser.config.control.nobsmin.description"), "1.0"),
+ CONTROL_DIFF_CATCH_LENGTH("coser.control.diffcatchlength", _("coser.config.control.diffcatchlength.description"), "5.0"),
+ CONTROL_TYPE_FISH("coser.control.typeFish", _("coser.config.control.typeFish.description"), "Pisces + Agnatha"),
+ CONTROL_STANDARD_DEVIATION_TO_AVERAGE("coser.control.standarddeviationtoaverage", _("coser.config.control.standarddeviationtoaverage.description"), "3"),
+ SELECTION_FILTER_OCCURRENCE("coser.selection.occurrenceFilter", _("coser.config.selection.occurrenceFilter.description"), "5.0"),
+ SELECTION_FILTER_DENSITY("coser.selection.densityFilter", _("coser.config.selection.densityFilter.description"), "5.0"),
/** Client side. */
- WEB_FRONT_END("coser.web.frontend", _("coser.config.web.frontend.description"), "http://www.ifremer.fr/SIH-indices-campagnes", String.class, false, false),
- WEB_UPLOAD_URL("coser.web.uploadurl", _("coser.config.web.uploadurl.description"), "${" + WEB_FRONT_END.key + "}/upload-result.action", String.class, false, false),
+ WEB_FRONT_END("coser.web.frontend", _("coser.config.web.frontend.description"), "http://www.ifremer.fr/SIH-indices-campagnes"),
+ WEB_UPLOAD_URL("coser.web.uploadurl", _("coser.config.web.uploadurl.description"), "${" + WEB_FRONT_END.key + "}/upload-result.action"),
/** Server side. */
- WEB_PROPERTIES_FILE("coser.web.properties.file", _("coser.config.web.properties.file.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "web.properties", String.class, false, false),
- WEB_INDICATORS_PROJECTS_DIRECTORY("coser.web.indicators.projects.directory", _("coser.config.web.indicators.projects.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webindicatorsprojects", String.class, false, false),
- WEB_MAPS_PROJECTS_DIRECTORY("coser.web.maps.projects.directory", _("coser.config.web.maps.projects.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webmapsprojects", String.class, false, false),
- WEB_INDICATORS("coser.web.indicators.file", _("coser.config.web.indicators.file.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webindicators.csv", String.class, false, false),
- WEB_ZONES("coser.web.zones.file", _("coser.config.web.zones.file.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webzones.csv", String.class, false, false),
- WEB_PUBLICATION_EMAIL("coser.web.newresult.emails", _("coser.config.web.newresult.emails.description"), null, String.class, false, false);
+ WEB_PROPERTIES_FILE("coser.web.properties.file", _("coser.config.web.properties.file.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "web.properties"),
+ WEB_INDICATORS_PROJECTS_DIRECTORY("coser.web.indicators.projects.directory", _("coser.config.web.indicators.projects.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webindicatorsprojects"),
+ WEB_MAPS_PROJECTS_DIRECTORY("coser.web.maps.projects.directory", _("coser.config.web.maps.projects.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webmapsprojects"),
+ WEB_INDICATORS("coser.web.indicators.file", _("coser.config.web.indicators.file.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webindicators.csv"),
+ WEB_ZONES("coser.web.zones.file", _("coser.config.web.zones.file.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "webzones.csv"),
+ WEB_PUBLICATION_EMAIL("coser.web.newresult.emails", _("coser.config.web.newresult.emails.description"), null);
protected String key;
protected String description;
protected String defaultValue;
- protected Class<?> type;
- protected boolean isTransient;
- protected boolean isFinal;
- private CoserBusinessOption(String key, String description, String defaultValue, Class<?> type, boolean isTransient, boolean isFinal) {
+ private CoserBusinessOption(String key, String description, String defaultValue) {
this.key = key;
this.description = description;
this.defaultValue = defaultValue;
- this.type = type;
- this.isTransient = isTransient;
- this.isFinal = isFinal;
}
- @Override
- public boolean isFinal() {
- return isFinal;
- }
-
- @Override
- public boolean isTransient() {
- return isTransient;
- }
-
- @Override
public String getDefaultValue() {
return defaultValue;
}
- @Override
public String getDescription() {
return description;
}
- @Override
public String getKey() {
return key;
}
-
- @Override
- public Class<?> getType() {
- return type;
- }
-
- @Override
- public void setDefaultValue(String defaultValue) {
- this.defaultValue = defaultValue;
- }
-
- @Override
- public void setTransient(boolean isTransient) {
- this.isTransient = isTransient;
- }
-
- @Override
- public void setFinal(boolean isFinal) {
- this.isFinal = isFinal;
- }
}
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2012-08-14 12:37:26 UTC (rev 1044)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2012-08-14 13:16:42 UTC (rev 1045)
@@ -967,7 +967,7 @@
log.debug(String.format("Species %s, avg=%f, deviation=%f, value=%f", species, avg, deviation, nombre));
}
- if (Math.abs(nombre - avg) > deviation * 3) {
+ if (Math.abs(nombre - avg) > deviation * config.getStandardDeviationToAverage()) {
String lineNumber = tuple[AbstractDataEntity.INDEX_LINE];
ControlError error = new ControlError();
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2012-08-14 12:37:26 UTC (rev 1044)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2012-08-14 13:16:42 UTC (rev 1045)
@@ -142,6 +142,7 @@
coser.business.uploadresult.sendzip=Sending zip archive…
coser.config.control.diffcatchlength.description=Percentage difference allowed between catch and length (in percent, for example 5% set 5.0)
coser.config.control.nobsmin.description=Minimal observation number
+coser.config.control.standarddeviationtoaverage.description=Length outliers (how many strandard deviation to average)
coser.config.control.typeFish.description=Fish species code type
coser.config.database.directory.description=Coser database directory (all Coser data)
coser.config.locale.description=Application's locale
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2012-08-14 12:37:26 UTC (rev 1044)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2012-08-14 13:16:42 UTC (rev 1045)
@@ -142,6 +142,7 @@
coser.business.uploadresult.sendzip=Envoi de l'archive zip…
coser.config.control.diffcatchlength.description=Pourcentage d'écart toléré entre les captures et les tailles (en pourcent, par exemple pour 5% mettre 5.0)
coser.config.control.nobsmin.description=Nombre minimal d'observation
+coser.config.control.standarddeviationtoaverage.description=Tailles aberrantes (combien de fois l'écart type par rapport à la moyenne)
coser.config.control.typeFish.description=Nom du type d'espèces correspondant aux poissons
coser.config.database.directory.description=Emplacement du dossier de toutes les données relatives à Coser
coser.config.locale.description=Langue de l'application
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/option/ConfigurationHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/option/ConfigurationHandler.java 2012-08-14 12:37:26 UTC (rev 1044)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/option/ConfigurationHandler.java 2012-08-14 13:16:42 UTC (rev 1045)
@@ -121,6 +121,13 @@
}
config.setControlTypeFish(configurationView.getControlTypeFishField().getText());
try {
+ config.setStandardDeviationToAverage(Integer.parseInt(configurationView.getControlStandardDeviationField().getText()));
+ } catch (NumberFormatException ex) {
+ if (log.isWarnEnabled()) {
+ log.warn("Can't parse number", ex);
+ }
+ }
+ try {
config.setSelectionDensityFilter(Double.parseDouble(configurationView.getSelectionFilterDensityField().getText()));
} catch (NumberFormatException ex) {
if (log.isWarnEnabled()) {
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/option/ConfigurationView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/option/ConfigurationView.jaxx 2012-08-14 12:37:26 UTC (rev 1044)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/option/ConfigurationView.jaxx 2012-08-14 13:16:42 UTC (rev 1045)
@@ -5,7 +5,7 @@
$Id$
$HeadURL$
%%
- Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
+ Copyright (C) 2011 - 2012 Ifremer, Codelutin, Chatellier Eric
%%
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as
@@ -136,6 +136,14 @@
</row>
<row>
<cell fill="horizontal">
+ <JLabel text="{CoserBusinessOption.CONTROL_STANDARD_DEVIATION_TO_AVERAGE.getDescription()}" />
+ </cell>
+ <cell fill="horizontal">
+ <JTextField id="controlStandardDeviationField" text="{String.valueOf(config.getStandardDeviationToAverage())}" />
+ </cell>
+ </row>
+ <row>
+ <cell fill="horizontal">
<JLabel text="{CoserBusinessOption.SELECTION_FILTER_OCCURRENCE.getDescription()}" />
</cell>
<cell fill="horizontal">
1
0
r1044 - in trunk: coser-business/src/main/java/fr/ifremer/coser/services coser-ui/src/main/java/fr/ifremer/coser/ui/selection/replay
by echatellier@users.forge.codelutin.com 14 Aug '12
by echatellier@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: echatellier
Date: 2012-08-14 14:37:26 +0200 (Tue, 14 Aug 2012)
New Revision: 1044
Url: http://forge.codelutin.com/repositories/revision/coser/1044
Log:
refs #1331: Gestion du display esp?\195?\168ce dans l'etape 'rejouer une selection"
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/replay/SelectionReplayHandler.java
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 2012-08-14 12:26:07 UTC (rev 1043)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 2012-08-14 12:37:26 UTC (rev 1044)
@@ -602,6 +602,7 @@
for (String speciesCode : selection.getSelectedSpecies()) {
speciesBuilder.append(separator);
speciesBuilder.append(project.getDisplaySpeciesText(speciesCode));
+ separator = ",";
}
// partie resumé de selection
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/replay/SelectionReplayHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/replay/SelectionReplayHandler.java 2012-08-14 12:26:07 UTC (rev 1043)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/replay/SelectionReplayHandler.java 2012-08-14 12:37:26 UTC (rev 1044)
@@ -27,6 +27,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.SortedMap;
@@ -42,6 +43,7 @@
import fr.ifremer.coser.CoserBusinessException;
import fr.ifremer.coser.CoserException;
+import fr.ifremer.coser.CoserUtils;
import fr.ifremer.coser.bean.Project;
import fr.ifremer.coser.bean.Selection;
import fr.ifremer.coser.command.Command;
@@ -49,6 +51,7 @@
import fr.ifremer.coser.services.ProjectService;
import fr.ifremer.coser.ui.CoserFrame;
import fr.ifremer.coser.ui.common.CommonHandler;
+import fr.ifremer.coser.ui.common.SpeciesListRenderer;
import fr.ifremer.coser.ui.util.CoserListSelectionModel;
/**
@@ -248,16 +251,26 @@
}
// init next step
+ LinkedHashMap<String, String> reftaxSpecies = project.getRefTaxSpeciesMap();
List<String> currentSpecies = projectService.getProjectSpecies(selection, project, null);
+ currentSpecies = CoserUtils.sortCollectionWithMapKeys(reftaxSpecies, currentSpecies);
+
view.getSelectedSpeciesListModel().setSpecies(currentSpecies);
+ view.getSelectedSpeciesList().setCellRenderer(new SpeciesListRenderer(reftaxSpecies));
((CoserListSelectionModel)view.getSelectedSpeciesList().getSelectionModel()).setSelectedObjects(replayedSelection.getSelectedSpecies());
// affichage d'un message si la selection de liste n'est pas
// cohérente
Collection<String> remaindSpecies = CollectionUtils.subtract(replayedSelection.getSelectedSpecies(), currentSpecies);
if (!remaindSpecies.isEmpty()) {
- String speciesAsString = StringUtils.join(remaindSpecies, ", ");
- String message = _("coser.ui.selection.replay.missingspecies", speciesAsString);
+ String separator = "";
+ StringBuilder speciesBuilder = new StringBuilder(256);
+ for (String species : remaindSpecies) {
+ speciesBuilder.append(separator);
+ speciesBuilder.append(project.getDisplaySpeciesText(species));
+ separator = ",";
+ }
+ String message = _("coser.ui.selection.replay.missingspecies", speciesBuilder.toString());
view.getMessageArea5().setText(message);
}
1
0
r1043 - in trunk: coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/main/resources/i18n coser-ui/src/main/java/fr/ifremer/coser/ui/selection coser-ui/src/main/resources/i18n
by echatellier@users.forge.codelutin.com 14 Aug '12
by echatellier@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: echatellier
Date: 2012-08-14 14:26:07 +0200 (Tue, 14 Aug 2012)
New Revision: 1043
Url: http://forge.codelutin.com/repositories/revision/coser/1043
Log:
fixes #1325: Pouvoir renommer une esp?\195?\168ce depuis l'interface de s?\195?\169lection
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesFusionDialog.jaxx
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2012-08-14 09:26:57 UTC (rev 1042)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2012-08-14 12:26:07 UTC (rev 1043)
@@ -63,6 +63,7 @@
import org.apache.commons.collections.ListUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -2154,7 +2155,18 @@
while (itTuple.hasNext() && !result) {
String[] tuple = itTuple.next();
// "C_Perm","NumSys","NivSys","C_VALIDE","L_VALIDE","AA_VALIDE","C_TxP\u00E8re","Taxa"
- String specyCode = tuple[3];
+ String specyCode = null;
+ switch (project.getStorageSpeciesType()) {
+ case C_PERM:
+ specyCode = tuple[0];
+ break;
+ case C_Valide:
+ specyCode = tuple[3];
+ break;
+ case L_Valide:
+ specyCode = tuple[4];
+ break;
+ }
if (specyCode.equals(newSpeciesName)) {
result = true;
}
@@ -2178,9 +2190,19 @@
public Project mergeSpecies(Project project, Selection selection, String newSpeciesName, String comment, String... speciesNames) throws CoserBusinessException {
if (!isSpeciesNameExist(project, newSpeciesName)) {
- throw new CoserBusinessException(_("Species %s doesn't exist in referential", newSpeciesName));
+ throw new CoserBusinessException(_("Species %s doesn't exist in referential",
+ project.getDisplaySpeciesText(newSpeciesName)));
}
+ // check if new species name is not present in current selection
+ // species list (collision)
+ List<String> selectionSpecies = getProjectSpecies(selection, project, null);
+ if (selectionSpecies.contains(newSpeciesName) &&
+ !ArrayUtils.contains(speciesNames, newSpeciesName)) {
+ throw new CoserBusinessException(_("Species %s already exists in current selection",
+ project.getDisplaySpeciesText(newSpeciesName)));
+ }
+
MergeSpeciesCommand command = new MergeSpeciesCommand();
command.setNewSpecyName(newSpeciesName);
command.setSpeciesNames(speciesNames);
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2012-08-14 09:26:57 UTC (rev 1042)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2012-08-14 12:26:07 UTC (rev 1043)
@@ -16,6 +16,7 @@
Project\ %s\ doesn't\ exists\ \!=
Selection\ %s\ already\ exists=
Selection\ %s\ doesn't\ exists\ \!=
+Species\ %s\ already\ exists\ in\ current\ selection=Species %s already exists in current selection.\nYou have to perform merge with this species.
Species\ %s\ doesn't\ exist\ in\ referential=
Wrong\ header\ detected\ in\ file\ %s.\ Found\ \:\ %s,\ expected\ %s=Wrong header detected in file %s.\n\nFound \:\n\t%s\nexpected\n\t%s
Wrong\ header\ detected\ in\ file\ %s.\ Found\ \:\ %s,\ expected\ %s\ or\ %s=Wrong header detected in file %s.\n\nFound \:\n\t%s\nexpected\n\t%s\nor\n\t%s
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2012-08-14 09:26:57 UTC (rev 1042)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2012-08-14 12:26:07 UTC (rev 1043)
@@ -16,6 +16,7 @@
Project\ %s\ doesn't\ exists\ \!=Le projet %s n'existe pas \!
Selection\ %s\ already\ exists=La sélection %s existe déjà \!
Selection\ %s\ doesn't\ exists\ \!=La sélection %s n'existe pas \!
+Species\ %s\ already\ exists\ in\ current\ selection=L'espèce %s existe déjà dans la sélection.\nVous devez effectuer la fusion avec l'espèce déjà présente.
Species\ %s\ doesn't\ exist\ in\ referential=L'espèce %s n'existe pas dans le référentiel
Wrong\ header\ detected\ in\ file\ %s.\ Found\ \:\ %s,\ expected\ %s=Mauvais entête de fichier détecté dans\n%s. Corrigez les entêtes et relancez la création du projet.\n\nTrouvé \:\n\t%s\nAttendu \:\n\t%s.
Wrong\ header\ detected\ in\ file\ %s.\ Found\ \:\ %s,\ expected\ %s\ or\ %s=Mauvais entête de fichier détecté dans %s. Corrigez les entêtes et relancez la création du projet.\n\nTrouvé \:\n\t%s\nAttendu \:\n\t%s\nou \:\n\t%s.
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2012-08-14 09:26:57 UTC (rev 1042)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2012-08-14 12:26:07 UTC (rev 1043)
@@ -56,6 +56,7 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.combobox.ListComboBoxModel;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.nuiton.math.matrix.MatrixND;
@@ -653,7 +654,7 @@
// affiche le menu contextuel si au moins 2 especes selectionnées
int[] selectedRows = view.getFilteredSpeciesList().getSelectedIndices();
- if (selectedRows.length > 1) {
+ if (selectedRows.length > 0) {
// merge menu
JMenuItem fusionMenu = new JMenuItem(_("coser.ui.selection.speciesMenuFusion"));
fusionMenu.addActionListener(new ActionListener() {
@@ -663,9 +664,7 @@
}
});
popupMenu.add(fusionMenu);
- }
-
- if (selectedRows.length > 0) {
+
// graph
JMenuItem graphMenu = new JMenuItem(_("coser.ui.selection.details.displayDiffCatchLengthGraph"));
graphMenu.addActionListener(new ActionListener() {
@@ -688,8 +687,6 @@
});
popupMenu.add(selectAllMenu);
-
-
// unselect all menu
JMenuItem unselectAllMenu = new JMenuItem(_("coser.ui.common.unselectAll"));
unselectAllMenu.addActionListener(new ActionListener() {
@@ -761,17 +758,23 @@
*
* @param view parent view
*/
- protected void showSpeciesMergeDialog(SelectionDetailsView view) {
+ public void showSpeciesMergeDialog(SelectionDetailsView view) {
+ Project project = view.getContextValue(Project.class);
SpeciesFusionDialog speciesFusionDialog = new SpeciesFusionDialog(view);
speciesFusionDialog.setHandler(SelectionHandler.this);
- // pre fill new speci name with first selected species name
+ // fill species combo box with reftax species list
+ Map<String, String> reftaxSpecies = project.getRefTaxSpeciesMap();
+ ListComboBoxModel<String> speciesComboModel = new ListComboBoxModel<String>(new ArrayList<String>(reftaxSpecies.keySet()));
+ speciesFusionDialog.getSpeciesCombo().setModel(speciesComboModel);
+ speciesFusionDialog.getSpeciesCombo().setRenderer(new SpeciesListRenderer(reftaxSpecies));
+
+ // init selected element
String firstSelected = (String)view.getFilteredSpeciesList().getSelectedValue();
- speciesFusionDialog.getNewSpeciesNameField().setText(firstSelected);
+ speciesFusionDialog.getSpeciesCombo().setSelectedItem(firstSelected);
speciesFusionDialog.setLocationRelativeTo(view);
speciesFusionDialog.setVisible(true);
-
}
/**
@@ -1041,41 +1044,36 @@
// TODO echatellier 20101021 attention a ce que la selection
// ne change pas (la fenetre est modale pour l'instant)
- String newSpeciesName = view.getNewSpeciesNameField().getText();
+ String newSpeciesCode = (String)view.getSpeciesCombo().getSelectedItem();
String comment = view.getCommentField().getText();
Project project = view.getContextValue(Project.class);
Selection selection = view.getContextValue(Selection.class);
ProjectService projectService = view.getContextValue(ProjectService.class);
- boolean newSpeciesExist = projectService.isSpeciesNameExist(project, newSpeciesName);
- if (!newSpeciesExist) {
- JOptionPane.showMessageDialog(view, _("coser.ui.selection.invalidFusionName"),
- _("coser.ui.selection.fusionError"), JOptionPane.ERROR_MESSAGE);
- view.getNewSpeciesNameField().requestFocus();
+ SelectionDetailsView parent = view.getContextValue(SelectionDetailsView.class, JAXXUtil.PARENT);
+ Object[] selectedSpecies = parent.getFilteredSpeciesList().getSelectedValues();
+ String[] speciesCodes = new String[selectedSpecies.length];
+ for (int i = 0 ; i < selectedSpecies.length ; ++i) {
+ String singleSelectedSpecies = (String)selectedSpecies[i];
+ speciesCodes[i] = singleSelectedSpecies;
}
- else {
- SelectionDetailsView parent = view.getContextValue(SelectionDetailsView.class, JAXXUtil.PARENT);
- Object[] selectedSpecies = parent.getFilteredSpeciesList().getSelectedValues();
- String[] speciesNames = new String[selectedSpecies.length];
- for (int i = 0 ; i < selectedSpecies.length ; ++i) {
- String singleSelectedSpecies = (String)selectedSpecies[i];
- speciesNames[i] = singleSelectedSpecies;
- }
- try {
- projectService.mergeSpecies(project, selection, newSpeciesName, comment, speciesNames);
- }
- catch (CoserBusinessException ex) {
- throw new CoserException("Can't merge species", ex);
- }
+ try {
+ projectService.mergeSpecies(project, selection, newSpeciesCode, comment, speciesCodes);
updateSelectionSpecies(parent);
// supprime la selection apres fusion (demande utilisateur)
parent.getFilteredSpeciesListSelectionModel().clearSelection();
- view.dispose();
+
JOptionPane.showMessageDialog(view, _("coser.ui.selection.speciesMerged"),
_("coser.ui.selection.selectionTitle"), JOptionPane.INFORMATION_MESSAGE);
}
+ catch (CoserBusinessException ex) {
+ JOptionPane.showMessageDialog(view, ex.getMessage(),
+ _("coser.ui.selection.fusion.title"), JOptionPane.ERROR_MESSAGE);
+ }
+
+ view.dispose();
}
/**
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesFusionDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesFusionDialog.jaxx 2012-08-14 09:26:57 UTC (rev 1042)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesFusionDialog.jaxx 2012-08-14 12:26:07 UTC (rev 1043)
@@ -5,7 +5,7 @@
$Id$
$HeadURL$
%%
- Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric
%%
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as
@@ -35,7 +35,7 @@
<JLabel text="coser.ui.selection.fusion.name" />
</cell>
<cell weightx="1" fill="horizontal">
- <JTextField id="newSpeciesNameField" />
+ <JComboBox id="speciesCombo" />
</cell>
</row>
<row>
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2012-08-14 09:26:57 UTC (rev 1042)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2012-08-14 12:26:07 UTC (rev 1043)
@@ -228,8 +228,6 @@
coser.ui.selection.fusion.description=Species merge. Fill new species name with name existing in referential.
coser.ui.selection.fusion.name=New name \:
coser.ui.selection.fusion.title=Merge
-coser.ui.selection.fusionError=Merge error
-coser.ui.selection.invalidFusionName=Selection fusion name not found in referential \!
coser.ui.selection.maturitySpecies=L4 \: Species with maturity (%d/%d)
coser.ui.selection.nonJustifiedMaturity=Maturity species list is not all selected.\nYou must justify this selection with a comment.
coser.ui.selection.nonJustifiedOccurenceDensity=Filtered list selection doesn't match filter selection.\nYou must justify this selection with a comment.
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2012-08-14 09:26:57 UTC (rev 1042)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2012-08-14 12:26:07 UTC (rev 1043)
@@ -228,8 +228,6 @@
coser.ui.selection.fusion.description=Fusion d'espèces. Veuillez renseigner un nouveau nom présent dans le référentiel.
coser.ui.selection.fusion.name=Nouveau nom \:
coser.ui.selection.fusion.title=Fusion
-coser.ui.selection.fusionError=Erreur de fusion
-coser.ui.selection.invalidFusionName=Le nom de fusion choisit n'est pas présent de le référentiel \!
coser.ui.selection.maturitySpecies=L4 \: Espèces avec maturité (%d/%d)
coser.ui.selection.nonJustifiedMaturity=La liste espèces avec maturité n'est pas entièrement sélectionnée.\nVous devez justifier cette sélection par un commentaire.
coser.ui.selection.nonJustifiedOccurenceDensity=La sélection de la liste filtrée ne correspond pas à la sélection opérée par le filtre.\nVous devez justifier cette sélection par un commentaire.
1
0
r1042 - in trunk: coser-business/src/main/java/fr/ifremer/coser/bean coser-business/src/main/java/fr/ifremer/coser/services coser-ui/src/main/java/fr/ifremer/coser coser-ui/src/main/java/fr/ifremer/coser/ui coser-ui/src/main/java/fr/ifremer/coser/ui/project coser-ui/src/main/java/fr/ifremer/coser/ui/result coser-ui/src/main/java/fr/ifremer/coser/ui/selection coser-ui/src/main/resources/i18n
by echatellier@users.forge.codelutin.com 14 Aug '12
by echatellier@users.forge.codelutin.com 14 Aug '12
14 Aug '12
Author: echatellier
Date: 2012-08-14 11:26:57 +0200 (Tue, 14 Aug 2012)
New Revision: 1042
Url: http://forge.codelutin.com/repositories/revision/coser/1042
Log:
fixes #1327: Am?\195?\169liorer la gestion des ?\194?\171 autres fichiers ?\194?\187 lors de la modification
Added:
trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/OtherDataFileListModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
@@ -25,7 +25,9 @@
package fr.ifremer.coser.bean;
+import java.io.File;
import java.util.Date;
+import java.util.List;
import java.util.Properties;
/**
@@ -66,8 +68,8 @@
/** Utilisé seulement dans l'ui de visu des resultats (presence de carte ou non). */
protected boolean mapsAvailable;
- /** Utilisé seulement dans l'ui de visu des resultats (presence d'autres fichiers ou non). */
- protected boolean otherFilesAvailable;
+ /** Liste des nom de fichiers/dossier present dans other files */
+ protected List<File> otherFiles;
/** Result publiable. */
protected boolean publiableResult;
@@ -186,12 +188,12 @@
this.mapsAvailable = mapsAvailable;
}
- public boolean isOtherFilesAvailable() {
- return otherFilesAvailable;
+ public List<File> getOtherFiles() {
+ return otherFiles;
}
- public void setOtherFilesAvailable(boolean otherFilesAvailable) {
- this.otherFilesAvailable = otherFilesAvailable;
+ public void setOtherFiles(List<File> otherFiles) {
+ this.otherFiles = otherFiles;
}
public void setPubliableResult(boolean publiableResult) {
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -538,7 +538,13 @@
// other files dir
File othersDir = new File(resultDirectory, CoserConstants.STORAGE_OTHERS_DIRECTORY);
- rsufiResult.setOtherFilesAvailable(othersDir.isDirectory());
+ List<File> otherFiles = new ArrayList<File>();
+ if (othersDir.isDirectory()) {
+ for (File file : othersDir.listFiles()) {
+ otherFiles.add(file);
+ }
+ }
+ rsufiResult.setOtherFiles(otherFiles);
}
}
}
@@ -1101,8 +1107,7 @@
// save it
if (rsufiResultDirectory.exists()) {
throw new CoserBusinessException(_("coser.business.result.rsufiResultAlreadyExists", rsufiResult.getName()));
- }
- else {
+ } else {
rsufiResultDirectory.mkdirs();
// ensure creation date (modifiable par l'ui)
@@ -1131,8 +1136,7 @@
for (File othersFile : othersFiles) {
if (othersFile.isDirectory()) {
FileUtils.copyDirectoryToDirectory(othersFile, otherFilesDirectory);
- }
- else {
+ } else {
FileUtils.copyFileToDirectory(othersFile, otherFilesDirectory);
}
}
@@ -1148,9 +1152,15 @@
File mapsDir = new File(rsufiResultDirectory, CoserConstants.STORAGE_MAPS_DIRECTORY);
rsufiResult.setMapsAvailable(mapsDir.isDirectory());
- // other files dir
+ // update other files list
File othersDir = new File(rsufiResultDirectory, CoserConstants.STORAGE_OTHERS_DIRECTORY);
- rsufiResult.setOtherFilesAvailable(othersDir.isDirectory());
+ List<File> otherFiles = new ArrayList<File>();
+ if (othersDir.isDirectory()) {
+ for (File file : othersDir.listFiles()) {
+ otherFiles.add(file);
+ }
+ }
+ rsufiResult.setOtherFiles(otherFiles);
List<RSufiResult> results = selection.getRsufiResults();
results.add(rsufiResult);
@@ -1160,14 +1170,14 @@
}
/**
- * Save existing rsufi result (just save property file)
+ * Save existing rsufi result.
*
* @param project project
* @param selection selection
* @param rsufiResult new result to save
* @throws CoserBusinessException
*/
- public void saveRsufiResults(Project project, Selection selection, RSufiResult rsufiResult) throws CoserBusinessException {
+ public void editRsufiResults(Project project, Selection selection, RSufiResult rsufiResult, List<File> othersFile) throws CoserBusinessException {
File projectsDirectory = config.getProjectsDirectory();
File projectDirectory = new File(projectsDirectory, project.getName());
@@ -1175,13 +1185,45 @@
File selectionDirectory = new File(selectionsDirectory, selection.getName());
File resultsDirectory = new File(selectionDirectory, CoserConstants.STORAGE_RESULTS_DIRECTORY);
File rsufiResultDirectory = new File(resultsDirectory, rsufiResult.getName());
+ File otherFilesDirectory = new File(rsufiResultDirectory, CoserConstants.STORAGE_OTHERS_DIRECTORY);
// property file
- saveRSufiResult(rsufiResultDirectory, rsufiResult);
+ try {
+ saveRSufiResult(rsufiResultDirectory, rsufiResult);
+
+ // remove some files
+ Collection<File> toDeletes = CollectionUtils.subtract(rsufiResult.getOtherFiles(), othersFile);
+ for (File toDelete : toDeletes) {
+ FileUtils.deleteQuietly(toDelete);
+ }
+ // copy new file
+ for (File otherFile : othersFile) {
+ // non modified result, skipping it
+ if (!otherFile.getAbsolutePath().startsWith(otherFilesDirectory.getAbsolutePath())) {
+ if (otherFile.isDirectory()) {
+ FileUtils.copyDirectoryToDirectory(otherFile, otherFilesDirectory);
+ } else {
+ FileUtils.copyFileToDirectory(otherFile, otherFilesDirectory);
+ }
+ }
+ }
+ // update other files list
+ File othersDir = new File(rsufiResultDirectory, CoserConstants.STORAGE_OTHERS_DIRECTORY);
+ List<File> otherFiles = new ArrayList<File>();
+ if (othersDir.isDirectory()) {
+ for (File file : othersDir.listFiles()) {
+ otherFiles.add(file);
+ }
+ }
+ rsufiResult.setOtherFiles(otherFiles);
- List<RSufiResult> results = selection.getRsufiResults();
- // this way to fire change event (do not remove)
- selection.setRsufiResults(results);
+ List<RSufiResult> results = selection.getRsufiResults();
+ // this way to fire change event (do not remove)
+ selection.setRsufiResults(results);
+
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't edit result", ex);
+ }
}
/**
@@ -1205,7 +1247,7 @@
log.debug("Saving result properties file : " + propertiesFile);
}
} catch (IOException ex) {
- throw new CoserBusinessException("Can't save result properties file", ex);
+ throw new CoserBusinessException("Can't save result", ex);
} finally {
IOUtils.closeQuietly(outputStream);
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -25,7 +25,6 @@
package fr.ifremer.coser;
import java.io.File;
-import java.util.Map;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
@@ -42,14 +41,12 @@
import com.bbn.openmap.MapBean;
-import fr.ifremer.coser.bean.Project;
import fr.ifremer.coser.services.CommandService;
import fr.ifremer.coser.services.ControlService;
import fr.ifremer.coser.services.ProjectService;
import fr.ifremer.coser.services.PublicationService;
import fr.ifremer.coser.services.WebService;
import fr.ifremer.coser.ui.CoserFrame;
-import fr.ifremer.coser.ui.util.ErrorHelper;
/**
* Coser main class.
@@ -64,6 +61,8 @@
private static final Log log = LogFactory.getLog(Coser.class);
+ protected static CoserConfig coserConfig;
+
/**
* Coser main method.
*
@@ -72,7 +71,7 @@
public static void main(String... args) {
// init config
- final CoserConfig coserConfig = new CoserConfig();
+ coserConfig = new CoserConfig();
try {
coserConfig.parse(args);
} catch (ArgumentsParserException ex) {
@@ -87,15 +86,9 @@
// catch wall application exception
launch(coserConfig);
- Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
- public void uncaughtException(Thread t, Throwable ex) {
- if (log.isErrorEnabled()) {
- log.error("Global application exception", ex);
- }
- ErrorHelper errorHelper = new ErrorHelper(coserConfig);
- errorHelper.showErrorDialog(null, ex.getMessage(), ex);
- }
- });
+ // catch uncaught exceptions
+ Thread.setDefaultUncaughtExceptionHandler(new CoserExceptionHandler());
+ System.setProperty("sun.awt.exception.handler", CoserExceptionHandler.class.getName());
}
/**
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -0,0 +1,65 @@
+/*
+ * #%L
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+package fr.ifremer.coser;
+
+import java.lang.Thread.UncaughtExceptionHandler;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import fr.ifremer.coser.ui.util.ErrorHelper;
+
+/**
+ * Coser global exception handler.
+ *
+ * Catch all application uncaught and display it in a custom JoptionPane
+ * or JXErrorPane.
+ *
+ * See http://stackoverflow.com/a/4448569/1165234 for details.
+ *
+ * @author echatellier
+ * @since 1.3
+ */
+public class CoserExceptionHandler implements UncaughtExceptionHandler {
+
+ private static final Log log = LogFactory.getLog(CoserExceptionHandler.class);
+
+ @Override
+ public void uncaughtException(Thread t, Throwable ex) {
+ handleException(t.getName(), ex);
+ }
+
+ public void handle(Throwable thrown) {
+ // for EDT exceptions
+ handleException(Thread.currentThread().getName(), thrown);
+ }
+
+ protected void handleException(String tname, Throwable ex) {
+ if (log.isErrorEnabled()) {
+ log.error("Global application exception", ex);
+ }
+ ErrorHelper errorHelper = new ErrorHelper(Coser.coserConfig);
+ errorHelper.showErrorDialog(null, ex.getMessage(), ex);
+ }
+}
Property changes on: trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserExceptionHandler.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -427,8 +427,6 @@
setMainComponent(selectionView);
} catch (CoserBusinessException ex) {
- JOptionPane.showMessageDialog(view, ex.getMessage(), _("coser.ui.selection.createError"),
- JOptionPane.ERROR_MESSAGE);
throw new CoserException("Can't create new selection", ex);
}
finally {
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -25,6 +25,7 @@
import static org.nuiton.i18n.I18n._;
+import java.awt.event.MouseEvent;
import java.io.File;
import java.util.HashMap;
import java.util.List;
@@ -307,7 +308,7 @@
*
* @param projectView view
*/
- public void loadProject(final ProjectOpenView projectView) {
+ public void loadProject(ProjectOpenView projectView) {
int selectedIndex = projectView.getProjectsList().getSelectedIndex();
String projectName = (String)projectView.getProjectsList().getModel().getElementAt(selectedIndex);
@@ -329,4 +330,20 @@
setDefaultCursor(projectView);
}
}
+
+ /**
+ * Reload project (name selected in ui).
+ *
+ * @param projectView view
+ * @param event mouse event
+ */
+ public void loadProjectOnDoubleClick(ProjectOpenView projectView, MouseEvent event) {
+
+ if (event.getButton() == MouseEvent.BUTTON1 && event.getClickCount() == 2) {
+ int selectedIndex = projectView.getProjectsList().getSelectedIndex();
+ if (selectedIndex >= 0) {
+ loadProject(projectView);
+ }
+ }
+ }
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2012-08-14 09:26:57 UTC (rev 1042)
@@ -38,7 +38,8 @@
<cell fill="both" weightx="1">
<JScrollPane>
<JList id="projectsList" selectionMode="{javax.swing.ListSelectionModel.SINGLE_SELECTION}"
- model="{new fr.ifremer.coser.ui.project.ProjectNamesListModel(this)}" />
+ model="{new fr.ifremer.coser.ui.project.ProjectNamesListModel(this)}"
+ onMouseClicked="getHandler().loadProjectOnDoubleClick(this, event)" />
</JScrollPane>
</cell>
</row>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/OtherDataFileListModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/OtherDataFileListModel.java 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/OtherDataFileListModel.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -55,23 +55,29 @@
public List<File> getOtherFiles() {
return otherFiles;
}
+
+ public void setOtherFiles(List<File> otherFiles) {
+ this.otherFiles = otherFiles;
+ fireContentsChanged(this, 0, otherFiles.size() - 1);
+ }
public void add(File file) {
otherFiles.add(file);
fireIntervalAdded(this, otherFiles.size() - 1, otherFiles.size() - 1);
}
- /*
- * @see javax.swing.ListModel#getSize()
- */
+ public void remove(File file) {
+ int index = otherFiles.indexOf(file);
+ if (otherFiles.remove(file)) {
+ fireIntervalRemoved(this, index, index);
+ }
+ }
+
@Override
public int getSize() {
return otherFiles.size();
}
- /*
- * @see javax.swing.ListModel#getElementAt(int)
- */
@Override
public Object getElementAt(int index) {
return otherFiles.get(index);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -131,7 +131,7 @@
result = rsufiResult.isMapsAvailable();
break;
case 6:
- result = rsufiResult.isOtherFilesAvailable();
+ result = !rsufiResult.getOtherFiles().isEmpty();
break;
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2012-08-14 09:26:57 UTC (rev 1042)
@@ -149,7 +149,7 @@
</cell>
</row>
<row>
- <cell columns="3" fill="horizontal">
+ <cell columns="3" fill="horizontal" insets="0">
<Table>
<row>
<cell>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx 2012-08-14 09:26:57 UTC (rev 1042)
@@ -5,7 +5,7 @@
$Id$
$HeadURL$
%%
- Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
+ Copyright (C) 2011 - 2012 Ifremer, Codelutin, Chatellier Eric
%%
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as
@@ -22,7 +22,7 @@
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
-->
-<JDialog title="coser.ui.result.newResult" modal="true">
+<JDialog title="coser.ui.result.editResult" modal="true">
<Table>
<fr.ifremer.coser.ui.selection.SelectionHandler id="handler" javaBean="null" />
@@ -78,10 +78,43 @@
</cell>
</row>
<row>
- <cell columns="2" anchor="east">
- <JButton id="saveResultButton" text="coser.ui.result.validEditResult"
- onActionPerformed="getHandler().performEditResult(this)"/>
+ <cell anchor="west" columns="2">
+ <JLabel text="coser.ui.result.otherDataFile" />
</cell>
</row>
+ <row>
+ <cell columns="2" weighty="1" fill="both">
+ <JScrollPane>
+ <OtherDataFileListModel id="otherDataFileListModel" />
+ <JList id="otherDataFileList" model="{otherDataFileListModel}"/>
+ <ListSelectionModel javaBean="otherDataFileList.getSelectionModel()"
+ onValueChanged="removeOtherFile.setEnabled(getOtherDataFileList().getSelectedIndex() != -1)" />
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell columns="2" fill="horizontal" weightx="1">
+ <Table>
+ <row>
+ <cell>
+ <JButton text="coser.ui.result.addOtherDataFile"
+ onActionPerformed="getHandler().selectResultFileOrDirectory(this, otherDataFileList)"/>
+ </cell>
+ <cell>
+ <JButton id="removeOtherFile" text="coser.ui.result.removeOtherDataFile"
+ onActionPerformed="getHandler().removeSelectedFile(this)"/>
+ </cell>
+ <cell weightx="1" anchor="east">
+ <JButton text="coser.ui.result.cancel"
+ onActionPerformed="dispose()"/>
+ </cell>
+ <cell>
+ <JButton id="saveResultButton" text="coser.ui.result.validEditResult"
+ onActionPerformed="getHandler().performEditResult(this)"/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
</Table>
</JDialog>
\ No newline at end of file
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2012-08-14 09:26:57 UTC (rev 1042)
@@ -33,7 +33,6 @@
import java.awt.event.MouseEvent;
import java.io.File;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -1320,27 +1319,6 @@
}
/**
- * Show rsufi result edit dialog with selected rsufiresult.
- *
- * @param view view
- */
- public void showEditResultDialog(SelectionRsufiView view) {
-
- // get selected rsufi result
- int selectedRow = view.getSelectionResultsTable().getSelectedRow();
- RSufiResult result = view.getSelectionResultsTableModel().getValue(selectedRow);
-
- SelectionEditResultDialog editResultView = new SelectionEditResultDialog(view);
- // TODO chatellier 20101121 il ne faudrait pas que ca soit le
- // meme, sinon meme en annulant il est modifié
- editResultView.setRsufiResult(result);
- editResultView.setHandler(this);
- editResultView.pack();
- editResultView.setLocationRelativeTo(view);
- editResultView.setVisible(true);
- }
-
- /**
* Save new result after clicking "ok" button on SelectionAddResultDialog
* opened by {@link #showAddResultDialog(SelectionRsufiView)}.
*
@@ -1362,7 +1340,6 @@
}
catch (CoserBusinessException ex) {
JOptionPane.showMessageDialog(view, ex.getMessage(), _("coser.ui.result.saveError"), JOptionPane.ERROR_MESSAGE);
- throw new CoserException("Can't save result", ex);
}
finally {
setDefaultCursor(view);
@@ -1371,6 +1348,28 @@
}
/**
+ * Show rsufi result edit dialog with selected rsufiresult.
+ *
+ * @param view view
+ */
+ public void showEditResultDialog(SelectionRsufiView view) {
+
+ // get selected rsufi result
+ int selectedRow = view.getSelectionResultsTable().getSelectedRow();
+ RSufiResult result = view.getSelectionResultsTableModel().getValue(selectedRow);
+
+ SelectionEditResultDialog editResultView = new SelectionEditResultDialog(view);
+ // TODO chatellier 20101121 il ne faudrait pas que ca soit le
+ // meme, sinon meme en annulant il est modifié
+ editResultView.setRsufiResult(result);
+ editResultView.getOtherDataFileListModel().setOtherFiles(new ArrayList<File>(result.getOtherFiles()));
+ editResultView.setHandler(this);
+ editResultView.pack();
+ editResultView.setLocationRelativeTo(view);
+ editResultView.setVisible(true);
+ }
+
+ /**
* Save edited result (only save properties file).
*
* @param view view
@@ -1382,11 +1381,11 @@
RSufiResult editedResult = view.getRsufiResult();
try {
- projectService.saveRsufiResults(project, selection, editedResult);
+ List<File> newOthersFile = view.getOtherDataFileListModel().getOtherFiles();
+ projectService.editRsufiResults(project, selection, editedResult, newOthersFile);
}
catch (CoserBusinessException ex) {
JOptionPane.showMessageDialog(view, ex.getMessage(), _("coser.ui.result.saveError"), JOptionPane.ERROR_MESSAGE);
- throw new CoserException("Can't save result", ex);
}
view.dispose();
}
@@ -1500,7 +1499,7 @@
textComponent.setText(selectedFile.getAbsolutePath());
}
}
-
+
/**
* Select other files (file or directory).
*
@@ -1520,6 +1519,35 @@
}
/**
+ * Select other files (file or directory).
+ *
+ * @param view view
+ * @param listComponent list component to set selected file
+ */
+ public void selectResultFileOrDirectory(SelectionEditResultDialog view, JList listComponent) {
+ CoserConfig config = view.getContextValue(CoserConfig.class);
+ JFileChooser selectFileChooser = getFileChooserInstance(config.getProjectsDirectory());
+ selectFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+
+ int result = selectFileChooser.showOpenDialog(view);
+ if (result == JFileChooser.APPROVE_OPTION) {
+ File selectedFile = selectFileChooser.getSelectedFile();
+ view.getOtherDataFileListModel().add(selectedFile);
+ }
+ }
+
+ /**
+ * Remove selected file in other file list.
+ *
+ * @param view
+ * @since 1.3
+ */
+ public void removeSelectedFile(SelectionEditResultDialog view) {
+ File selectedFile = (File)view.getOtherDataFileList().getSelectedValue();
+ view.getOtherDataFileListModel().remove(selectedFile);
+ }
+
+ /**
* Genere le log des modifications faites lors du control en HTML
* et l'ouvre dans le navigateur systeme.
*
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2012-08-14 09:26:57 UTC (rev 1042)
@@ -164,6 +164,7 @@
coser.ui.result.newResult=New Result
coser.ui.result.otherDataFile=Other files \:
coser.ui.result.publiableResult=Publiable \:
+coser.ui.result.removeOtherDataFile=Remove file
coser.ui.result.requiredestComIndPath=
coser.ui.result.requiredestPopIndPath=
coser.ui.result.requiredname=
@@ -184,7 +185,6 @@
coser.ui.result.zone=Zone \:
coser.ui.selection.allSpecies=L1 \: All species (%d/%d)
coser.ui.selection.comment=Comment \:
-coser.ui.selection.createError=Creation error
coser.ui.selection.detail.confirmcontrolreload=Are you sure you want to reload controled data ?\nAll modifications done on current selection will be lost.
coser.ui.selection.detail.controldatareloaded=Controled data reloaded.
coser.ui.selection.detail.mainAccordion=Details
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2012-08-13 15:28:17 UTC (rev 1041)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2012-08-14 09:26:57 UTC (rev 1042)
@@ -164,6 +164,7 @@
coser.ui.result.newResult=Nouveau résultat
coser.ui.result.otherDataFile=Autre fichiers \:
coser.ui.result.publiableResult=Publiable \:
+coser.ui.result.removeOtherDataFile=Supprimer le fichier
coser.ui.result.requiredestComIndPath=
coser.ui.result.requiredestPopIndPath=
coser.ui.result.requiredname=
@@ -184,7 +185,6 @@
coser.ui.result.zone=Zone \:
coser.ui.selection.allSpecies=L1 \: Toutes les espèces (%d/%d)
coser.ui.selection.comment=Commentaire \:
-coser.ui.selection.createError=Erreur de créaction
coser.ui.selection.detail.confirmcontrolreload=Êtes vous sûr de vouloir recharger les données contrôlées ?\nToutes les modifications de la sélection en cours seront perdues.
coser.ui.selection.detail.controldatareloaded=Données contrôlées rechargées.
coser.ui.selection.detail.mainAccordion=Détails
1
0