You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(46) |
Jul
(37) |
Aug
(154) |
Sep
(140) |
Oct
(132) |
Nov
(104) |
Dec
(67) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(113) |
Feb
(73) |
Mar
(102) |
Apr
(106) |
May
(114) |
Jun
(67) |
Jul
(116) |
Aug
(48) |
Sep
(108) |
Oct
(296) |
Nov
(56) |
Dec
(53) |
| 2010 |
Jan
(95) |
Feb
(31) |
Mar
(40) |
Apr
(12) |
May
(10) |
Jun
(27) |
Jul
(19) |
Aug
(81) |
Sep
(48) |
Oct
(45) |
Nov
(40) |
Dec
(7) |
| 2011 |
Jan
(16) |
Feb
(32) |
Mar
(55) |
Apr
(38) |
May
(24) |
Jun
(37) |
Jul
(12) |
Aug
(16) |
Sep
(97) |
Oct
(90) |
Nov
(101) |
Dec
(89) |
| 2012 |
Jan
(18) |
Feb
(2) |
Mar
(54) |
Apr
(69) |
May
(97) |
Jun
(131) |
Jul
(70) |
Aug
(48) |
Sep
(48) |
Oct
(119) |
Nov
(194) |
Dec
(60) |
| 2013 |
Jan
(73) |
Feb
(35) |
Mar
(42) |
Apr
(28) |
May
(7) |
Jun
(17) |
Jul
(27) |
Aug
(10) |
Sep
(38) |
Oct
(12) |
Nov
(4) |
Dec
(16) |
| 2014 |
Jan
(33) |
Feb
(37) |
Mar
(19) |
Apr
(3) |
May
(47) |
Jun
(26) |
Jul
(22) |
Aug
|
Sep
(10) |
Oct
(30) |
Nov
(24) |
Dec
(19) |
| 2015 |
Jan
(13) |
Feb
(16) |
Mar
(36) |
Apr
(19) |
May
(5) |
Jun
(5) |
Jul
(3) |
Aug
(11) |
Sep
(22) |
Oct
(7) |
Nov
(14) |
Dec
|
| 2016 |
Jan
|
Feb
(26) |
Mar
(13) |
Apr
(61) |
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(27) |
Nov
(14) |
Dec
(21) |
| 2017 |
Jan
(30) |
Feb
(4) |
Mar
(3) |
Apr
(5) |
May
(69) |
Jun
(29) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <bma...@us...> - 2017-04-25 16:31:27
|
Revision: 9547
http://sourceforge.net/p/fudaa/svn/9547
Author: bmarchan
Date: 2017-04-25 16:31:24 +0000 (Tue, 25 Apr 2017)
Log Message:
-----------
Mise au point de la mise a l'echelle des images.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java 2017-04-19 08:35:20 UTC (rev 9546)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java 2017-04-25 16:31:24 UTC (rev 9547)
@@ -58,17 +58,28 @@
public void act() {
try {
- CtuluLog ana=new CtuluLog();
- ana.setDesc(getName());
- PivExeLauncher.instance().computeOrthoCoefs(ana, impl.getCurrentProject(), this);
- if (ana.containsErrorOrSevereError()) {
- impl.error(ana.getResume());
- return;
+ if (impl.getCurrentProject().isFullOrtho()) {
+ CtuluLog ana=new CtuluLog();
+ ana.setDesc(getName());
+ PivExeLauncher.instance().computeOrthoCoefs(ana, impl.getCurrentProject(), this);
+ if (ana.containsErrorOrSevereError()) {
+ impl.error(ana.getResume());
+ return;
+ }
+ PivExeLauncher.instance().computeTransfImg(ana, impl.getCurrentProject(), false, this);
+ if (ana.containsErrorOrSevereError()) {
+ impl.error(ana.getResume());
+ return;
+ }
}
- PivExeLauncher.instance().computeTransfImg(ana, impl.getCurrentProject(), false, this);
- if (ana.containsErrorOrSevereError()) {
- impl.error(ana.getResume());
- return;
+ else {
+ CtuluLog ana=new CtuluLog();
+ ana.setDesc(getName());
+ PivExeLauncher.instance().computeScalingImages(ana, impl.getCurrentProject(), false, this);
+ if (ana.containsErrorOrSevereError()) {
+ impl.error(ana.getResume());
+ return;
+ }
}
}
finally {
@@ -94,15 +105,18 @@
* @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement.
*/
public boolean isValide() {
- if (impl.getCurrentProject().getOrthoPoints()==null) {
- impl.error(PivResource.getS("Erreur"), PivResource.getS("Aucun point de r\xE9f\xE9rence au sol n'a \xE9t\xE9 d\xE9fini"));
- return false;
+ // Controle des points ortho uniquement pour full ortho.
+ if (impl.getCurrentProject().isFullOrtho()) {
+ if (impl.getCurrentProject().getOrthoPoints() == null) {
+ impl.error(PivResource.getS("Erreur"), PivResource.getS("Aucun point de r\xE9f\xE9rence au sol n'a \xE9t\xE9 d\xE9fini"));
+ return false;
+ }
+ String mes=impl.getCurrentProject().areOrthoPointsOk();
+ if (mes != null) {
+ impl.error(PivResource.getS("Erreur"), mes);
+ return false;
+ }
}
- String mes=impl.getCurrentProject().areOrthoPointsOk();
- if (mes!=null) {
- impl.error(PivResource.getS("Erreur"), mes);
- return false;
- }
if (impl.getCurrentProject().getOrthoParameters()==null) {
impl.error(PivResource.getS("Erreur"), PivResource.getS("Les param\xE8tres d'orthorectification n'ont pas \xE9t\xE9 donn\xE9s"));
return false;
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-04-19 08:35:20 UTC (rev 9546)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-04-25 16:31:24 UTC (rev 9547)
@@ -1,5 +1,7 @@
package org.fudaa.fudaa.piv.io;
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
@@ -13,11 +15,15 @@
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluTaskOperationGUI;
+import org.fudaa.ebli.geometrie.GrMorphisme;
+import org.fudaa.ebli.geometrie.GrPoint;
+import org.fudaa.ebli.geometrie.GrVecteur;
import org.fudaa.fudaa.piv.PivPreferences;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivUtils;
import org.fudaa.fudaa.piv.imageio.PivPGMWriter;
import org.fudaa.fudaa.piv.metier.PivFlowResults;
+import org.fudaa.fudaa.piv.metier.PivOrthoParameters;
import org.fudaa.fudaa.piv.metier.PivOrthoPoint;
import org.fudaa.fudaa.piv.metier.PivProject;
import org.fudaa.fudaa.piv.metier.PivResultsI;
@@ -239,6 +245,111 @@
}
/**
+ * Lance le calcul de transformation des images sources a partir des parametres de scaling
+ * d'orthorectification.
+ *
+ * @param _ana L'analyse pour la tache ex\xE9cut\xE9e.
+ * @param _prj Le projet.
+ * @param _task La tache en cours d'execution.
+ * @param _apercu true : Ne calcule qu'une seule image, pour l'apercu en espace
+ * r\xE9el.
+ * @return true : Tout s'est bien d\xE9roul\xE9.
+ */
+ public boolean computeScalingImages(CtuluLog _ana, PivProject _prj, boolean _apercu, CtuluTaskOperationGUI _task) {
+ File prjRoot=_prj.getRoot();
+ File prjImgOut=new File(prjRoot,IMG_TRANSF_DIR);
+
+ // Nettoyage eventuel du repertoire des images transform\xE9es.
+ prjImgOut.mkdir();
+ for (File f : _prj.getTransfImageFiles()) f.delete();
+
+ try {
+ // Les images sources
+ File[] imgInp = _prj.getSrcImageFiles();
+
+ if (_task!=null)
+ _task.setProgression(10);
+ int prog=0;
+
+ PivOrthoParameters params=_prj.getOrthoParameters();
+
+ int maxIter=(_apercu?1:imgInp.length);
+ for (int i = 0; i <maxIter ; i++) {
+ try {
+ if (_prj.cacheExists(imgInp[i])) {
+ File cache = _prj.getCacheImageFile(imgInp[i]);
+ BufferedImage inputBuffer = ImageIO.read(cache);
+
+ int imin=(int) (params.getXmin() / params.getResolution());
+ int jmin=(int) (params.getYmin() / params.getResolution());
+ int imax=(int) (params.getXmax() / params.getResolution());
+ int jmax=(int) (params.getYmax() / params.getResolution());
+ BufferedImage outputBuffer=new BufferedImage(imax - imin, jmax - jmin, BufferedImage.TYPE_INT_ARGB);
+ Graphics2D g=(Graphics2D) outputBuffer.getGraphics();
+
+ // Pas de transformation
+ if (_prj.getOrthoParameters().getScalingImgPoints().length == 0) {
+ g.translate(-imin, inputBuffer.getHeight()-jmin);
+ g.scale(1, -1);
+ g.drawImage(inputBuffer, 0, 0, null);
+ }
+
+ // Translation / rotation
+ else {
+ GrPoint p1final = new GrPoint(params.getScalingRealPoints()[0].x_ / params.getResolution(), params.getScalingRealPoints()[0].y_ / params.getResolution(), 0);
+
+ // Calcul de l'angle de rotation depuis les points saisis.
+ GrVecteur v1=new GrVecteur(params.getScalingImgPoints()[1].x_-params.getScalingImgPoints()[0].x_, params.getScalingImgPoints()[1].y_-params.getScalingImgPoints()[0].y_, 0);
+ GrVecteur v2=new GrVecteur(params.getScalingRealPoints()[1].x_-params.getScalingRealPoints()[0].x_, params.getScalingRealPoints()[1].y_-params.getScalingRealPoints()[0].y_, 0);
+ double rotation=v1.getAngleXY(v2);
+
+ // Le premier point saisi dans le repere apr\xE8s rotation
+ GrMorphisme toRotation=GrMorphisme.rotationZ(rotation);
+ GrPoint p1rotation = params.getScalingImgPoints()[0].applique(toRotation);
+
+ // La transformation de l'espace de depart vers l'espace final (le 2ieme point n'est pas forcement la ou c'\xE9tait demand\xE9).
+ GrMorphisme toFinal = GrMorphisme.rotationZ(rotation).composition(GrMorphisme.translation(p1final.x_-p1rotation.x_-imin, p1final.y_-p1rotation.y_-jmin, 0));
+ AffineTransform transf = toFinal.creeAffineTransorm2D();
+
+ g.transform(transf);
+ // Retournement de l'image (car espace Graphics2D avec (0,0) en haut \xE0 gauche de l'image)
+ g.translate(0, inputBuffer.getHeight());
+ g.scale(1, -1);
+ g.drawImage(inputBuffer, 0, 0, null);
+ }
+
+ new PivPGMWriter().write(new File(prjImgOut, "image" + PivUtils.formatOn4Chars(i + 1) + "_transf.pgm"), outputBuffer);
+ }
+
+ if (_task!=null && _task.isStopRequested()) {
+ _ana.addError(PivResource.getS("Transformation interrompue"));
+ return false;
+ }
+ }
+ catch (IOException ex) {
+ _ana.addError(ex.getMessage());
+ return false;
+ }
+ prog=((i+1)*90)/maxIter;
+ if (_task!=null)
+ _task.setProgression(prog);
+
+ }
+ FuLog.trace(PivResource.getS("Transformation des images ok."));
+ }
+
+ // On signale au projet que les images transform\xE9es ont chang\xE9.
+ finally {
+
+ _prj.setTransfImagesChanged(_task);
+ if (_task!=null)
+ _task.setProgression(100);
+ }
+
+ return true;
+ }
+
+ /**
* Lance le calcul des coefficients d'orthorectification.
* @param _ana L'analyse pour la tache ex\xE9cut\xE9e.
* @param _prj Le projet.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-04-19 08:35:22
|
Revision: 9546
http://sourceforge.net/p/fudaa/svn/9546
Author: bmarchan
Date: 2017-04-19 08:35:20 +0000 (Wed, 19 Apr 2017)
Log Message:
-----------
Fix :
- Translation FR -> EN
- Debit -> Q
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt
trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_en.xlsx
trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt 2017-04-13 22:32:30 UTC (rev 9545)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt 2017-04-19 08:35:20 UTC (rev 9546)
@@ -1,5 +1,14 @@
Fudaa-LSPIV
+Version 1.5.2 du xx/xx/2017
+===========================
+
+Corrections
+-----------
+
+- Le nom du fichier rapport sauvegardé (version anglaise) est a présent par défault
+ <case_name>_report.xlsx.
+
Version 1.5.1 du 13/04/2017
===========================
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_en.xlsx
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2017-04-13 22:32:30 UTC (rev 9545)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2017-04-19 08:35:20 UTC (rev 9546)
@@ -58,7 +58,7 @@
case 0:
return PivResource.getS("N\xB0");
case 1:
- return PivResource.getS("<html>D\xE9bit total (m\xB3/s)</html>");
+ return PivResource.getS("<html>Q total (m\xB3/s)</html>");
case 2:
return PivResource.getS("<html>Ecart (%)</html>");
case 3:
@@ -70,9 +70,9 @@
case 6:
return PivResource.getS("<html>Ecart (%)</html>");
case 7:
- return PivResource.getS("<html>D\xE9bit mesur\xE9 (m\xB3/s)</html>");
+ return PivResource.getS("<html>Q mesur\xE9 (m\xB3/s)</html>");
case 8:
- return PivResource.getS("<html>D\xE9bit mesur\xE9 / D\xE9bit total (%)</html>");
+ return PivResource.getS("<html>Q mesur\xE9 / Q total (%)</html>");
}
}
@@ -125,6 +125,7 @@
private class DischargeCellRenderer extends DefaultTableCellRenderer {
DecimalFormat fmt = CtuluLib.getDecimalFormat(3);
DecimalFormat fmtEcart = CtuluLib.getNoEffectDecimalFormat();
+ DecimalFormat fmtQRatio = CtuluLib.getNoEffectDecimalFormat();
public DischargeCellRenderer() {
this.setHorizontalAlignment(SwingConstants.RIGHT);
@@ -133,6 +134,8 @@
fmtEcart.setMaximumFractionDigits(1);
fmtEcart.setMinimumFractionDigits(1);
fmtEcart.setPositivePrefix("+");
+ fmtQRatio.setMaximumFractionDigits(1);
+ fmtQRatio.setMinimumFractionDigits(1);
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
@@ -142,7 +145,9 @@
if (((Double) value).isNaN()) {
this.setText(value.toString());
}
- else if (column==2 || column==4 || column==6 || column==8)
+ else if (column==8)
+ this.setText(fmtQRatio.format((Double)value));
+ else if (column==2 || column==4 || column==6)
this.setText(fmtEcart.format((Double)value));
else
this.setText(fmt.format((Double)value));
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-04-13 22:32:30 UTC (rev 9545)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-04-19 08:35:20 UTC (rev 9546)
@@ -48,10 +48,12 @@
import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel;
import org.fudaa.fudaa.piv.action.PivAutoCacheAction;
import org.fudaa.fudaa.piv.action.PivAverageFilteredResultsAction;
+import org.fudaa.fudaa.piv.action.PivChooseOrthoModeAction;
import org.fudaa.fudaa.piv.action.PivComputeFlowAction;
import org.fudaa.fudaa.piv.action.PivComputeLaunchAction;
import org.fudaa.fudaa.piv.action.PivDefineComputeParamAction;
import org.fudaa.fudaa.piv.action.PivDefineOrthoParamAction;
+import org.fudaa.fudaa.piv.action.PivDefineParamScalingAction;
import org.fudaa.fudaa.piv.action.PivExportGaugingReportAction;
import org.fudaa.fudaa.piv.action.PivExportImagesAction;
import org.fudaa.fudaa.piv.action.PivFilterInstantResultsAction;
@@ -96,7 +98,7 @@
protected static BuInformationsSoftware isPIV_ = new BuInformationsSoftware();
static {
isPIV_.name = "LSPIV";
- isPIV_.version = "1.5.1";
+ isPIV_.version = "1.5.2";
isPIV_.date = "2017-04-13";
isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2017";
isPIV_.license = "GPL2";
@@ -822,15 +824,15 @@
mn.add(new PivAutoCacheAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
mn.addSeparator(PivResource.getS("Orthorectification"));
-// mn.add(new PivChooseOrthoModeAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+ mn.add(new PivChooseOrthoModeAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
-// BuMenu mnScaling=new BuMenu(PivResource.getS("Mise \xE0 l'\xE9chelle"),"MN_SCALING");
-// mnScaling.add(new PivDefineParamScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
-// mnScaling.setEnabled(false);
-//
-// mn.add(mnScaling);
+ BuMenu mnScaling=new BuMenu(PivResource.getS("Mise \xE0 l'\xE9chelle"),"MN_SCALING");
+ mnScaling.add(new PivDefineParamScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+ mnScaling.setEnabled(false);
-// BuMenu mnOrtho=new BuMenu(PivResource.getS("Orthorectification"),"MN_ORTHO");
+ mn.add(mnScaling);
+
+ BuMenu mnOrtho=new BuMenu(PivResource.getS("Orthorectification"),"MN_ORTHO");
sm=new BuMenu(PivResource.getS("Points de r\xE9f\xE9rence"),"mnGRP");
bt=get2dFrame().getVisuPanel().getOrthoGRPAction().buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Nouveaux..."));
@@ -838,10 +840,10 @@
bt=new PivImportGRPAction((this)).buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Importer..."));
sm.add(bt);
-// mnOrtho.add(sm);
-// mnOrtho.add(new PivOrthoVerifyGRPAction(this));
- mn.add(sm);
- mn.add(new PivOrthoVerifyGRPAction(this));
+ mnOrtho.add(sm);
+ mnOrtho.add(new PivOrthoVerifyGRPAction(this));
+// mn.add(sm);
+// mn.add(new PivOrthoVerifyGRPAction(this));
sm=new BuMenu(PivResource.getS("Param\xE8tres de transformation"),"mnTRF",true);
bt=new PivDefineOrthoParamAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
@@ -850,10 +852,10 @@
bt=new PivImportOrthoParamAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Importer..."));
sm.add(bt);
-// mnOrtho.add(sm);
-// mnOrtho.setEnabled(false);
-// mn.add(mnOrtho);
- mn.add(sm);
+ mnOrtho.add(sm);
+ mnOrtho.setEnabled(false);
+ mn.add(mnOrtho);
+// mn.add(sm);
mn.add(new PivOrthoLaunchAction(this));
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java 2017-04-13 22:32:30 UTC (rev 9545)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java 2017-04-19 08:35:20 UTC (rev 9546)
@@ -49,7 +49,7 @@
add(tbParams, BorderLayout.CENTER);
String helpText=PivResource.getS("<b>R\xE9solution</b><p>Vous pouvez d\xE9finir la r\xE9solution soit directement, soit en saisissant des couples de points et moyennation.<p><u>Saisie par couple de points</u> :<br>Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es ou la distance dans la table (suivant l'option choisie)<p><p>");
- helpText+=PivResource.getS("<b>Transformation</b><p>Pour d\xE9finir une transformation, Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es dans la table");
+ helpText+=PivResource.getS("<b>Transformation</b><p>Pour d\xE9finir une transformation, saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es dans la table");
setHelpText("<html>"+helpText+"</html>");
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java 2017-04-13 22:32:30 UTC (rev 9545)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java 2017-04-19 08:35:20 UTC (rev 9546)
@@ -35,7 +35,7 @@
setLayout(new VerticalLayout(10));
setBorder(BorderFactory.createEmptyBorder(5, 5, 15, 5));
- final JLabel lbLink=new JLabel(PivResource.getS("<html><a href=\"{0}\">T\xE9l\xE9chargez la version {1} de Fudaa-LSPIV</a></html>", _url.toString(), _version));
+ final JLabel lbLink=new JLabel("<html><a href=\"{" + _url.toString() + "}\">" + PivResource.getS("T\xE9l\xE9chargez la version {0} de Fudaa-LSPIV", _version) + "</a></html>");
lbLink.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent me) {
lbLink.setCursor(new Cursor(Cursor.HAND_CURSOR));
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2017-04-13 22:32:30 UTC (rev 9545)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2017-04-19 08:35:20 UTC (rev 9546)
@@ -643,7 +643,7 @@
case 8:
val=rowIndex==flowResults.length+1? meanMeasuredDisch/meanDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE)/flowResults[rowIndex].getDischarge();
val*=100;
- return format(fmtEcart, val,null);
+ return format(fmt1Digit, val,null);
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2017-04-13 22:32:30 UTC (rev 9545)
+++ trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2017-04-19 08:35:20 UTC (rev 9546)
@@ -1,13 +1,12 @@
1 point de d\xE9part a \xE9t\xE9 ignor\xE9 car il est en dehors du maillage=1 starting point was ignored because it is outside of the mesh
-<b>R\xE9solution</b><p>Vous pouvez d\xE9finir la r\xE9solution soit directement, soit en saisissant des couples de points et moyennation.<p><u>Saisie par couple de points</u> \:<br>Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es ou la distance dans la table (suivant l'option choisie)<p><p>=**<b>R\xE9solution</b><p>Vous pouvez d\xE9finir la r\xE9solution soit directement, soit en saisissant des couples de points et moyennation.<p><u>Saisie par couple de points</u> \:<br>Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es ou la distance dans la table (suivant l'option choisie)<p><p>**
-<b>Transformation</b><p>Pour d\xE9finir une transformation, Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es dans la table=**<b>Transformation</b><p>Pour d\xE9finir une transformation, Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es dans la table**
-<html><a href\=\=**<html><a href\=\**
+<b>R\xE9solution</b><p>Vous pouvez d\xE9finir la r\xE9solution soit directement, soit en saisissant des couples de points et moyennation.<p><u>Saisie par couple de points</u> \:<br>Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es ou la distance dans la table (suivant l'option choisie)<p><p>=<b>Resolution</b><p>You can set the resolution either directly or by entering pairs of points and averaging.<p><u>By pair of points</u> \:<br>Enter 2 points on the screen and enter the coordinates or the distance in the table (depending on the option chosen)<p><p>
+<b>Transformation</b><p>Pour d\xE9finir une transformation, saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es dans la table=<b>Transformation</b><p>To define a transformation, please enter 2 points on the screen and enter the coordinates in the table
<html><p>Param\xE8tres de transformation du rep\xE8re<br>initial vers le rep\xE8re de calcul</html>=<html><p>Transformation parameters from initial<br>reference to calculation reference</html>
<html>Aire mouill\xE9e (m\xB2)</html>=<html>Wetted area (m\xB2)</html>
-<html>D\xE9bit mesur\xE9 (m\xB3/s)</html>=<html>Measur.disch.(m\xB3/s))</html>
-<html>D\xE9bit mesur\xE9 / D\xE9bit total (%)</html>=<html>Measur.disch. / Total disch. (%)</html>
-<html>D\xE9bit total (m\xB3/s)</html>=<html>Total disch. (m\xB3/s)</html>
<html>Ecart (%)</html>=<html>Gap (%)</html>
+<html>Q mesur\xE9 (m\xB3/s)</html>=<html>Measured Q (m\xB3/s)</html>
+<html>Q mesur\xE9 / Q total (%)</html>=<html>Measured Q / Total Q (%)</html>
+<html>Q total (m\xB3/s)</html>=<html>Total Q (m\xB3/s)</html>
<html>Une mise \xE0 jour de Fudaa-LSPIV est disponible.<br>Cliquez sur le lien ci-dessous pour la t\xE9l\xE9charger.</html>=<html>An update of Fudaa-LSPIV is available.<br>Click the link below to download it.</html>
<html>Vit. moy. (m/s)</html>=<html>Ave. vel. (m/s)</html>
<original>=<original>
@@ -21,7 +20,7 @@
Aire d'interrogation=Interrogation area
Aire de recherche=Search area
Aire mouill\xE9e (m\xB2)=Wetted area (m\xB2)
-Ajoute un couple par saisie de 2 points=**Ajoute un couple par saisie de 2 points**
+Ajoute un couple par saisie de 2 points=Add a pair by entering 2 points
Analyse LSPIV=LSPIV analysis
Analyse des images ok=Image analysis ok
Analyse du couple d'images {0} sur {1}=Analysis of image pair {0} out of {1}
@@ -70,7 +69,7 @@
Construction des \xE9l\xE9ments=Elements construction
Contour de grille=Grid outline
Contour grille=Grid outline
-Coordonn\xE9es=**Coordonn\xE9es**
+Coordonn\xE9es=Coordinates
Correspondance impossible des indices de noeuds lors de la creation du maillage=Impossible connection of nodes indices while creating the mesh
Corr\xE9lation=Correlation
Cr\xE9ation automatique des images cache=Images cache automatic creation
@@ -85,7 +84,7 @@
Des r\xE9sultats instantan\xE9s doivent exister=Instantaneous results must exist
Des r\xE9sultats instantan\xE9s filtr\xE9s doivent exister=Filtered instantaneous results must exist
Distance d'extrapolation=Extrapolation range
-Distance=**Distance**
+Distance=Distance
Dur\xE9e d'int\xE9gration=Integration duration
D\xE9bit mesur\xE9 (m\xB3/s)=Measur.disch.(m\xB3/s)
D\xE9bit total (m\xB3/s)=Total disch. (m\xB3/s)
@@ -217,7 +216,7 @@
Le r\xE9pertoire des ex\xE9cutables n'a pas encore \xE9t\xE9 pr\xE9cis\xE9 ou n'est pas valide=The executable file directory has not been specified yet or is not valid
Le segment n'est pas d\xE9fini=Segment is not defined
Les champs de la table sont les zones nomm\xE9es inconnues du syst\xE8me,\nissues du mod\xE8le Excel de rapport. Les zones nomm\xE9es connues sont \:\n\n=The fields in the table are system unknown named areas,\ncoming from the Excel report template. Known named areas are \:\n\n
-Les coordonn\xE9es pour les points de transformation doivent \xEAtre renseign\xE9s=**Les coordonn\xE9es pour les points de transformation doivent \xEAtre renseign\xE9s**
+Les coordonn\xE9es pour les points de transformation doivent \xEAtre renseign\xE9s=The coordinates for the transformation points must be given
Les executables suivants manquent dans le r\xE9pertoire donn\xE9\:\n=The following executable files are missing in the specified directory\:\n
Les extremit\xE9s du segment sont confondues. Une seule trajectoire sera calcul\xE9e.\nVoulez-vous continuer ?=Segment extremities are identical. Only one path will be calculated.\nDo you want to continue ?
Les images doivent exister=Images must exist
@@ -240,7 +239,7 @@
Limites de la composante Vx (m/s)=Vx component magnitude thresholds (m/s)
Limites de la composante Vy (m/s)=Vy component magnitude thresholds (m/s)
Limites de la norme de vitesse (m/s)=Velocity magnitude thresholds (m/s)
-Limites=**Limites**
+Limites=Boundaries
Liste des images=Images list
Liste des r\xE9sultats instantan\xE9s=Instantaneous results list
Liste des transects=Transects list
@@ -257,8 +256,8 @@
Min norme de vitesse=Min velocity magnitude
Min=Min
Mise \xE0 jour disponible=Update available
-Mise \xE0 l'\xE9chelle=**Mise \xE0 l'\xE9chelle**
-Mode d'orthorectification=**Mode d'orthorectification**
+Mise \xE0 l'\xE9chelle=Scaling
+Mode d'orthorectification=Orthorectification mode
Mode=Mode
Modification des points de r\xE9f\xE9rence=Modification of the reference points
Modification des transects initiaux=Modification of the initial transects
@@ -278,7 +277,7 @@
Nouveaux points=New points
Nouveaux=New ones
N\xB0=#
-Orthorectification compl\xE8te=**Orthorectification compl\xE8te**
+Orthorectification compl\xE8te=Full orthorectification
Orthorectification=Orthorectification
Ouverture d'un projet=Opening a project
Param\xE8tres de calcul de d\xE9bit=Discharge calculation parameters
@@ -285,7 +284,7 @@
Param\xE8tres de calcul=Calculation parameters
Param\xE8tres de transformation=Transformation parameters
Param\xE8tres du transect=Transect parameters
-Param\xE8tres=**Param\xE8tres**
+Param\xE8tres=Parameters
Particules (res. bruts)=Particles (raw res.)
Particules (res. filtr\xE9s)=Particles (filtered res.)
Particules (res. moy.)=Particles (ave. res.)
@@ -294,7 +293,7 @@
Pas d'interpolation=Interpolation step
Pas de r\xE9sultats disponibles pour le trac\xE9 de particules=No results available for particle tracing
Pas de temps initial=Initial time step
-Pas de translation / rotation=**Pas de translation / rotation**
+Pas de translation / rotation=No translation / rotation
Points de contr\xF4le=Check points
Points de grille=Grid points
Points de r\xE9f\xE9rence=Reference points
@@ -334,10 +333,10 @@
R\xE9pertoire contenant les executables=Directory containing the executable files
R\xE9pertoire destination=Destination directory
R\xE9solution (m/pix)=Resolution (m/pix)
-R\xE9solution calcul\xE9e=**R\xE9solution calcul\xE9e**
-R\xE9solution moyenne calcul\xE9e=**R\xE9solution moyenne calcul\xE9e**
-R\xE9solution saisie=**R\xE9solution saisie**
-R\xE9solution=**R\xE9solution**
+R\xE9solution calcul\xE9e=Computed resolution
+R\xE9solution moyenne calcul\xE9e=Average computed resolution
+R\xE9solution saisie=Entered resolution
+R\xE9solution=Resolution
R\xE9sultat \: {0}=Result \: {0}
R\xE9sultats bruts=Raw results
R\xE9sultats du calcul=Calculation results
@@ -350,13 +349,13 @@
R\xE9sultats=Results
R\xE9sultats\: point n\xB0=Results\: point #
SA en bleu=SA in blue
-Saisie des 2 points pour la transformation=**Saisie des 2 points pour la transformation**
-Saisie des 2 points pour la translation / rotation=**Saisie des 2 points pour la translation / rotation**
-Saisie directe de la r\xE9solution=**Saisie directe de la r\xE9solution**
+Saisie des 2 points pour la transformation=Entering 2 points for transformation
+Saisie des 2 points pour la translation / rotation=Entering 2 points for translation / rotation
+Saisie directe de la r\xE9solution=Direct input of resolution
Saisie interactive=Interactive input
-Saisie par couples de points /=**Saisie par couples de points /**
-Saisir un couple=**Saisir un couple**
-Saisir=**Saisir**
+Saisie par couples de points /=Input by pairs of points /
+Saisir un couple=Enter a pair
+Saisir=Enter
Saisissez la position du centre=Please click center location
Sauvegarde du projet=Saving the project
Sim=Sim
@@ -366,7 +365,7 @@
Sjp=Sjp
Souhaitez vous remplacer les transects initiaux par ceux calcul\xE9s ?=Would you replace initial transects by those calculated ?
Stop=Stop
-Supprime les couples s\xE9lectionn\xE9s=**Supprime les couples s\xE9lectionn\xE9s**
+Supprime les couples s\xE9lectionn\xE9s=Removes selected pairs
Supprimer=Delete
S\xE9lection d'un fichier GRP=Selection of the GRP file
S\xE9lection d'un fichier de grille=Selection of the grid file
@@ -407,6 +406,7 @@
Translation=Translation
Triangulation=Meshing
Type=Type
+T\xE9l\xE9chargez la version {0} de Fudaa-LSPIV=Download version {0} of Fudaa-LSPIV
Un fichier vid\xE9o doit \xEAtre s\xE9lectionn\xE9 et exister=A video file must be selected and exist
Un seul fichier projet est autoris\xE9 pour le transfert=Only one project file is authorized during transfer
Un transect doit \xEAtre d\xE9fini et des r\xE9sultats moyenn\xE9s doivent exister=A transect must be specified and averaged results must exist
@@ -462,7 +462,7 @@
Zoom initial=Initial zoom
Zoomer sur le segment=Zoom on segment
la dur\xE9e du calcul doit \xEAtre comprise entre {0} et {1}=Calculation duration must be between {0} and {1}
-rapport=**rapport**
+rapport=report
{0} ligne(s) de courant enlev\xE9e(s) car vide(s)={0} stream line(s) removed because empty
{0} points de d\xE9part ont \xE9t\xE9 ignor\xE9s car ils sont en dehors du maillage={0} starting points was ignored because they are outside of the mesh
{0} trajectoire(s) enlev\xE9e(s) car vide(s)={0} path(s) remomved because empty
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-04-13 22:32:33
|
Revision: 9545
http://sourceforge.net/p/fudaa/svn/9545
Author: bmarchan
Date: 2017-04-13 22:32:30 +0000 (Thu, 13 Apr 2017)
Log Message:
-----------
Traduction + chmod +x sur ffmpeg.x
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt
trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt
trunk/soft/fudaa-lspiv/distrib/src/dist/izpack/fudaa-lspiv.xml
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java
trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt 2017-04-13 19:53:59 UTC (rev 9544)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt 2017-04-13 22:32:30 UTC (rev 9545)
@@ -34,6 +34,8 @@
- Le menu Fichier->Exporter->Export des images sources restait grisé jusqu'a ce que le
projet contienne des images transformées.
+
+- Les filtres sur les composantes VX et VY étaient intervertis.
Version 1.5.0 du 20/12/2016
===========================
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt 2017-04-13 19:53:59 UTC (rev 9544)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt 2017-04-13 22:32:30 UTC (rev 9545)
@@ -33,6 +33,8 @@
- Menu File->Export->Export source images export remained disabled till project contains
transformed images.
+- Filters on the VX and VY components were interchanged.
+
Version 1.5.0 (2016/12/20)
==========================
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/izpack/fudaa-lspiv.xml
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/izpack/fudaa-lspiv.xml 2017-04-13 19:53:59 UTC (rev 9544)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/izpack/fudaa-lspiv.xml 2017-04-13 22:32:30 UTC (rev 9545)
@@ -10,7 +10,7 @@
<info>
<appname>Fudaa-LSPIV</appname>
<!-- Impossible de mettre le n de version dans une variable externe ! Dommage... -->
- <appversion>1.5.0</appversion>
+ <appversion>1.5.1</appversion>
<authors>
<author name="Magali Jodeau (EDF)" email="mag...@ed..."/>
<author name="Alexandre Hauet (EDF)" email="ale...@ed..."/>
@@ -26,7 +26,7 @@
<variables>
<variable name="lspiv-jar" value="fudaa-lspiv-${ENV[LSPIV_JAR]}.jar" />
- <variable name="released-on" value="20/12/2016"/>
+ <variable name="released-on" value="13/04/2017"/>
<!-- Change de r\xE9pertoire de destination de l'installation -->
<variable name="TargetPanel.dir" value="${DEFAULT_INSTALL_PATH} ${APP_VER}"/>
<!-- Cl\xE9 de registre pour les associations de fichiers -->
@@ -144,6 +144,7 @@
<fileset os="unix" dir="../../../../../fudaa/serveurs/lspiv" targetdir="$INSTALL_PATH/exes">
<include name="*.x"/>
</fileset>
+ <executable os="unix" targetfile="$INSTALL_PATH/exes/ffmpeg.x" />
<executable os="unix" targetfile="$INSTALL_PATH/exes/filter.x" />
<executable os="unix" targetfile="$INSTALL_PATH/exes/moy_ec.x" />
<executable os="unix" targetfile="$INSTALL_PATH/exes/ortho_plan.x" />
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java 2017-04-13 19:53:59 UTC (rev 9544)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java 2017-04-13 22:32:30 UTC (rev 9545)
@@ -74,7 +74,7 @@
});
JPanel pnSampling = new JPanel();
- pnSampling.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Echantillonage")));
+ pnSampling.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Echantillonnage")));
pnSampling.setLayout(new BuGridLayout(2, 5, 5, true, false));
pnSampling.add(new JLabel(PivResource.getS("Nombre d'images par secondes:")));
Modified: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2017-04-13 19:53:59 UTC (rev 9544)
+++ trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2017-04-13 22:32:30 UTC (rev 9545)
@@ -1,5 +1,15 @@
1 point de d\xE9part a \xE9t\xE9 ignor\xE9 car il est en dehors du maillage=1 starting point was ignored because it is outside of the mesh
+<b>R\xE9solution</b><p>Vous pouvez d\xE9finir la r\xE9solution soit directement, soit en saisissant des couples de points et moyennation.<p><u>Saisie par couple de points</u> \:<br>Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es ou la distance dans la table (suivant l'option choisie)<p><p>=**<b>R\xE9solution</b><p>Vous pouvez d\xE9finir la r\xE9solution soit directement, soit en saisissant des couples de points et moyennation.<p><u>Saisie par couple de points</u> \:<br>Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es ou la distance dans la table (suivant l'option choisie)<p><p>**
+<b>Transformation</b><p>Pour d\xE9finir une transformation, Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es dans la table=**<b>Transformation</b><p>Pour d\xE9finir une transformation, Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es dans la table**
+<html><a href\=\=**<html><a href\=\**
<html><p>Param\xE8tres de transformation du rep\xE8re<br>initial vers le rep\xE8re de calcul</html>=<html><p>Transformation parameters from initial<br>reference to calculation reference</html>
+<html>Aire mouill\xE9e (m\xB2)</html>=<html>Wetted area (m\xB2)</html>
+<html>D\xE9bit mesur\xE9 (m\xB3/s)</html>=<html>Measur.disch.(m\xB3/s))</html>
+<html>D\xE9bit mesur\xE9 / D\xE9bit total (%)</html>=<html>Measur.disch. / Total disch. (%)</html>
+<html>D\xE9bit total (m\xB3/s)</html>=<html>Total disch. (m\xB3/s)</html>
+<html>Ecart (%)</html>=<html>Gap (%)</html>
+<html>Une mise \xE0 jour de Fudaa-LSPIV est disponible.<br>Cliquez sur le lien ci-dessous pour la t\xE9l\xE9charger.</html>=<html>An update of Fudaa-LSPIV is available.<br>Click the link below to download it.</html>
+<html>Vit. moy. (m/s)</html>=<html>Ave. vel. (m/s)</html>
<original>=<original>
A distance constante=At a constant distance
A pas de temps constant=At a constant time
@@ -11,6 +21,7 @@
Aire d'interrogation=Interrogation area
Aire de recherche=Search area
Aire mouill\xE9e (m\xB2)=Wetted area (m\xB2)
+Ajoute un couple par saisie de 2 points=**Ajoute un couple par saisie de 2 points**
Analyse LSPIV=LSPIV analysis
Analyse des images ok=Image analysis ok
Analyse du couple d'images {0} sur {1}=Analysis of image pair {0} out of {1}
@@ -59,6 +70,7 @@
Construction des \xE9l\xE9ments=Elements construction
Contour de grille=Grid outline
Contour grille=Grid outline
+Coordonn\xE9es=**Coordonn\xE9es**
Correspondance impossible des indices de noeuds lors de la creation du maillage=Impossible connection of nodes indices while creating the mesh
Corr\xE9lation=Correlation
Cr\xE9ation automatique des images cache=Images cache automatic creation
@@ -73,6 +85,7 @@
Des r\xE9sultats instantan\xE9s doivent exister=Instantaneous results must exist
Des r\xE9sultats instantan\xE9s filtr\xE9s doivent exister=Filtered instantaneous results must exist
Distance d'extrapolation=Extrapolation range
+Distance=**Distance**
Dur\xE9e d'int\xE9gration=Integration duration
D\xE9bit mesur\xE9 (m\xB3/s)=Measur.disch.(m\xB3/s)
D\xE9bit total (m\xB3/s)=Total disch. (m\xB3/s)
@@ -80,11 +93,14 @@
D\xE9finir=Define
D\xE9finition des points de grille=Definition of grid points
D\xE9finition du nombre de points sur la grille=Definition of the number of points in the grid
-Ecart (%)=Gap (%)
Ecart=Gap
+Echantillonnage interrompu=Sampling interrupted
+Echantillonnage ok=Sampling ok
+Echantillonnage=Sampling
Editer la g\xE9om\xE9trie s\xE9lectionn\xE9e=Edit the selected geometry
Editer=Edit
Erreur d'analyse du couple d'images {0},{1}\:\n=Error while analysing image pair {0},{1}\:\n
+Erreur dans l'\xE9chantillonnage\:\n=Error in sampling\:\n
Erreur de calcul des coefficients \:\n=Error while calculating the coefficients\:\n
Erreur de calcul des r\xE9sultats moyens\:\n=Error while calculating average results\:\n
Erreur de calcul des scalaires instantan\xE9s\:\n=Instantaneous scalars calculation error\:\n
@@ -109,13 +125,14 @@
Exporter les images transform\xE9es=Export transformed images
Ficher Excel d'export=Export Excel file
Fichier Excel=Excel file
-Fichier GRP=GRP file
Fichier bathy=Bathymetry file
-Fichier grid=Grid file
+Fichier calcul (PIV_param.dat)=Calculation file (PIV_param.dat)
+Fichier grille (grid.dat)=Grid file (grid.dat)
Fichier manquant=Missing file
-Fichier params calcul=Params calculation file
-Fichier params transformation=Params transf. file
+Fichier points (GRP.dat)=GRP file (GRP.dat)
Fichier projet=Project file
+Fichier transformation (img_ref.dat)=Transformation file (img_ref.dat)
+Fichier vid\xE9o=Video file
Fichiers images en niveaux de gris=Gray-scale image files
Fichiers images=Images files
Filtrage des r\xE9sultats instantan\xE9s=Instantaneous results filtering
@@ -129,8 +146,11 @@
Format d'export=Export format
Format de fichier invalide \: Format GRP attendu=Wrong file format \: GRP format expected
Format de fichier invalide \: Format GRP \xE9tendu attendu=Wrong file format \: extended GRP format expected
+Gestion des images sources=Source images management
Gestion des images=Images management
Grille=Grid
+I1=I1
+I2=I2
IA en vert=IA in green
IA/SA=IA/SA
Ichiro Fujita (Prof.), Universit\xE9 de Kob\xE9=Ichiro Fujita (Prof.), Kobe University
@@ -142,16 +162,24 @@
Image ortho=Ortho image
Image transform\xE9e=Transformed image
Import d'un transect=Import of a transect
+Import des images=Import of images
Import des param\xE8tres d'orthorectification=Import of orthorectification parameters
Import des param\xE8tres de calcul=Import of calculation parameters
Import des points de grille=Import of grid points
Import des points de r\xE9f\xE9rence=Import of the reference points
+Importer les images depuis une vid\xE9o=Import images from video
Importer=Import
Impossible d'ouvrir le fichier {0}.\nPas d'application ou fichier introuvable=Unable to open file {0}.\nNo application or file not found
Indiquer le nom du calque \xE0 cr\xE9er=Enter the name of the layer to create
+Information=Information
+Instant de d\xE9but=Instant of beginning
+Instant de fin=Instant of end
Interruption en cours. Merci de patienter=Interruption in progress. Please wait
Intervalle de temps=Time step
Isolignes / Isosurfaces=Isolines / Isosurfaces
+J1=J1
+J2=J2
+L'\xE9chantillonnage s'est termin\xE9e avec succ\xE8s=Sampling completed successfully
LSPIV=LSPIV
La biblioth\xE8que JAI Image I/O n'est probablement pas install\xE9e.\nElle doit l'\xEAtre dans le r\xE9pertoire des extensions Java.\n\nL'application ne fonctionnera pas correctement=The JAI Image I/O library is probably not installed.\nIt must be installed in the Java extensions directory.\n\nThe application will not work properly
La composante Vx d\xE9finie par {0} n'existe pas dans les r\xE9sultats=Vx component defined by {0} does not exist in the results
@@ -161,7 +189,9 @@
La pr\xE9cision du trac\xE9 doit \xEAtre d\xE9finie par un entier sup\xE9rieur \xE0 1=The tracing precision must be defined by an integer greater than 1
La r\xE9solution doit \xEAtre un r\xE9el strictement positif=Resolution must be a strictly positive real number
La transformation des images s'est termin\xE9e avec succ\xE8s=Image transformation terminated successfully
+La valeur de fin doit \xEAtre sup\xE9rieure ou \xE9gale \xE0 la valeur de d\xE9but=The end value must be greater than or equal to the start value
Label=Label
+Lancement de l'echantillonnage=Starting of sampling
Lancement de la v\xE9rification de l'orthorectification=Orthorectification check launched
Le calcul s'est termin\xE9 avec succ\xE8s=The calculation terminated successfully
Le chemin donn\xE9 n'est pas un r\xE9pertoire ou n'existe pas=The specified path is not a directory or does not exist
@@ -187,10 +217,11 @@
Le r\xE9pertoire des ex\xE9cutables n'a pas encore \xE9t\xE9 pr\xE9cis\xE9 ou n'est pas valide=The executable file directory has not been specified yet or is not valid
Le segment n'est pas d\xE9fini=Segment is not defined
Les champs de la table sont les zones nomm\xE9es inconnues du syst\xE8me,\nissues du mod\xE8le Excel de rapport. Les zones nomm\xE9es connues sont \:\n\n=The fields in the table are system unknown named areas,\ncoming from the Excel report template. Known named areas are \:\n\n
+Les coordonn\xE9es pour les points de transformation doivent \xEAtre renseign\xE9s=**Les coordonn\xE9es pour les points de transformation doivent \xEAtre renseign\xE9s**
Les executables suivants manquent dans le r\xE9pertoire donn\xE9\:\n=The following executable files are missing in the specified directory\:\n
Les extremit\xE9s du segment sont confondues. Une seule trajectoire sera calcul\xE9e.\nVoulez-vous continuer ?=Segment extremities are identical. Only one path will be calculated.\nDo you want to continue ?
Les images doivent exister=Images must exist
-Les images pgm seront utilis\xE9es pour le calcul dans l'ordre ou elles sont d\xE9finies.\nUtilisez Monter/Descendre pour modifier cet ordre=Pgm images will be used for calculation following their definition order.\nPlease use Up/Down to modify this order
+Les images seront utilis\xE9es pour le calcul dans l'ordre ou elles sont d\xE9finies.\nUtilisez Monter/Descendre pour modifier cet ordre=Images will be used for calculation following their definition order.\nPlease use Up/Down to modify this order
Les images s\xE9lectionn\xE9es=Selected images
Les param\xE8tres d'orthorectification n'ont pas \xE9t\xE9 donn\xE9s=The orthorectification parameters were not specified
Les param\xE8tres de calcul n'ont pas \xE9t\xE9 donn\xE9s=The calculation parameters were not specified
@@ -209,6 +240,7 @@
Limites de la composante Vx (m/s)=Vx component magnitude thresholds (m/s)
Limites de la composante Vy (m/s)=Vy component magnitude thresholds (m/s)
Limites de la norme de vitesse (m/s)=Velocity magnitude thresholds (m/s)
+Limites=**Limites**
Liste des images=Images list
Liste des r\xE9sultats instantan\xE9s=Instantaneous results list
Liste des transects=Transects list
@@ -224,6 +256,9 @@
Min corr\xE9lation=Min correlation
Min norme de vitesse=Min velocity magnitude
Min=Min
+Mise \xE0 jour disponible=Update available
+Mise \xE0 l'\xE9chelle=**Mise \xE0 l'\xE9chelle**
+Mode d'orthorectification=**Mode d'orthorectification**
Mode=Mode
Modification des points de r\xE9f\xE9rence=Modification of the reference points
Modification des transects initiaux=Modification of the initial transects
@@ -230,6 +265,7 @@
Modification du transect=Modification of the transect
Moyenne des r\xE9sultats instantan\xE9s filtr\xE9s=Filtered instantaneous results average
Moyenne=Average
+Ne plus afficher ce dialogue=Do not show this dialog again
Niveau d'eau (m)=Water level (m)
Nombre d'images par secondes=Number of images per second
Nombre de points de r\xE9f\xE9rence < 6, tous les points doivent avoir un Z identique=Number of reference points < 6, all points must have the same Z
@@ -242,6 +278,7 @@
Nouveaux points=New points
Nouveaux=New ones
N\xB0=#
+Orthorectification compl\xE8te=**Orthorectification compl\xE8te**
Orthorectification=Orthorectification
Ouverture d'un projet=Opening a project
Param\xE8tres de calcul de d\xE9bit=Discharge calculation parameters
@@ -248,6 +285,7 @@
Param\xE8tres de calcul=Calculation parameters
Param\xE8tres de transformation=Transformation parameters
Param\xE8tres du transect=Transect parameters
+Param\xE8tres=**Param\xE8tres**
Particules (res. bruts)=Particles (raw res.)
Particules (res. filtr\xE9s)=Particles (filtered res.)
Particules (res. moy.)=Particles (ave. res.)
@@ -256,10 +294,12 @@
Pas d'interpolation=Interpolation step
Pas de r\xE9sultats disponibles pour le trac\xE9 de particules=No results available for particle tracing
Pas de temps initial=Initial time step
+Pas de translation / rotation=**Pas de translation / rotation**
Points de contr\xF4le=Check points
Points de grille=Grid points
Points de r\xE9f\xE9rence=Reference points
Points r\xE9f\xE9rence=Reference points
+Points=Points
Position I=I position
Position J et I doivent \xEAtre d\xE9finis simultan\xE9ment ou vides=J and I positions must be defined simultaneously or left empty
Position J=J position
@@ -294,6 +334,10 @@
R\xE9pertoire contenant les executables=Directory containing the executable files
R\xE9pertoire destination=Destination directory
R\xE9solution (m/pix)=Resolution (m/pix)
+R\xE9solution calcul\xE9e=**R\xE9solution calcul\xE9e**
+R\xE9solution moyenne calcul\xE9e=**R\xE9solution moyenne calcul\xE9e**
+R\xE9solution saisie=**R\xE9solution saisie**
+R\xE9solution=**R\xE9solution**
R\xE9sultat \: {0}=Result \: {0}
R\xE9sultats bruts=Raw results
R\xE9sultats du calcul=Calculation results
@@ -306,26 +350,35 @@
R\xE9sultats=Results
R\xE9sultats\: point n\xB0=Results\: point #
SA en bleu=SA in blue
+Saisie des 2 points pour la transformation=**Saisie des 2 points pour la transformation**
+Saisie des 2 points pour la translation / rotation=**Saisie des 2 points pour la translation / rotation**
+Saisie directe de la r\xE9solution=**Saisie directe de la r\xE9solution**
Saisie interactive=Interactive input
+Saisie par couples de points /=**Saisie par couples de points /**
+Saisir un couple=**Saisir un couple**
+Saisir=**Saisir**
Saisissez la position du centre=Please click center location
Sauvegarde du projet=Saving the project
Sim=Sim
Sip=Sip
+Site de mises \xE0 jour \: {0}\nLa version de Fudaa-LSPIV est \xE0 jour=Updates site \: {0}\nThe Fudaa-LSPIV version is up-to-date
Sjm=Sjm
Sjp=Sjp
Souhaitez vous remplacer les transects initiaux par ceux calcul\xE9s ?=Would you replace initial transects by those calculated ?
Stop=Stop
+Supprime les couples s\xE9lectionn\xE9s=**Supprime les couples s\xE9lectionn\xE9s**
+Supprimer=Delete
S\xE9lection d'un fichier GRP=Selection of the GRP file
S\xE9lection d'un fichier de grille=Selection of the grid file
S\xE9lection d'un fichier de parametres de calcul=Selection of the calculation parameters file
S\xE9lection d'un fichier de parametres de transformation=Selection of the transformation parameters file
S\xE9lection d'un fichier transect=Selection of the transect file
-S\xE9lection des images sources=Selection of the source images
S\xE9lectionner au moins un transect=Select at least one transect
S\xE9lectionner un transect=Select a transect
S\xE9lectionner une g\xE9om\xE9trie=Select a geometry
S\xE9lectionnez les images que vous souhaitez exporter, puis le format d'export=Select the images you want to export, then the export format
S\xE9lectionnez un calque particule=Please select a particle layer
+S\xE9lectionn\xE9 \: Calcule toutes les images pour l'affichage. Ralentit l\xE9g\xE8rement les calculs de vitesses=Selected \: Computes all images for display. Slightly reduces speed calculations
Taille de l'aire (pix)\: Doit \xEAtre un entier positif et pair=Area size (pix)\: Must be a positive and even integer
Taille de l'aire=Area size
Temps=Time
@@ -348,11 +401,13 @@
Transformation des vitesses instantan\xE9es vers l'espace r\xE9el=Transformation of instantaneous velocities to real space
Transformation interrompue=Transformation interrupted
Transformation ok=Transformation ok
+Transformation=Transformation
Transformations du rep\xE8re initial vers le rep\xE8re de calcul=Transformations from initial reference to calculation reference
Transformer les images=Transform the images
Translation=Translation
Triangulation=Meshing
Type=Type
+Un fichier vid\xE9o doit \xEAtre s\xE9lectionn\xE9 et exister=A video file must be selected and exist
Un seul fichier projet est autoris\xE9 pour le transfert=Only one project file is authorized during transfer
Un transect doit \xEAtre d\xE9fini et des r\xE9sultats moyenn\xE9s doivent exister=A transect must be specified and averaged results must exist
Une erreur de lecture s'est produite=An error while reading occurred
@@ -362,7 +417,6 @@
Verification interrompue=Verification interrupted
Vit. instantan\xE9es=Instantaneous vel.
Vit. instantan\xE9es\: point n\xB0=Instantaneous vel.\: point #
-Vit. moy. (m/s)=Ave. vel. (m/s)
Vit. moy. prof=Depth-average vel
Vit. surf. inst. brutes=Raw inst. surf. vel.
Vit. surf. inst. filtr\xE9es=Filtered inst. surf. vel.
@@ -386,6 +440,8 @@
X img=X img
X recalcul\xE9=Recalculated X
X r\xE9el=Real X
+X1=X1
+X2=X2
Xmax doit \xEAtre strictement sup\xE9rieur \xE0 Xmin=Xmax must be strictly greater than Xmin
Xmax doit \xEAtre un r\xE9el=Xmax must be a real number
Xmax=Xmax
@@ -395,6 +451,8 @@
Y img=Y img
Y recalcul\xE9=Recalculated Y
Y r\xE9el=Real Y
+Y1=Y1
+Y2=Y2
Ymax doit \xEAtre strictement sup\xE9rieur \xE0 Ymin=Ymax must be strictly greater than Ymin
Ymax doit \xEAtre un r\xE9el=Ymax must be a real number
Ymax=Ymax
@@ -404,6 +462,7 @@
Zoom initial=Initial zoom
Zoomer sur le segment=Zoom on segment
la dur\xE9e du calcul doit \xEAtre comprise entre {0} et {1}=Calculation duration must be between {0} and {1}
+rapport=**rapport**
{0} ligne(s) de courant enlev\xE9e(s) car vide(s)={0} stream line(s) removed because empty
{0} points de d\xE9part ont \xE9t\xE9 ignor\xE9s car ils sont en dehors du maillage={0} starting points was ignored because they are outside of the mesh
{0} trajectoire(s) enlev\xE9e(s) car vide(s)={0} path(s) remomved because empty
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-04-13 19:54:02
|
Revision: 9544
http://sourceforge.net/p/fudaa/svn/9544
Author: bmarchan
Date: 2017-04-13 19:53:59 +0000 (Thu, 13 Apr 2017)
Log Message:
-----------
Production version 1.5.1 + Changelogs.txt
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt
trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt 2017-03-14 09:15:47 UTC (rev 9543)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt 2017-04-13 19:53:59 UTC (rev 9544)
@@ -1,6 +1,6 @@
Fudaa-LSPIV
-Version 1.5.1 du xx/xx/2017
+Version 1.5.1 du 13/04/2017
===========================
Nouveautés
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt 2017-03-14 09:15:47 UTC (rev 9543)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt 2017-04-13 19:53:59 UTC (rev 9544)
@@ -1,6 +1,6 @@
Fudaa-LSPIV
-Version 1.5.1 (2016/xx/xx)
+Version 1.5.1 (2016/04/13)
==========================
New features
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-03-14 09:15:47 UTC (rev 9543)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-04-13 19:53:59 UTC (rev 9544)
@@ -48,12 +48,10 @@
import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel;
import org.fudaa.fudaa.piv.action.PivAutoCacheAction;
import org.fudaa.fudaa.piv.action.PivAverageFilteredResultsAction;
-import org.fudaa.fudaa.piv.action.PivChooseOrthoModeAction;
import org.fudaa.fudaa.piv.action.PivComputeFlowAction;
import org.fudaa.fudaa.piv.action.PivComputeLaunchAction;
import org.fudaa.fudaa.piv.action.PivDefineComputeParamAction;
import org.fudaa.fudaa.piv.action.PivDefineOrthoParamAction;
-import org.fudaa.fudaa.piv.action.PivDefineParamScalingAction;
import org.fudaa.fudaa.piv.action.PivExportGaugingReportAction;
import org.fudaa.fudaa.piv.action.PivExportImagesAction;
import org.fudaa.fudaa.piv.action.PivFilterInstantResultsAction;
@@ -99,7 +97,7 @@
static {
isPIV_.name = "LSPIV";
isPIV_.version = "1.5.1";
- isPIV_.date = "2017-02-02";
+ isPIV_.date = "2017-04-13";
isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2017";
isPIV_.license = "GPL2";
isPIV_.languages = "en,fr";
@@ -824,15 +822,15 @@
mn.add(new PivAutoCacheAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
mn.addSeparator(PivResource.getS("Orthorectification"));
- mn.add(new PivChooseOrthoModeAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+// mn.add(new PivChooseOrthoModeAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
- BuMenu mnScaling=new BuMenu(PivResource.getS("Mise \xE0 l'\xE9chelle"),"MN_SCALING");
- mnScaling.add(new PivDefineParamScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
- mnScaling.setEnabled(false);
+// BuMenu mnScaling=new BuMenu(PivResource.getS("Mise \xE0 l'\xE9chelle"),"MN_SCALING");
+// mnScaling.add(new PivDefineParamScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+// mnScaling.setEnabled(false);
+//
+// mn.add(mnScaling);
- mn.add(mnScaling);
-
- BuMenu mnOrtho=new BuMenu(PivResource.getS("Orthorectification"),"MN_ORTHO");
+// BuMenu mnOrtho=new BuMenu(PivResource.getS("Orthorectification"),"MN_ORTHO");
sm=new BuMenu(PivResource.getS("Points de r\xE9f\xE9rence"),"mnGRP");
bt=get2dFrame().getVisuPanel().getOrthoGRPAction().buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Nouveaux..."));
@@ -840,8 +838,11 @@
bt=new PivImportGRPAction((this)).buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Importer..."));
sm.add(bt);
- mnOrtho.add(sm);
- mnOrtho.add(new PivOrthoVerifyGRPAction(this));
+// mnOrtho.add(sm);
+// mnOrtho.add(new PivOrthoVerifyGRPAction(this));
+ mn.add(sm);
+ mn.add(new PivOrthoVerifyGRPAction(this));
+
sm=new BuMenu(PivResource.getS("Param\xE8tres de transformation"),"mnTRF",true);
bt=new PivDefineOrthoParamAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("D\xE9finir..."));
@@ -849,11 +850,11 @@
bt=new PivImportOrthoParamAction(this).buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Importer..."));
sm.add(bt);
- mnOrtho.add(sm);
- mnOrtho.setEnabled(false);
+// mnOrtho.add(sm);
+// mnOrtho.setEnabled(false);
+// mn.add(mnOrtho);
+ mn.add(sm);
- mn.add(mnOrtho);
-
mn.add(new PivOrthoLaunchAction(this));
mn.addSeparator(PivResource.getS("Analyse LSPIV"));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-03-13 21:46:38
|
Revision: 9542
http://sourceforge.net/p/fudaa/svn/9542
Author: bmarchan
Date: 2017-03-13 21:46:36 +0000 (Mon, 13 Mar 2017)
Log Message:
-----------
LSPIV : Saisie des parametres de scaling
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingTransformationPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.form
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.form (from rev 9538, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.form)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.form (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.form 2017-03-13 21:46:36 UTC (rev 9542)
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder/>
+ </Border>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ </AuxValues>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="pnPositions" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="pnPositions" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnPositions">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Position des coins (m)"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="lbXmin" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="lbYmin" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="-2" pref="8" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="tfXmin" pref="83" max="32767" attributes="1"/>
+ <Component id="tfYmin" alignment="0" pref="76" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="lbYmax" min="-2" max="-2" attributes="0"/>
+ <Component id="lbXmax" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="tfXmax" pref="85" max="32767" attributes="1"/>
+ <Component id="tfYmax" alignment="0" pref="78" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="lbXmin" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="tfXmin" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lbXmax" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="tfXmax" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="lbYmax" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="tfYmax" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lbYmin" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="tfYmin" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="lbXmin">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Xmin:"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tfXmin">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+ <Connection code="new Dimension(50,tfXmin.getPreferredSize().height)" type="code"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lbXmax">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Xmax:"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tfXmax">
+ </Component>
+ <Component class="javax.swing.JLabel" name="lbYmax">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Ymax:"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tfYmax">
+ </Component>
+ <Component class="javax.swing.JLabel" name="lbYmin">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Ymin:"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tfYmin">
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java (from rev 9538, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingParamPanel.java 2017-03-13 21:46:36 UTC (rev 9542)
@@ -0,0 +1,235 @@
+package org.fudaa.fudaa.piv;
+
+import java.awt.Dimension;
+
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.fudaa.piv.metier.PivOrthoParameters;
+
+/**
+ * Un panneau de saisie des param\xE8tres de scaling.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id$
+ */
+public class PivScalingParamPanel extends CtuluDialogPanel {
+ PivImplementation impl_;
+
+ /**
+ * Constructeur.
+ */
+ public PivScalingParamPanel(PivImplementation _impl) {
+ impl_=_impl;
+ initComponents();
+ customize();
+
+ PivOrthoParameters params=impl_.getCurrentProject().getOrthoParameters();
+ if (params==null)
+ params=new PivOrthoParameters();
+ setParams(params);
+ }
+
+ private void customize() {
+ lbXmin.setText(PivResource.getS("Xmin: "));
+ lbYmin.setText(PivResource.getS("Ymin: "));
+ lbXmax.setText(PivResource.getS("Xmax: "));
+ lbYmax.setText(PivResource.getS("Ymax: "));
+ pnPositions.setBorder(javax.swing.BorderFactory.createTitledBorder(PivResource.getS("Position des coins (m)")));
+ }
+
+ /**
+ * Rempli le panneau depuis les donn\xE9es du projet.
+ * @param _params L'objet m\xE9tier pour l'orthorectification.
+ */
+ public void setParams(PivOrthoParameters _params) {
+ tfXmin.setText("" + _params.getXmin());
+ tfXmax.setText("" + _params.getXmax());
+ tfYmin.setText("" + _params.getYmin());
+ tfYmax.setText("" + _params.getYmax());
+ }
+
+ /**
+ * Met a jour les parametres d'ortho rectification donn\xE9s.
+ * @param _params Les parametres d'ortho rectification.
+ */
+ public void retrieveParams(PivOrthoParameters _params) {
+ _params.setXmin(Double.parseDouble(tfXmin.getText().trim()));
+ _params.setYmin(Double.parseDouble(tfYmin.getText().trim()));
+ _params.setXmax(Double.parseDouble(tfXmax.getText().trim()));
+ _params.setYmax(Double.parseDouble(tfYmax.getText().trim()));
+ }
+
+ @Override
+ public boolean isDataValid() {
+ boolean bok=false;
+ double xmin=0;
+ double xmax=0;
+ double ymin=0;
+ double ymax=0;
+
+ try {
+ bok=false;
+ xmin=Double.parseDouble(tfXmin.getText().trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ setErrorText(PivResource.getS("Xmin doit \xEAtre un r\xE9el"));
+ return false;
+ }
+
+ try {
+ bok=false;
+ xmax=Double.parseDouble(tfXmax.getText().trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ setErrorText(PivResource.getS("Xmax doit \xEAtre un r\xE9el"));
+ return false;
+ }
+
+ if (xmin>=xmax) {
+ setErrorText(PivResource.getS("Xmax doit \xEAtre strictement sup\xE9rieur \xE0 Xmin"));
+ return false;
+ }
+
+ try {
+ bok=false;
+ ymin=Double.parseDouble(tfYmin.getText().trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ setErrorText(PivResource.getS("Ymin doit \xEAtre un r\xE9el"));
+ return false;
+ }
+
+ try {
+ bok=false;
+ ymax=Double.parseDouble(tfYmax.getText().trim());
+ bok=true;
+ }
+ catch (NumberFormatException _exc) {}
+ if (!bok) {
+ setErrorText(PivResource.getS("Ymax doit \xEAtre un r\xE9el"));
+ return false;
+ }
+
+ if (ymin>=ymax) {
+ setErrorText(PivResource.getS("Ymax doit \xEAtre strictement sup\xE9rieur \xE0 Ymin"));
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Surcharg\xE9 pour pouvoir pr\xE9visualiser l'image transform\xE9e sans sortir du
+ * dialogue.
+ */
+ @Override
+ public void apply() {
+ PivOrthoParameters params=impl_.getCurrentProject().getOrthoParameters();
+ if (params==null)
+ params=new PivOrthoParameters();
+
+ retrieveParams(params);
+ impl_.getCurrentProject().setOrthoParameters(params);
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ pnPositions = new javax.swing.JPanel();
+ lbXmin = new javax.swing.JLabel();
+ tfXmin = new javax.swing.JTextField();
+ lbXmax = new javax.swing.JLabel();
+ tfXmax = new javax.swing.JTextField();
+ lbYmax = new javax.swing.JLabel();
+ tfYmax = new javax.swing.JTextField();
+ lbYmin = new javax.swing.JLabel();
+ tfYmin = new javax.swing.JTextField();
+
+ setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
+
+ pnPositions.setBorder(javax.swing.BorderFactory.createTitledBorder("Position des coins (m)"));
+
+ lbXmin.setText("Xmin:");
+
+ tfXmin.setPreferredSize(new Dimension(50,tfXmin.getPreferredSize().height));
+
+ lbXmax.setText("Xmax:");
+
+ lbYmax.setText("Ymax:");
+
+ lbYmin.setText("Ymin:");
+
+ javax.swing.GroupLayout pnPositionsLayout = new javax.swing.GroupLayout(pnPositions);
+ pnPositions.setLayout(pnPositionsLayout);
+ pnPositionsLayout.setHorizontalGroup(
+ pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(pnPositionsLayout.createSequentialGroup()
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lbXmin)
+ .addComponent(lbYmin))
+ .addGap(8, 8, 8)
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(tfXmin, javax.swing.GroupLayout.DEFAULT_SIZE, 83, Short.MAX_VALUE)
+ .addComponent(tfYmin, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(lbYmax)
+ .addComponent(lbXmax))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(tfXmax, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE)
+ .addComponent(tfYmax, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE))
+ .addContainerGap())
+ );
+ pnPositionsLayout.setVerticalGroup(
+ pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(pnPositionsLayout.createSequentialGroup()
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(lbXmin)
+ .addComponent(tfXmin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lbXmax)
+ .addComponent(tfXmax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(pnPositionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(lbYmax)
+ .addComponent(tfYmax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lbYmin)
+ .addComponent(tfYmin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(pnPositions, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(pnPositions, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ );
+ }// </editor-fold>//GEN-END:initComponents
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JLabel lbXmax;
+ private javax.swing.JLabel lbXmin;
+ private javax.swing.JLabel lbYmax;
+ private javax.swing.JLabel lbYmin;
+ private javax.swing.JPanel pnPositions;
+ private javax.swing.JTextField tfXmax;
+ private javax.swing.JTextField tfXmin;
+ private javax.swing.JTextField tfYmax;
+ private javax.swing.JTextField tfYmin;
+ // End of variables declaration//GEN-END:variables
+}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingTransformationPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingTransformationPanel.java 2017-03-13 16:37:57 UTC (rev 9541)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingTransformationPanel.java 2017-03-13 21:46:36 UTC (rev 9542)
@@ -289,6 +289,9 @@
}
public void setParams(PivOrthoParameters _params) {
+ if (_params==null)
+ return;
+
GrPoint[] imgPoints = _params.getScalingImgPoints();
GrPoint[] realPoints = _params.getScalingRealPoints();
@@ -364,6 +367,9 @@
@Override
public void apply() {
PivOrthoParameters params=prj_.getOrthoParameters();
+ if (params==null)
+ params = new PivOrthoParameters();
+
retrieveParams(params);
prj_.setOrthoParameters(params);
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java 2017-03-13 16:37:57 UTC (rev 9541)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java 2017-03-13 21:46:36 UTC (rev 9542)
@@ -8,19 +8,12 @@
package org.fudaa.fudaa.piv.action;
import java.awt.event.ActionEvent;
-import java.io.File;
-import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluDialog;
-import org.fudaa.ctulu.gui.CtuluTaskOperationGUI;
import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.fudaa.piv.PivExePanel;
import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivManageOriginalFilesPanel;
-import org.fudaa.fudaa.piv.PivProgressionPanel;
import org.fudaa.fudaa.piv.PivResource;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-import org.fudaa.fudaa.piv.io.PivExeLauncher;
+import org.fudaa.fudaa.piv.PivScalingParamPanel;
/**
* Une action pour selectionner et reconditionner les images sources.
@@ -30,7 +23,7 @@
*/
public class PivDefineParamScalingAction extends EbliActionSimple {
PivImplementation impl;
- PivManageOriginalFilesPanel pnMngImages;
+ PivScalingParamPanel pnParams;
CtuluDialog diProgress_;
/**
@@ -54,60 +47,9 @@
return;
}
- if (!PivExeLauncher.instance().areExeOK()) {
- PivExePanel pnExe = new PivExePanel();
-
- // TODO BM : Verifier que les nouvelles images sont compatibles avec les donn\xE9es d'ortho ou message.
-
- if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) {
- return;
- }
- }
-
// Selection des images
- if (pnMngImages==null)
- pnMngImages = new PivManageOriginalFilesPanel(impl);
- pnMngImages.setRootProject(impl.getCurrentProject().getRoot());
- pnMngImages.setFiles(impl.getCurrentProject().getSrcImageFiles());
- if (!pnMngImages.afficheModaleOk(impl.getFrame(), PivResource.getS("Gestion des images"), CtuluDialog.OK_CANCEL_OPTION)) {
- return;
- }
-
- final File[] srcImgFiles=pnMngImages.getFiles();
-
- // Le reconditionnement des images.
- CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Traitement des images sources")) {
-
- @Override
- public void act() {
- try {
- CtuluLog ana=new CtuluLog();
- ana.setDesc(getName());
- impl.getCurrentProject().setSrcImagesFiles(srcImgFiles, this, ana);
-
- if (ana.containsErrorOrSevereError()) {
- impl.error(ana.getResume());
- return;
- }
-
- }
- finally {
- diProgress_.dispose();
- }
- }
- };
-
- PivProgressionPanel pnProgress_=new PivProgressionPanel(r);
- diProgress_ = pnProgress_.createDialog(impl.getParentComponent());
- diProgress_.setOption(CtuluDialog.ZERO_OPTION);
- diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE);
- diProgress_.setTitle(r.getName());
-
- r.start();
- diProgress_.afficheDialogModal();
-
- impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_ORIGINAL_VIEW);
- impl.get2dFrame().restaurer();
+ pnParams = new PivScalingParamPanel(impl);
+ pnParams.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres"), CtuluDialog.OK_CANCEL_OPTION);
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-03-13 09:54:48
|
Revision: 9540
http://sourceforge.net/p/fudaa/svn/9540
Author: bmarchan
Date: 2017-03-13 09:54:45 +0000 (Mon, 13 Mar 2017)
Log Message:
-----------
Fix : Nettoyage des fichiers existants avant sauvegarde
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2017-03-13 09:26:10 UTC (rev 9539)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2017-03-13 09:54:45 UTC (rev 9540)
@@ -758,6 +758,8 @@
/**
* Definit que le projet est en full ortho (ou en mise \xE0 l'\xE9chelle).
+ * En passage mise \xE0 l'echelle, les points d'orthorectification sont supprim\xE9s
+ *
* @param _b True : Full ortho, False : Mise \xE0 l'echelle.
*/
public void setFullOrtho(boolean _b) {
@@ -769,6 +771,8 @@
}
else {
coeffs=new double[0];
+ // Suppression des points d'orthorectification
+ setOrthoPoints(null);
}
isModified=true;
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2017-03-13 09:26:10 UTC (rev 9539)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2017-03-13 09:54:45 UTC (rev 9540)
@@ -519,21 +519,24 @@
_prog.setDesc(PivResource.getS("Sauvegarde du projet"));
// Le fichier GRP
+ File grpFile=new File(prj_.getOutputDir(),"GRP.dat");
+ grpFile.delete();
if (prj_.orthoPoints!=null) {
- File grpFile=new File(prj_.getOutputDir(),"GRP.dat");
new PivGRPWriter().write(prj_.orthoPoints, grpFile, null);
}
// Le fichier des coefficients ortho
+ File coeffFile=new File(prj_.getOutputDir(),"coeff.dat");
+ coeffFile.delete();
if (prj_.coeffs!=null) {
- File coeffFile=new File(prj_.getOutputDir(),"coeff.dat");
new PivCoeffWriter().write(prj_.coeffs, coeffFile, null);
}
// Les fichiers de parametres ortho
+ File imgRefFile=new File(prj_.getOutputDir(),"img_ref.dat");
+ imgRefFile.delete();
if (prj_.orthoParams!=null) {
Object[] params=new Object[]{prj_.orthoParams,prj_.getSrcImageSize()};
- File imgRefFile=new File(prj_.getOutputDir(),"img_ref.dat");
new PivImgRefWriter().write(params, imgRefFile, null);
File hFile=new File(prj_.getOutputDir(),"h.dat");
@@ -541,21 +544,24 @@
}
// Le fichiers de parametres de calcul
+ File paramFile=new File(prj_.getOutputDir(),"PIV_param.dat");
+ paramFile.delete();
if (prj_.computeParams!=null) {
Object[] params=new Object[]{prj_.computeParams,new PivTransectParams(),prj_.getTransfImageSize()};
- File paramFile=new File(prj_.getOutputDir(),"PIV_param.dat");
new PivParamWriter().write(params, paramFile, null);
}
// Le contour de grille
+ File cntGridFile=new File(prj_.getOutputDir(),"grid_param.dat");
+ cntGridFile.delete();
if (prj_.cntGrid!=null) {
- File cntGridFile=new File(prj_.getOutputDir(),"grid_param.dat");
new PivGridParamWriter().write(prj_.cntGrid, cntGridFile, null);
}
// Le fichiers des points de grille
+ File gridFile=new File(prj_.getOutputDir(),"grid.dat");
+ gridFile.delete();
if (prj_.computeGrid!=null) {
- File gridFile=new File(prj_.getOutputDir(),"grid.dat");
new PivGridWriter().write(prj_.computeGrid, gridFile, null);
}
@@ -585,6 +591,8 @@
* @param _all Tous les r\xE9sultats sont list\xE9s, sinon seulement ceux pour le calcul de moyenne.
*/
public void saveInstantResultsList(boolean _all) {
+ File listFile = new File(prj_.getOutputDir(),"list_avg.dat");
+ listFile.delete();
File[] instantVelFiles=prj_.getRawVelocityFiles();
// Pas de r\xE9sultats instantan\xE9s
@@ -593,7 +601,7 @@
// Cr\xE9ation du fichier contenant la liste des fichiers piv.dat obtenus par calcul.
PrintWriter out=null;
try {
- out = new PrintWriter(new File(prj_.getOutputDir(),"list_avg.dat"));
+ out = new PrintWriter(listFile);
// En principe, le nb de fichiers existants dans le repertoire devrait etre le meme
// que la taille du tableau usedInstantResults. Ce n'est pas toujours le cas,
// par exemple quand le calcul s'est mal pass\xE9.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-03-13 09:26:13
|
Revision: 9539
http://sourceforge.net/p/fudaa/svn/9539
Author: bmarchan
Date: 2017-03-13 09:26:10 +0000 (Mon, 13 Mar 2017)
Log Message:
-----------
Ajoute le choix du mode d'orthorectification
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-02-16 22:21:18 UTC (rev 9538)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -7,7 +7,6 @@
*/
package org.fudaa.fudaa.piv;
-import java.awt.Color;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Point;
@@ -14,7 +13,6 @@
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import java.io.File;
import java.io.IOException;
@@ -33,7 +31,6 @@
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
-import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.TransferHandler;
@@ -51,6 +48,7 @@
import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel;
import org.fudaa.fudaa.piv.action.PivAutoCacheAction;
import org.fudaa.fudaa.piv.action.PivAverageFilteredResultsAction;
+import org.fudaa.fudaa.piv.action.PivChooseOrthoModeAction;
import org.fudaa.fudaa.piv.action.PivComputeFlowAction;
import org.fudaa.fudaa.piv.action.PivComputeLaunchAction;
import org.fudaa.fudaa.piv.action.PivDefineComputeParamAction;
@@ -75,7 +73,6 @@
import com.memoire.bu.BuAbstractPreferencesPanel;
import com.memoire.bu.BuBrowserPreferencesPanel;
-import com.memoire.bu.BuCheckBoxMenuItem;
import com.memoire.bu.BuDesktopPreferencesPanel;
import com.memoire.bu.BuInformationsSoftware;
import com.memoire.bu.BuLanguagePreferencesPanel;
@@ -84,7 +81,6 @@
import com.memoire.bu.BuMenuItem;
import com.memoire.bu.BuMenuRecentFiles;
import com.memoire.bu.BuPreferences;
-import com.memoire.bu.BuRadioButtonMenuItem;
import com.memoire.bu.BuRegistry;
import com.memoire.bu.BuResource;
import com.memoire.bu.BuUserPreferencesPanel;
@@ -222,6 +218,9 @@
setEnabledForAction("EXPORT_GAUGING_REPORT", bprjOpen);
setEnabledForAction("SCALING_PARAMS", bprjHasSrcImg);
setEnabledForAction("SCALING_RESOLUTION", bprjHasSrcImg);
+ setEnabledForAction("DEFINE_ORTHO_MODE", bprjHasSrcImg);
+ setEnabledForAction("MN_SCALING", bprjHasSrcImg && !project.isFullOrtho());
+ setEnabledForAction("MN_ORTHO", bprjHasSrcImg && project.isFullOrtho());
refreshTitle();
}
@@ -827,14 +826,16 @@
mn.add(new PivAutoCacheAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
mn.addSeparator(PivResource.getS("Orthorectification"));
+ mn.add(new PivChooseOrthoModeAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
- BuMenu mnMae=new BuMenu(PivResource.getS("Mise \xE0 l'\xE9chelle"),"MAE");
- mnMae.add(new PivDefineResolutionScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
- mnMae.add(new PivDefineParamScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+ BuMenu mnScaling=new BuMenu(PivResource.getS("Mise \xE0 l'\xE9chelle"),"MN_SCALING");
+ mnScaling.add(new PivDefineResolutionScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+ mnScaling.add(new PivDefineParamScalingAction(this).buildMenuItem(EbliComponentFactory.INSTANCE));
+ mnScaling.setEnabled(false);
- mn.add(mnMae);
+ mn.add(mnScaling);
- BuMenu mnOrtho=new BuMenu(PivResource.getS("Orthorectification"),"ORTHO");
+ BuMenu mnOrtho=new BuMenu(PivResource.getS("Orthorectification"),"MN_ORTHO");
sm=new BuMenu(PivResource.getS("Points de r\xE9f\xE9rence"),"mnGRP");
bt=get2dFrame().getVisuPanel().getOrthoGRPAction().buildMenuItem(EbliComponentFactory.INSTANCE);
bt.setText(PivResource.getS("Nouveaux..."));
@@ -852,6 +853,8 @@
bt.setText(PivResource.getS("Importer..."));
sm.add(bt);
mnOrtho.add(sm);
+ mnOrtho.setEnabled(false);
+
mn.add(mnOrtho);
mn.add(new PivOrthoLaunchAction(this));
@@ -985,9 +988,6 @@
* @return True : Une mise a jour existe.
*/
public boolean checkForUpdate(boolean _showHideButton) {
-
- isPIV_.update=System.getProperty("piv.update", "https://forge.irstea.fr/projects/fudaa-lspiv/files");
-
try {
URL urlFlag=new URL(isPIV_.update+"/fudaa-lspiv-lastversion.txt");
if (FuLib.existsURL(urlFlag)) {
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -0,0 +1,58 @@
+package org.fudaa.fudaa.piv;
+
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JRadioButton;
+import javax.swing.border.EtchedBorder;
+
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+
+import com.memoire.bu.BuVerticalLayout;
+
+/**
+ * Un panneau de saisie du mode d'orthorectification.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivTransectParamPanel.java 9500 2017-01-09 17:22:31Z bmarchan $
+ */
+public class PivOrthoModePanel extends CtuluDialogPanel {
+ PivImplementation impl_;
+ JRadioButton rbScaling_;
+ JRadioButton rbOrtho_;
+
+ /**
+ * Constructeur.
+ */
+ public PivOrthoModePanel(PivImplementation _impl) {
+ impl_=_impl;
+ customize();
+ }
+
+ private void customize() {
+ rbScaling_ = new JRadioButton(PivResource.getS("Mise \xE0 l'\xE9chelle"));
+ rbOrtho_ = new JRadioButton(PivResource.getS("Orthorectification compl\xE8te"));
+ rbOrtho_.setSelected(true);
+ ButtonGroup bg=new ButtonGroup();
+ bg.add(rbScaling_);
+ bg.add(rbOrtho_);
+
+ setLayout(new BuVerticalLayout(2));
+ setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
+ add(rbScaling_);
+ add(rbOrtho_);
+ }
+
+ public void setModeFullOrtho(boolean _b) {
+ if (_b) {
+ rbOrtho_.setSelected(true);
+ }
+ else {
+ rbScaling_.setSelected(true);
+ }
+
+ }
+
+ public boolean isModeFullOrtho() {
+ return rbOrtho_.isSelected();
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoModePanel.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -0,0 +1,51 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.fudaa.piv.action;
+
+import java.awt.event.ActionEvent;
+
+import org.fudaa.ctulu.gui.CtuluDialog;
+import org.fudaa.ebli.commun.EbliActionSimple;
+import org.fudaa.fudaa.piv.PivImplementation;
+import org.fudaa.fudaa.piv.PivOrthoModePanel;
+import org.fudaa.fudaa.piv.PivResource;
+
+/**
+ * Une action pour choisir le mode op\xE9ratoire de l'othorectification.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivTransectParamAction.java 9132 2015-06-16 14:54:20Z bmarchan $
+ */
+public class PivChooseOrthoModeAction extends EbliActionSimple {
+ PivImplementation impl;
+
+ public PivChooseOrthoModeAction(PivImplementation _impl) {
+ super(PivResource.getS("Mode d'orthorectification..."), null, "DEFINE_ORTHO_MODE");
+ impl=_impl;
+ setEnabled(false);
+ }
+
+ /**
+ * Affiche le panneau des param\xE8tres de calcul.
+ * @param _e L'evenement pour l'action.
+ */
+ @Override
+ public void actionPerformed(final ActionEvent _e) {
+ PivOrthoModePanel pn=new PivOrthoModePanel(impl);
+ pn.setModeFullOrtho(impl.getCurrentProject().isFullOrtho());
+
+ if (pn.afficheModale(impl.getFrame(), PivResource.getS("Mode d'orthorectification"),CtuluDialog.OK_CANCEL_OPTION)==CtuluDialog.OK_OPTION) {
+ impl.getCurrentProject().setFullOrtho(pn.isModeFullOrtho());
+ }
+ }
+
+ @Override
+ public String getEnableCondition() {
+ return PivResource.getS("Il doit exister au moins une image source");
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivChooseOrthoModeAction.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java 2017-02-16 22:21:18 UTC (rev 9538)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -14,6 +14,8 @@
import org.fudaa.dodico.fortran.FileCharSimpleReaderAbstract;
import org.fudaa.fudaa.piv.PivResource;
+import gnu.trove.TDoubleArrayList;
+
/**
* Un lecteur pour le fichier des coefficients d'orthorectification.
*
@@ -45,7 +47,7 @@
* @return les infos non bloquantes.
*/
private synchronized double[] readCoeffs() {
- double[] coeffs=new double[0];
+ TDoubleArrayList coeffs=new TDoubleArrayList();
if (super.in_ == null) {
analyze_.addError(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0);
@@ -59,15 +61,23 @@
in_.setJumpBlankLine(true);
- // Nombre de coeffs
in_.readFields();
- coeffs=new double[in_.intField(0)];
+ // Nombre de coeffs (les anciens fichiers n'ont pas cette ligne)
+ try {
+ in_.intField(0);
+ }
+ catch (NumberFormatException _exc) {
+ coeffs.add(in_.doubleField(0));
+ }
- // Les coeffs
- for (int i=0; i<coeffs.length; i++) {
- in_.readFields();
- coeffs[i]=in_.doubleField(0);
+ // Les coeffs (jusqu'\xE0 la fin du fichier)
+ try {
+ while (true) {
+ in_.readFields();
+ coeffs.add(in_.doubleField(0));
+ }
}
+ catch (EOFException _exc) {}
if (progress_ != null) {
progress_.setProgression(100);
@@ -82,7 +92,7 @@
catch (final NumberFormatException e) {
analyze_.manageException(e);
}
- return coeffs;
+ return coeffs.toNativeArray();
}
/**
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2017-02-16 22:21:18 UTC (rev 9538)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -104,8 +104,8 @@
protected boolean areSrcImagesChanged=true;
/** Les param\xE8tres de transformation du syteme initial vers le systeme de calcul. */
protected PivTransformationParameters transfParams=new PivTransformationParameters();
- /** Les coefficients de transformation pour l'orthorectification. 0 : On est en mise \xE0 l'echelle. */
- protected double[] coeffs=new double[0];
+ /** Les coefficients de transformation pour l'orthorectification. Length=0 : On est en mise \xE0 l'echelle. */
+ protected double[] coeffs=null;
/** Les listeners notifi\xE9s lors d'une modification du projet. */
protected HashSet<PivProjectStateListener> listeners=new HashSet<PivProjectStateListener>();
@@ -750,11 +750,30 @@
}
/**
- * @return True, si le projet est en full ortho (ce n'est pas une mise \xE0 l'echelle).
+ * @return True, si le projet est en full ortho (par opposition \xE0 une mise \xE0 l'echelle).
*/
public boolean isFullOrtho() {
- return coeffs!=null && coeffs.length>0;
+ return coeffs==null || coeffs.length>0;
}
+
+ /**
+ * Definit que le projet est en full ortho (ou en mise \xE0 l'\xE9chelle).
+ * @param _b True : Full ortho, False : Mise \xE0 l'echelle.
+ */
+ public void setFullOrtho(boolean _b) {
+ if (_b==isFullOrtho())
+ return;
+
+ if (_b) {
+ coeffs=null;
+ }
+ else {
+ coeffs=new double[0];
+ }
+
+ isModified=true;
+ fireProjectStateChanged("orthoMode");
+ }
/**
* Retourne les points d'orthorectification.
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2017-02-16 22:21:18 UTC (rev 9538)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2017-03-13 09:26:10 UTC (rev 9539)
@@ -25,6 +25,8 @@
import org.fudaa.fudaa.piv.io.PivBathyPReader;
import org.fudaa.fudaa.piv.io.PivBathyReader;
import org.fudaa.fudaa.piv.io.PivBathyWriter;
+import org.fudaa.fudaa.piv.io.PivCoeffReader;
+import org.fudaa.fudaa.piv.io.PivCoeffWriter;
import org.fudaa.fudaa.piv.io.PivDischargeReader;
import org.fudaa.fudaa.piv.io.PivGRPReader;
import org.fudaa.fudaa.piv.io.PivGRPWriter;
@@ -80,6 +82,13 @@
CtuluIOResult<PivOrthoPoint[]> ret = new PivGRPReader().read(grpFile, _prog);
prj_.orthoPoints=ret.getSource();
}
+
+ // Le fichier des coefficients ortho
+ File coeffFile=new File(prj_.getOutputDir(),"coeff.dat");
+ if (coeffFile.exists()) {
+ CtuluIOResult<double[]> ret = new PivCoeffReader().read(coeffFile, _prog);
+ prj_.coeffs=ret.getSource();
+ }
// Les fichiers de parametres ortho
File imgRefFile=new File(prj_.getOutputDir(),"img_ref.dat");
@@ -514,6 +523,12 @@
File grpFile=new File(prj_.getOutputDir(),"GRP.dat");
new PivGRPWriter().write(prj_.orthoPoints, grpFile, null);
}
+
+ // Le fichier des coefficients ortho
+ if (prj_.coeffs!=null) {
+ File coeffFile=new File(prj_.getOutputDir(),"coeff.dat");
+ new PivCoeffWriter().write(prj_.coeffs, coeffFile, null);
+ }
// Les fichiers de parametres ortho
if (prj_.orthoParams!=null) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-02-07 10:55:55
|
Revision: 9536
http://sourceforge.net/p/fudaa/svn/9536
Author: bmarchan
Date: 2017-02-07 10:55:52 +0000 (Tue, 07 Feb 2017)
Log Message:
-----------
LSPIV : Gestion de la saisie de r?\195?\169solution par couples de points
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.form
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineResolutionScalingAction.java
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.java
Removed Paths:
-------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.form
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.form 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.form 2017-02-07 10:55:52 UTC (rev 9536)
@@ -58,23 +58,23 @@
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
- <Component id="spCouple" max="32767" attributes="0"/>
<Group type="102" alignment="1" attributes="0">
- <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+ <EmptySpace min="0" pref="169" max="32767" attributes="0"/>
<Component id="btAdd" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="btDelete" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Component id="rbDistanceResol" min="-2" max="-2" attributes="0"/>
- <EmptySpace max="32767" attributes="0"/>
- <Component id="rbCoordsResol" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="coComputedResol" max="32767" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="lbComputedResol" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tfComputedResol" max="32767" attributes="0"/>
</Group>
+ <Component id="spCouple" alignment="1" max="32767" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
@@ -86,10 +86,10 @@
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="rbDistanceResol" alignment="3" min="-2" pref="25" max="-2" attributes="0"/>
- <Component id="rbCoordsResol" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="coComputedResol" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
- <Component id="spCouple" pref="119" max="32767" attributes="0"/>
+ <Component id="spCouple" pref="135" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="btDelete" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -111,17 +111,9 @@
<Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
<ComponentRef name="bgResol"/>
</Property>
- <Property name="text" type="java.lang.String" value="Saisie par couple de points / distance"/>
+ <Property name="text" type="java.lang.String" value="Saisie par couple de points /"/>
</Properties>
</Component>
- <Component class="javax.swing.JRadioButton" name="rbCoordsResol">
- <Properties>
- <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
- <ComponentRef name="bgResol"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Saisie par couple de points / coordonnées"/>
- </Properties>
- </Component>
<Container class="javax.swing.JScrollPane" name="spCouple">
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
@@ -146,6 +138,16 @@
<Property name="text" type="java.lang.String" value="Ajouter un couple"/>
</Properties>
</Component>
+ <Component class="javax.swing.JComboBox" name="coComputedResol">
+ <Properties>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="0"/>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/>
+ </AuxValues>
+ </Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnEntering">
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.java 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivScalingResolutionPanel.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -2,6 +2,8 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
@@ -22,7 +24,7 @@
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.geometrie.GrPolyligne;
-import org.fudaa.fudaa.piv.action.PivEnterDistanceAction;
+import org.fudaa.fudaa.piv.action.PivEnterLineAction;
import com.memoire.fu.FuLog;
@@ -34,23 +36,32 @@
*/
public class PivScalingResolutionPanel extends CtuluDialogPanel {
- class CoupleDistanceRow {
+ class CoupleRow {
int i1;
int j1;
int i2;
int j2;
- /** Peut \xEAtre null quand elle n'a pas \xE9t\xE9 donn\xE9e. */
+ /** Peut \xEAtre null quand pas saisi. */
+ Double x1;
+ /** Peut \xEAtre null quand pas saisi. */
+ Double y1;
+ /** Peut \xEAtre null quand pas saisi. */
+ Double x2;
+ /** Peut \xEAtre null quand pas saisi. */
+ Double y2;
+ /** Peut \xEAtre null quand pas saisi. */
Double distance;
- /** Peut \xEAtre null si la distance n'a pas \xE9t\xE9 donn\xE9e */
+ /** Peut \xEAtre null si la distance ou les coordonn\xE9es n'ont pas \xE9t\xE9 donn\xE9s */
Double resolution;
}
/**
- * Un modele pour les couples / distance
+ * Un modele pour les couples / (distance ou coordonn\xE9es)
* @author Bertrand Marchand (mar...@de...)
*/
- class CoupleDistanceTableModel extends AbstractTableModel {
- List<CoupleDistanceRow> rows = new ArrayList<>();
+ class CoupleTableModel extends AbstractTableModel {
+ List<CoupleRow> rows = new ArrayList<>();
+ boolean modeDistance_=true;
@Override
public int getRowCount() {
@@ -59,7 +70,7 @@
@Override
public int getColumnCount() {
- return 6;
+ return modeDistance_ ? 6:9;
}
@Override
@@ -75,8 +86,20 @@
case 3:
return rows.get(row).j2;
case 4:
- return rows.get(row).distance;
+ if (modeDistance_)
+ return rows.get(row).distance;
+ else
+ return rows.get(row).x1;
case 5:
+ if (modeDistance_)
+ return rows.get(row).resolution;
+ else
+ return rows.get(row).y1;
+ case 6:
+ return rows.get(row).x2;
+ case 7:
+ return rows.get(row).y2;
+ case 8:
return rows.get(row).resolution;
}
}
@@ -94,44 +117,96 @@
case 3:
return PivResource.getS("J2");
case 4:
- return PivResource.getS("Distance");
+ if (modeDistance_)
+ return PivResource.getS("Distance");
+ else
+ return PivResource.getS("X1");
case 5:
+ if (modeDistance_)
+ return PivResource.getS("R\xE9solution");
+ else
+ return PivResource.getS("Y1");
+ case 6:
+ return PivResource.getS("X2");
+ case 7:
+ return PivResource.getS("Y2");
+ case 8:
return PivResource.getS("R\xE9solution");
}
}
@Override
public boolean isCellEditable(int row, int column) {
- return column==4;
+ if (modeDistance_)
+ return column==4;
+ else
+ return column==4 || column==5 || column==6 || column==7;
}
@Override
public void setValueAt(Object aValue, int row, int column) {
+ Double val=null;
+ if (!aValue.toString().trim().isEmpty()) {
+ // Double attendu
+ try {
+ val=Double.parseDouble(aValue.toString().trim());
+ }
+ catch (NumberFormatException _exc) {
+ }
+ }
+
switch (column) {
default:
case 4:
- rows.get(row).distance=null;
- rows.get(row).resolution=null;
-
- if (!aValue.toString().trim().isEmpty()) {
- // Double attendu
- try {
- rows.get(row).distance=Double.parseDouble(aValue.toString());
- double dx=rows.get(row).i2 - rows.get(row).i1;
- double dy=rows.get(row).j2 - rows.get(row).j1;
- rows.get(row).resolution=rows.get(row).distance / Math.max(1, Math.sqrt(dx*dx + dy*dy));
- }
- catch (NumberFormatException _exc) {}
- }
-
- fireTableDataChanged();
+ if (modeDistance_)
+ rows.get(row).distance=val;
+ else
+ rows.get(row).x1=val;
break;
+ case 5:
+ rows.get(row).y1=val;
+ break;
+ case 6:
+ rows.get(row).x2=val;
+ break;
+ case 7:
+ rows.get(row).y2=val;
+ break;
}
+
+ computeResolution(row);
+
+ fireTableDataChanged();
}
+
+ /**
+ * Initialise la r\xE9solution en fonction des donn\xE9es de la table.
+ * @param row La ligne pour laquelle initialiser la r\xE9solution
+ */
+ public void computeResolution(int row) {
+ rows.get(row).resolution=null;
+ if (modeDistance_) {
+ if (rows.get(row).distance!=null) {
+ double dxi=rows.get(row).i2 - rows.get(row).i1;
+ double dyi=rows.get(row).j2 - rows.get(row).j1;
+ rows.get(row).resolution=rows.get(row).distance / Math.max(1, Math.sqrt(dxi*dxi + dyi*dyi));
+ }
+ }
+ else {
+ if (rows.get(row).x1!=null && rows.get(row).y1!=null && rows.get(row).x2!=null && rows.get(row).y2!=null) {
+ double dxi=rows.get(row).i2 - rows.get(row).i1;
+ double dyi=rows.get(row).j2 - rows.get(row).j1;
+ double dxr=rows.get(row).x2 - rows.get(row).x1;
+ double dyr=rows.get(row).y2 - rows.get(row).y1;
+ rows.get(row).resolution= Math.sqrt(dxr*dxr + dyr*dyr) / Math.max(1, Math.sqrt(dxi*dxi + dyi*dyi));
+ }
+ }
+ }
- public void addCouple(CoupleDistanceRow _cpl) {
+
+ public void addCouple(CoupleRow _cpl) {
rows.add(_cpl);
fireTableDataChanged();
}
@@ -144,12 +219,25 @@
}
/**
+ * Definit que le mod\xE8le est en mode distance ou en mode coordonn\xE9es r\xE9elles.
+ * @param _b True : En mode distance.
+ */
+ public void setModeDistance(boolean _b) {
+ modeDistance_=_b;
+
+ for (int i=0; i<rows.size(); i++) {
+ computeResolution(i);
+ }
+ fireTableStructureChanged();
+ }
+
+ /**
* @return La resolution moyenne, ou null si aucune r\xE9solution n'est d\xE9finie dans le tableau.
*/
public Double getAverageResolution() {
int nb=0;
double somme=0;
- for (CoupleDistanceRow cpl : rows) {
+ for (CoupleRow cpl : rows) {
if (cpl.resolution!=null) {
somme+=cpl.resolution;
nb++;
@@ -182,7 +270,7 @@
if (pl.sommets_.nombre() == 2) {
cqEdition_.endEdition();
- CoupleDistanceRow couple=new CoupleDistanceRow();
+ CoupleRow couple=new CoupleRow();
couple.i1=(int)pl.sommet(0).x_;
couple.j1=(int)pl.sommet(0).y_;
couple.i2=(int)pl.sommet(1).x_;
@@ -237,10 +325,10 @@
private PivVisuPanel pnLayers_;
private ZCalqueEditionInteractionTargetI ctrl_=new EditionController();
- private PivEnterDistanceAction actEnterDistance_;
+ private PivEnterLineAction actEnterDistance_;
private ZCalqueEditionInteraction cqEdition_;
private CtuluTable tbCouple=new CtuluTable();
- private CoupleDistanceTableModel mdlDistance;
+ private CoupleTableModel mdlDistance;
/**
* Constructeur.
@@ -255,9 +343,10 @@
}
private void customize() {
+ setHelpText(PivResource.getS("<html>Vous pouvez d\xE9finir la r\xE9solution soit directement, soit en saisissant des couples de points et moyennation.<br><br><u>Saisie par couple de points</u> :<br>Saisissez 2 points \xE0 l'\xE9cran, puis renseignez les coordonn\xE9es ou la distance dans la table (suivant l'option choisie)</html>"));
+
rbDirectResol.setText(PivResource.getS("Saisie directe de la r\xE9solution")+" (m/pix):");
- rbDistanceResol.setText(PivResource.getS("Saisie par couple de points / distance"));
- rbCoordsResol.setText(PivResource.getS("Saisie par couple de points / coordonn\xE9es"));
+ rbDistanceResol.setText(PivResource.getS("Saisie par couples de points /"));
btDelete.setText(PivResource.getS("Supprimer"));
btDelete.setToolTipText(PivResource.getS("Supprime les couples s\xE9lectionn\xE9s"));
btDelete.addActionListener(new ActionListener() {
@@ -269,26 +358,34 @@
lbComputedResol.setText(PivResource.getS("R\xE9solution moyenne calcul\xE9e")+" (m/pix):");
- actEnterDistance_=new PivEnterDistanceAction(pnLayers_);
+ actEnterDistance_=new PivEnterLineAction(pnLayers_);
actEnterDistance_.setEditionController(ctrl_);
btAdd.setAction(actEnterDistance_);
actEnterDistance_.addPropertyChangeListener(new EbliSelectedChangeListener(btAdd));
spCouple.setViewportView(tbCouple);
- rbDirectResol.addActionListener(new ActionListener() {
+ coComputedResol.removeAllItems();
+ coComputedResol.addItem(PivResource.getS("Distance"));
+ coComputedResol.addItem(PivResource.getS("Coordonn\xE9es"));
+ coComputedResol.addItemListener(new ItemListener() {
+
@Override
- public void actionPerformed(ActionEvent e) {
- rbResolChanged();
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange()!=ItemEvent.SELECTED)
+ return;
+
+ mdlDistance.setModeDistance(coComputedResol.getSelectedIndex()==0);
}
});
- rbDistanceResol.addActionListener(new ActionListener() {
+
+ rbDirectResol.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
rbResolChanged();
}
});
- rbCoordsResol.addActionListener(new ActionListener() {
+ rbDistanceResol.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
rbResolChanged();
@@ -297,7 +394,7 @@
rbDirectResol.setSelected(true);
- mdlDistance= new CoupleDistanceTableModel();
+ mdlDistance= new CoupleTableModel();
mdlDistance.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
@@ -326,9 +423,10 @@
protected void rbResolChanged() {
tfDirectResol.setEnabled(rbDirectResol.isSelected());
- tbCouple.setEnabled(rbDistanceResol.isSelected() || rbCoordsResol.isSelected());
- btAdd.setEnabled((rbDistanceResol.isSelected() || rbCoordsResol.isSelected()));
- btDelete.setEnabled((rbDistanceResol.isSelected() || rbCoordsResol.isSelected()) && tbCouple.getSelectedRows().length>0);
+ tbCouple.setEnabled(rbDistanceResol.isSelected());
+ coComputedResol.setEnabled(rbDistanceResol.isSelected());
+ btAdd.setEnabled((rbDistanceResol.isSelected()));
+ btDelete.setEnabled(rbDistanceResol.isSelected() && tbCouple.getSelectedRows().length>0);
}
protected boolean isDistanceResolution() {
@@ -378,12 +476,12 @@
bgResol = new javax.swing.ButtonGroup();
pnDirect = new javax.swing.JPanel();
rbDistanceResol = new javax.swing.JRadioButton();
- rbCoordsResol = new javax.swing.JRadioButton();
spCouple = new javax.swing.JScrollPane();
btDelete = new javax.swing.JButton();
tfComputedResol = new javax.swing.JTextField();
lbComputedResol = new javax.swing.JLabel();
btAdd = new javax.swing.JToggleButton();
+ coComputedResol = new javax.swing.JComboBox<>();
pnEntering = new javax.swing.JPanel();
rbDirectResol = new javax.swing.JRadioButton();
tfDirectResol = new javax.swing.JTextField();
@@ -391,17 +489,16 @@
pnDirect.setBorder(javax.swing.BorderFactory.createEtchedBorder());
bgResol.add(rbDistanceResol);
- rbDistanceResol.setText("Saisie par couple de points / distance");
+ rbDistanceResol.setText("Saisie par couple de points /");
- bgResol.add(rbCoordsResol);
- rbCoordsResol.setText("Saisie par couple de points / coordonn\xE9es");
-
btDelete.setText("Supprimer");
tfComputedResol.setEnabled(false);
lbComputedResol.setText("R\xE9solution moyenne calcul\xE9e");
+ btAdd.setText("Ajouter un couple");
+
javax.swing.GroupLayout pnDirectLayout = new javax.swing.GroupLayout(pnDirect);
pnDirect.setLayout(pnDirectLayout);
pnDirectLayout.setHorizontalGroup(
@@ -409,20 +506,20 @@
.addGroup(pnDirectLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnDirectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(spCouple)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnDirectLayout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
+ .addGap(0, 169, Short.MAX_VALUE)
.addComponent(btAdd)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btDelete))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnDirectLayout.createSequentialGroup()
.addComponent(rbDistanceResol)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(rbCoordsResol))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(coComputedResol, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(pnDirectLayout.createSequentialGroup()
.addComponent(lbComputedResol)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(tfComputedResol)))
+ .addComponent(tfComputedResol))
+ .addComponent(spCouple, javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap())
);
pnDirectLayout.setVerticalGroup(
@@ -431,9 +528,9 @@
.addContainerGap()
.addGroup(pnDirectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(rbDistanceResol, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(rbCoordsResol))
+ .addComponent(coComputedResol, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spCouple, javax.swing.GroupLayout.DEFAULT_SIZE, 119, Short.MAX_VALUE)
+ .addComponent(spCouple, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnDirectLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btDelete)
@@ -498,10 +595,10 @@
private javax.swing.ButtonGroup bgResol;
private javax.swing.JToggleButton btAdd;
private javax.swing.JButton btDelete;
+ private javax.swing.JComboBox<String> coComputedResol;
private javax.swing.JLabel lbComputedResol;
private javax.swing.JPanel pnDirect;
private javax.swing.JPanel pnEntering;
- private javax.swing.JRadioButton rbCoordsResol;
private javax.swing.JRadioButton rbDirectResol;
private javax.swing.JRadioButton rbDistanceResol;
private javax.swing.JScrollPane spCouple;
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineParamScalingAction.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -119,6 +119,6 @@
@Override
public String getEnableCondition() {
- return PivResource.getS("Le projet doit \xEAtre cr\xE9\xE9");
+ return PivResource.getS("Il doit exister au moins une image source");
}
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineResolutionScalingAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineResolutionScalingAction.java 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivDefineResolutionScalingAction.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -8,20 +8,12 @@
package org.fudaa.fudaa.piv.action;
import java.awt.event.ActionEvent;
-import java.io.File;
-import org.fudaa.ctulu.CtuluLog;
import org.fudaa.ctulu.gui.CtuluDialog;
-import org.fudaa.ctulu.gui.CtuluTaskOperationGUI;
import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.fudaa.piv.PivExePanel;
import org.fudaa.fudaa.piv.PivImplementation;
-import org.fudaa.fudaa.piv.PivManageOriginalFilesPanel;
-import org.fudaa.fudaa.piv.PivProgressionPanel;
import org.fudaa.fudaa.piv.PivResource;
import org.fudaa.fudaa.piv.PivScalingResolutionPanel;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-import org.fudaa.fudaa.piv.io.PivExeLauncher;
/**
* Une action pour selectionner et reconditionner les images sources.
@@ -46,7 +38,6 @@
}
/**
- * Selectionne les images, pour les reconditionne dans un thread s\xE9par\xE9.
* @param _e L'evenement pour l'action.
*/
@Override
@@ -55,47 +46,11 @@
return;
}
- // Selection des images
+ // D\xE9finition de la r\xE9solution.
if (pnResolution==null)
pnResolution = new PivScalingResolutionPanel(impl.get2dFrame().getVisuPanel());
pnResolution.affiche(impl.getFrame(), PivResource.getS("D\xE9finition de la r\xE9solution"), CtuluDialog.OK_CANCEL_OPTION);
-
-// final File[] srcImgFiles=pnResolution.getFiles();
-
- // Le reconditionnement des images.
-// CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Traitement des images sources")) {
-//
-// @Override
-// public void act() {
-// try {
-// CtuluLog ana=new CtuluLog();
-// ana.setDesc(getName());
-// impl.getCurrentProject().setSrcImagesFiles(srcImgFiles, this, ana);
-//
-// if (ana.containsErrorOrSevereError()) {
-// impl.error(ana.getResume());
-// return;
-// }
-//
-// }
-// finally {
-// diProgress_.dispose();
-// }
-// }
-// };
-//
-// PivProgressionPanel pnProgress_=new PivProgressionPanel(r);
-// diProgress_ = pnProgress_.createDialog(impl.getParentComponent());
-// diProgress_.setOption(CtuluDialog.ZERO_OPTION);
-// diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE);
-// diProgress_.setTitle(r.getName());
-//
-// r.start();
-// diProgress_.afficheDialogModal();
-
- impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_ORIGINAL_VIEW);
- impl.get2dFrame().restaurer();
}
/**
@@ -107,6 +62,6 @@
@Override
public String getEnableCondition() {
- return PivResource.getS("Le projet doit \xEAtre cr\xE9\xE9");
+ return PivResource.getS("Il doit exister au moins une image source");
}
}
Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java 2017-02-06 17:12:24 UTC (rev 9535)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -1,176 +0,0 @@
-/*
- * @creation 3 juil. 2008
- * @modification $Date:$
- * @license GNU General Public License 2
- * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail fud...@li...
- */
-package org.fudaa.fudaa.piv.action;
-
-import java.awt.Container;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import javax.swing.JComponent;
-import javax.swing.JInternalFrame;
-import javax.swing.SwingUtilities;
-import javax.swing.event.InternalFrameAdapter;
-import javax.swing.event.InternalFrameEvent;
-
-import org.fudaa.ebli.calque.dessin.DeForme;
-import org.fudaa.ebli.calque.edition.ZCalqueEditionInteraction;
-import org.fudaa.ebli.calque.edition.ZCalqueEditionInteractionTargetI;
-import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
-import org.fudaa.fudaa.piv.PivResource;
-import org.fudaa.fudaa.piv.PivSimplifiedEditionPalette;
-import org.fudaa.fudaa.piv.PivVisuPanel;
-import org.fudaa.fudaa.piv.action.PivComputeGridDefinitionAction.Piv2dFrameListener;
-
-import com.memoire.bu.BuDesktop;
-
-/**
- * Une action pour saisir une distance (trac\xE9 d'une ligne simple).
- *
- * @author Bertrand Marchand (mar...@de...)
- * @version $Id: PivDefineAreaCenterAction.java 6709 2011-11-24 16:17:00Z bmarchan $
- */
-public class PivEnterDistanceAction extends EbliActionPaletteAbstract {
-
- private PivVisuPanel pnCalques_;
- /** Le calque d'\xE9dition. */
- private ZCalqueEditionInteraction cqEdition_;
- /** Le controller d'edition */
- private ZCalqueEditionInteractionTargetI controller_;
- /** La palette pour la reprise. */
- private PivSimplifiedEditionPalette palette_;
- /** Le listener sur le statut gele du calque d'\xE9dition */
- private PropertyChangeListener listener_;
-
- /**
- * Constructeur.
- * @param _pn Le panneau des calques.
- */
- public PivEnterDistanceAction(PivVisuPanel _pn) {
- super(PivResource.getS("Saisir un couple"), null, "DEFINE_DISTANCE");
- setDefaultToolTip(PivResource.getS("Ajoute un couple par saisie de 2 points"));
- pnCalques_=_pn;
-
- // Pour ecouter le statut du calque d'edition
-// listener_=new PropertyChangeListener() {
-// @Override
-// public void propertyChange(PropertyChangeEvent evt) {
-// setSelected(!(Boolean)evt.getNewValue());
-// }
-// };
-
- setCalqueInteraction(_pn.getEditionLayer());
- }
-
- /**
- * Definit le calque d'interaction associ\xE9 \xE0 l'action.
- * @param _cq Le calque. Peut \xEAtre <tt>null</tt>.
- */
- private void setCalqueInteraction(ZCalqueEditionInteraction _cq) {
-// if (cqEdition_==_cq) return;
-//
-// if (cqEdition_!=null)
-// cqEdition_.removePropertyChangeListener("gele", listener_);
-
- cqEdition_=_cq;
-
-// if (cqEdition_!=null)
-// cqEdition_.addPropertyChangeListener("gele", listener_);
- }
-
- /**
- * Definit le controlleur d'edition.
- * @param _ctrl Le controlleur.
- */
- public void setEditionController(ZCalqueEditionInteractionTargetI _ctrl) {
- controller_=_ctrl;
- }
-
- /**
- * Surcharge pour activer/desactiver le calque d'edition.
- */
- @Override
- public void changeAction() {
- if (isSelected())
- pnCalques_.setViewMode(PivVisuPanel.MODE_ORIGINAL_VIEW);
-
-// cqEdition_.setListener(controller_);
-// cqEdition_.setTypeForme(DeForme.LIGNE_BRISEE);
-// cqEdition_.setFormEndedByDoubleClic(true);
-// pnCalques_.setCalqueInteractionActif(cqEdition_);
-// }
-// else {
-// pnCalques_.unsetCalqueInteractionActif(cqEdition_);
-// cqEdition_.cancelEdition();
-// }
- super.changeAction();
- }
-
- /**
- * Surchag\xE9 pour d\xE9finir le desktop au moment de l'affichage.
- */
- @Override
- public void showWindow() {
- // Necessaire, sinon la palette est visualis\xE9e en externe. Ne peut \xEAtre fait avant, car le desktop n'est pas
- // encore existant.
- setDesktop((BuDesktop)SwingUtilities.getAncestorOfClass(BuDesktop.class,pnCalques_));
- super.showWindow();
- }
-
- /**
- * Surcharg\xE9 pour rendre inactif le calque d'\xE9dition apr\xE8s que la palette a
- * \xE9t\xE9 ferm\xE9e.
- */
- @Override
- public void hideWindow() {
- pnCalques_.unsetCalqueInteractionActif(cqEdition_);
- cqEdition_.cancelEdition();
- setSelected(false);
-
- super.hideWindow();
- }
-
- /**
- * Surcharg\xE9 pour activer le calque d'\xE9dition apr\xE8s affichage.
- */
- @Override
- public void doAfterDisplay() {
- cqEdition_.setListener(controller_);
- cqEdition_.setTypeForme(DeForme.LIGNE_BRISEE);
- cqEdition_.setFormEndedByDoubleClic(true);
- pnCalques_.setCalqueInteractionActif(cqEdition_);
- palette_.currentFormeChanged(null);
- }
-
- @Override
- protected JComponent buildContentPane() {
- if (palette_==null){
- // Cr\xE9ation de l'internal frame de reprise
- palette_=new PivSimplifiedEditionPalette(pnCalques_, PivResource.getS("Points"));
- palette_.setCalqueInteraction(cqEdition_);
- palette_.setButtonVisible(PivSimplifiedEditionPalette.BUTTON_END, false);
- // Ecoute de la fen\xEAtre principale pour pouvoir se r\xE9duire avec elle
- final Container c = SwingUtilities.getAncestorOfClass(JInternalFrame.class, pnCalques_);
-
- if (c instanceof JInternalFrame) {
- ((JInternalFrame) c).addInternalFrameListener(new InternalFrameAdapter() {
- @Override
- public void internalFrameActivated(final InternalFrameEvent _e) {
- if(window_!=null)
- window_.setVisible(true);
- }
- @Override
- public void internalFrameDeactivated(final InternalFrameEvent _e) {
- if(window_!=null)
- window_.setVisible(false);
- }
- });
- }
- }
- return palette_.getComponent();
- }
-}
Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.java (from rev 9535, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterDistanceAction.java)
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEnterLineAction.java 2017-02-07 10:55:52 UTC (rev 9536)
@@ -0,0 +1,176 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.fudaa.piv.action;
+
+import java.awt.Container;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import javax.swing.JComponent;
+import javax.swing.JInternalFrame;
+import javax.swing.SwingUtilities;
+import javax.swing.event.InternalFrameAdapter;
+import javax.swing.event.InternalFrameEvent;
+
+import org.fudaa.ebli.calque.dessin.DeForme;
+import org.fudaa.ebli.calque.edition.ZCalqueEditionInteraction;
+import org.fudaa.ebli.calque.edition.ZCalqueEditionInteractionTargetI;
+import org.fudaa.ebli.commun.EbliActionPaletteAbstract;
+import org.fudaa.fudaa.piv.PivResource;
+import org.fudaa.fudaa.piv.PivSimplifiedEditionPalette;
+import org.fudaa.fudaa.piv.PivVisuPanel;
+import org.fudaa.fudaa.piv.action.PivComputeGridDefinitionAction.Piv2dFrameListener;
+
+import com.memoire.bu.BuDesktop;
+
+/**
+ * Une action pour saisir une distance (trac\xE9 d'une ligne simple).
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivDefineAreaCenterAction.java 6709 2011-11-24 16:17:00Z bmarchan $
+ */
+public class PivEnterLineAction extends EbliActionPaletteAbstract {
+
+ private PivVisuPanel pnCalques_;
+ /** Le calque d'\xE9dition. */
+ private ZCalqueEditionInteraction cqEdition_;
+ /** Le controller d'edition */
+ private ZCalqueEditionInteractionTargetI controller_;
+ /** La palette pour la reprise. */
+ private PivSimplifiedEditionPalette palette_;
+ /** Le listener sur le statut gele du calque d'\xE9dition */
+ private PropertyChangeListener listener_;
+
+ /**
+ * Constructeur.
+ * @param _pn Le panneau des calques.
+ */
+ public PivEnterLineAction(PivVisuPanel _pn) {
+ super(PivResource.getS("Saisir un couple"), null, "DEFINE_DISTANCE");
+ setDefaultToolTip(PivResource.getS("Ajoute un couple par saisie de 2 points"));
+ pnCalques_=_pn;
+
+ // Pour ecouter le statut du calque d'edition
+// listener_=new PropertyChangeListener() {
+// @Override
+// public void propertyChange(PropertyChangeEvent evt) {
+// setSelected(!(Boolean)evt.getNewValue());
+// }
+// };
+
+ setCalqueInteraction(_pn.getEditionLayer());
+ }
+
+ /**
+ * Definit le calque d'interaction associ\xE9 \xE0 l'action.
+ * @param _cq Le calque. Peut \xEAtre <tt>null</tt>.
+ */
+ private void setCalqueInteraction(ZCalqueEditionInteraction _cq) {
+// if (cqEdition_==_cq) return;
+//
+// if (cqEdition_!=null)
+// cqEdition_.removePropertyChangeListener("gele", listener_);
+
+ cqEdition_=_cq;
+
+// if (cqEdition_!=null)
+// cqEdition_.addPropertyChangeListener("gele", listener_);
+ }
+
+ /**
+ * Definit le controlleur d'edition.
+ * @param _ctrl Le controlleur.
+ */
+ public void setEditionController(ZCalqueEditionInteractionTargetI _ctrl) {
+ controller_=_ctrl;
+ }
+
+ /**
+ * Surcharge pour activer/desactiver le calque d'edition.
+ */
+ @Override
+ public void changeAction() {
+ if (isSelected())
+ pnCalques_.setViewMode(PivVisuPanel.MODE_ORIGINAL_VIEW);
+
+// cqEdition_.setListener(controller_);
+// cqEdition_.setTypeForme(DeForme.LIGNE_BRISEE);
+// cqEdition_.setFormEndedByDoubleClic(true);
+// pnCalques_.setCalqueInteractionActif(cqEdition_);
+// }
+// else {
+// pnCalques_.unsetCalqueInteractionActif(cqEdition_);
+// cqEdition_.cancelEdition();
+// }
+ super.changeAction();
+ }
+
+ /**
+ * Surchag\xE9 pour d\xE9finir le desktop au moment de l'affichage.
+ */
+ @Override
+ public void showWindow() {
+ // Necessaire, sinon la palette est visualis\xE9e en externe. Ne peut \xEAtre fait avant, car le desktop n'est pas
+ // encore existant.
+ setDesktop((BuDesktop)SwingUtilities.getAncestorOfClass(BuDesktop.class,pnCalques_));
+ super.showWindow();
+ }
+
+ /**
+ * Surcharg\xE9 pour rendre inactif le calque d'\xE9dition apr\xE8s que la palette a
+ * \xE9t\xE9 ferm\xE9e.
+ */
+ @Override
+ public void hideWindow() {
+ pnCalques_.unsetCalqueInteractionActif(cqEdition_);
+ cqEdition_.cancelEdition();
+ setSelected(false);
+
+ super.hideWindow();
+ }
+
+ /**
+ * Surcharg\xE9 pour activer le calque d'\xE9dition apr\xE8s affichage.
+ */
+ @Override
+ public void doAfterDisplay() {
+ cqEdition_.setListener(controller_);
+ cqEdition_.setTypeForme(DeForme.LIGNE_BRISEE);
+ cqEdition_.setFormEndedByDoubleClic(true);
+ pnCalques_.setCalqueInteractionActif(cqEdition_);
+ palette_.currentFormeChanged(null);
+ }
+
+ @Override
+ protected JComponent buildContentPane() {
+ if (palette_==null){
+ // Cr\xE9ation de l'internal frame de reprise
+ palette_=new PivSimplifiedEditionPalette(pnCalques_, PivResource.getS("Points"));
+ palette_.setCalqueInteraction(cqEdition_);
+ palette_.setButtonVisible(PivSimplifiedEditionPalette.BUTTON_END, false);
+ // Ecoute de la fen\xEAtre principale pour pouvoir se r\xE9duire avec elle
+ final Container c = SwingUtilities.getAncestorOfClass(JInternalFrame.class, pnCalques_);
+
+ if (c instanceof JInternalFrame) {
+ ((JInternalFrame) c).addInternalFrameListener(new InternalFrameAdapter() {
+ @Override
+ public void internalFrameActivated(final InternalFrameEvent _e) {
+ if(window_!=null)
+ window_.setVisible(true);
+ }
+ @Override
+ public void internalFrameDeactivated(final InternalFrameEvent _e) {
+ if(window_!=null)
+ window_.setVisible(false);
+ }
+ });
+ }
+ }
+ return palette_.getComponent();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-02-06 17:10:54
|
Revision: 9534
http://sourceforge.net/p/fudaa/svn/9534
Author: bmarchan
Date: 2017-02-06 17:10:52 +0000 (Mon, 06 Feb 2017)
Log Message:
-----------
LSPIV : Writer/Reader du fichier coeffs.dat
Added Paths:
-----------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffWriter.java
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java 2017-02-06 17:10:52 UTC (rev 9534)
@@ -0,0 +1,94 @@
+/**
+ * @creation 2002-11-21
+ * @modification $Date: 2007/05/04 13:47:27 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.piv.io;
+
+import java.io.EOFException;
+import java.io.IOException;
+
+import org.fudaa.ctulu.CtuluActivity;
+import org.fudaa.dodico.fortran.FileCharSimpleReaderAbstract;
+import org.fudaa.fudaa.piv.PivResource;
+
+/**
+ * Un lecteur pour le fichier des coefficients d'orthorectification.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivHReader.java 9015 2015-02-12 16:45:55Z bmarchan $
+ */
+public class PivCoeffReader extends FileCharSimpleReaderAbstract<double[]> implements CtuluActivity {
+
+ /** Drapeau d'interruption */
+ boolean bstop_;
+
+ /**
+ * Le constructeur.
+ */
+ public PivCoeffReader() {
+ }
+
+ /**
+ * Lit les coefficients et les retourne.
+ * @return La cote d'eau.
+ */
+ protected double[] internalRead() {
+ return readCoeffs();
+ }
+
+ /**
+ * Utilise FortranReader ( donc un buffer).
+ *
+ * @return les infos non bloquantes.
+ */
+ private synchronized double[] readCoeffs() {
+ double[] coeffs=new double[0];
+
+ if (super.in_ == null) {
+ analyze_.addError(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0);
+ return null;
+ }
+
+ try {
+ if (progress_ != null) {
+ progress_.setProgression(0);
+ }
+
+ in_.setJumpBlankLine(true);
+
+ // Nombre de coeffs
+ in_.readFields();
+ coeffs=new double[in_.intField(0)];
+
+ // Les coeffs
+ for (int i=0; i<coeffs.length; i++) {
+ in_.readFields();
+ coeffs[i]=in_.doubleField(0);
+ }
+
+ if (progress_ != null) {
+ progress_.setProgression(100);
+ }
+ }
+ catch (final EOFException e) {
+ analyze_.manageException(e);
+ }
+ catch (final IOException e) {
+ analyze_.manageException(e);
+ }
+ catch (final NumberFormatException e) {
+ analyze_.manageException(e);
+ }
+ return coeffs;
+ }
+
+ /**
+ * Interruption asynchrone de l'activit\xE9 de lecture.
+ */
+ public void stop() {
+ bstop_ = true;
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffReader.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffWriter.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffWriter.java (rev 0)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffWriter.java 2017-02-06 17:10:52 UTC (rev 9534)
@@ -0,0 +1,39 @@
+package org.fudaa.fudaa.piv.io;
+
+import java.io.PrintWriter;
+
+import org.fudaa.dodico.fortran.FileCharSimpleWriterAbstract;
+
+
+/**
+ * Une classe pour ecrire les coefficients d'orthorectification sur fichier.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ * @version $Id: PivHWriter.java 9015 2015-02-12 16:45:55Z bmarchan $
+ */
+public class PivCoeffWriter extends FileCharSimpleWriterAbstract<double[]> {
+
+ /**
+ * Ecrit les param\xE8tres d'orthorectification.
+ * param _o Les coefs.
+ */
+ protected void internalWrite(final double[] _coefs) {
+
+ final PrintWriter writer = new PrintWriter(out_);
+
+ try {
+ // Nombre de coeffs
+ writer.println(_coefs.length);
+
+ // Les coefs
+ for (int i=0; i<_coefs.length; i++) {
+ writer.println(_coefs[i]);
+ }
+ }
+ catch (final Exception _evt) {
+ analyze_.manageException(_evt);
+ }
+
+ writer.close();
+ }
+}
Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivCoeffWriter.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-02-02 14:41:56
|
Revision: 9533
http://sourceforge.net/p/fudaa/svn/9533
Author: bmarchan
Date: 2017-02-02 14:41:54 +0000 (Thu, 02 Feb 2017)
Log Message:
-----------
LSPIV Changelogs.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt
trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt 2017-02-02 11:37:34 UTC (rev 9532)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG.txt 2017-02-02 14:41:54 UTC (rev 9533)
@@ -1,5 +1,40 @@
Fudaa-LSPIV
+Version 1.5.1 du xx/xx/2017
+===========================
+
+Nouveautés
+----------
+
+- Détection sur le site de Fudaa-LSPIV de la présence d'une nouvelle version téléchargeable
+ au lancement de Fudaa-LSPIV. En complement, le menu Aide->Mise à jour permet de verifier
+ la présence d'une mise à jour.
+
+- Possibilité d'importer les images sources du projet depuis une séquence vidéo, par le
+ menu LSPIV->Gestion des images->Importer. L'utilitaire ffmpeg est utilisé pour cette
+ fonctionnalité. Les images importées remplacent les images sources existantes dans le
+ projet.
+
+Améliorations
+-------------
+
+- Le nom des fichiers .dat pour l'import de données est défini par defaut dans les boites de
+ dialogue d'import.
+
+- Le tooltip sur l'action Auto cache a été revu.
+
+- Le rapport de jaugeage en anglais a été intégré. Plusieurs modifications ont été apportées
+ sur le rapport de jaugeage.
+
+Corrections
+-----------
+
+- Problème de non prise en compte de la suppression manuelle des vitesses pour le calcul des
+ moyennes (s’il n’y a pas eu une sauvegarde entre temps).
+
+- Le menu Fichier->Exporter->Export des images sources restait grisé jusqu'a ce que le
+ projet contienne des images transformées.
+
Version 1.5.0 du 20/12/2016
===========================
Modified: trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt
===================================================================
--- trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt 2017-02-02 11:37:34 UTC (rev 9532)
+++ trunk/soft/fudaa-lspiv/distrib/src/dist/CHANGELOG_en.txt 2017-02-02 14:41:54 UTC (rev 9533)
@@ -1,5 +1,38 @@
Fudaa-LSPIV
+Version 1.5.1 (2016/xx/xx)
+==========================
+
+New features
+------------
+
+- Check that a new downloadable version is present on Fudaa-LSPIV site at launch of
+ Fudaa-LSPIV. In addition, the Help->Update menu allows you to check the presence of an
+ update.
+
+- Ability to import project sources images from a video sequence, through the menu
+ LSPIV->Source images management->Import. The ffmpeg utility is used for this
+ functionality. Imported images replace existing source images in the project
+
+Improvments
+-----------
+
+- Name of .dat files during data import is now defined by default in import dialog boxes.
+
+- The tooltip on the Automatic images cache action has been reviewed.
+
+- The English gauging report has been integrated. Several modifications were made to the
+ gauging report.
+
+Fixed
+-----
+
+- Existing problem of not taking into account the manual suppression of velocities for
+ average calculation (if there was no backup in the meantime).
+
+- Menu File->Export->Export source images export remained disabled till project contains
+ transformed images.
+
Version 1.5.0 (2016/12/20)
==========================
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-02-02 11:37:34 UTC (rev 9532)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-02-02 14:41:54 UTC (rev 9533)
@@ -287,7 +287,7 @@
showHelp();
} else if ("MAJ".equals(action)) {
if (!checkForUpdate(false)) {
- message(PivResource.getS("Information"),PivResource.getS("Site des mise \xE0 jour : {0}\nLa version de Fudaa-LSPIV est \xE0 jour.",isPIV_.update),false);
+ message(PivResource.getS("Information"),PivResource.getS("Site de mises \xE0 jour : {0}\nLa version de Fudaa-LSPIV est \xE0 jour.",isPIV_.update),false);
}
}
else if (action.startsWith("REOUVRIR")) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-02-02 11:37:37
|
Revision: 9532
http://sourceforge.net/p/fudaa/svn/9532
Author: bmarchan
Date: 2017-02-02 11:37:34 +0000 (Thu, 02 Feb 2017)
Log Message:
-----------
Fix LSPIV : Pb sur le calcul de moyennes apr?\195?\168s suppression de vitesses filtr?\195?\169es si aucune sauvegarde entre temps
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-26 16:54:33 UTC (rev 9531)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-02-02 11:37:34 UTC (rev 9532)
@@ -97,7 +97,7 @@
static {
isPIV_.name = "LSPIV";
isPIV_.version = "1.5.1";
- isPIV_.date = "2016-12-20";
+ isPIV_.date = "2017-02-02";
isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2017";
isPIV_.license = "GPL2";
isPIV_.languages = "en,fr";
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-01-26 16:54:33 UTC (rev 9531)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-02-02 11:37:34 UTC (rev 9532)
@@ -708,6 +708,9 @@
PivResultsI res=null;
try {
+ // Sauvegarde des r\xE9sultats filtr\xE9s qui ont pu \xEAtre modifi\xE9s par l'utilisateur.
+ _prj.getPersistenceManager().saveInstantFilteredResults(_prj, _prj.getInstantFilteredResults(), _task);
+
// Cr\xE9ation du fichier contenant la liste des fichiers piv.dat pour la moyenne.
_prj.getPersistenceManager().saveInstantResultsList(false);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-01-26 16:54:35
|
Revision: 9531
http://sourceforge.net/p/fudaa/svn/9531
Author: bmarchan
Date: 2017-01-26 16:54:33 +0000 (Thu, 26 Jan 2017)
Log Message:
-----------
Fix LSPIV : Import des fichiers avec le nom correspondant
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -91,11 +91,15 @@
FILE_FLT_PROJ=new BuFileFilter("lspiv.zip",PivResource.getS("Fichier projet"));
FILE_FLT_PGM=new BuFileFilter("pgm",PivResource.getS("Fichiers images en niveaux de gris"));
FILE_FLT_IMAGES=new BuFileFilter(new String[]{"jpg","jpeg","gif","png","pgm","tif","tiff","bmp"},PivResource.getS("Fichiers images"));
- FILE_FLT_GRID=new BuFileFilter("dat",PivResource.getS("Fichier grid"));
- FILE_FLT_GRP=new BuFileFilter("dat",PivResource.getS("Fichier GRP"));
+ FILE_FLT_GRID=new BuFileFilter("grid.dat",PivResource.getS("Fichier grille (grid.dat)"));
+ FILE_FLT_GRID.setExtensionListInDescription(false);
+ FILE_FLT_GRP=new BuFileFilter("GRP.dat",PivResource.getS("Fichier points (GRP.dat)"));
+ FILE_FLT_GRP.setExtensionListInDescription(false);
FILE_FLT_BATHY=new BuFileFilter(new String[]{"dat",FILE_FLT_TRANS_BTH.getFirstExt()},PivResource.getS("Fichier bathy"));
- FILE_FLT_TRANSF_PARAMS=new BuFileFilter("dat",PivResource.getS("Fichier params transformation"));
- FILE_FLT_COMPUTE_PARAMS=new BuFileFilter("dat",PivResource.getS("Fichier params calcul"));
+ FILE_FLT_TRANSF_PARAMS=new BuFileFilter("img_ref.dat",PivResource.getS("Fichier transformation (img_ref.dat)"));
+ FILE_FLT_TRANSF_PARAMS.setExtensionListInDescription(false);
+ FILE_FLT_COMPUTE_PARAMS=new BuFileFilter("PIV_param.dat",PivResource.getS("Fichier calcul (PIV_param.dat)"));
+ FILE_FLT_COMPUTE_PARAMS.setExtensionListInDescription(false);
FILE_FLT_XLSX=new BuFileFilter("xlsx",PivResource.getS("Fichier Excel"));
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportComputeParamAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -56,13 +56,16 @@
}
// Selection du fichier
- if (fcParams==null)
- fcParams = new CtuluFileChooser(true);
+ if (fcParams == null) {
+ fcParams=new CtuluFileChooser(true);
+ fcParams.setAcceptAllFileFilterUsed(true);
+ fcParams.setFileFilter(PivUtils.FILE_FLT_COMPUTE_PARAMS);
+ // Pas terrible, mais evite de redonner le nom manuellement.
+ fcParams.setSelectedFile(new File(PivUtils.FILE_FLT_COMPUTE_PARAMS.getFirstExt()));
+ fcParams.setMultiSelectionEnabled(false);
+ fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de calcul"));
+ }
- fcParams.setAcceptAllFileFilterUsed(true);
- fcParams.setFileFilter(PivUtils.FILE_FLT_COMPUTE_PARAMS);
- fcParams.setMultiSelectionEnabled(false);
- fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de calcul"));
if (fcParams.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
return;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -64,12 +64,16 @@
}
// Selection du fichier
- if (fcGRP==null)
- fcGRP = new CtuluFileChooser(true);
- fcGRP.setAcceptAllFileFilterUsed(true);
- fcGRP.setFileFilter(PivUtils.FILE_FLT_GRP);
- fcGRP.setMultiSelectionEnabled(false);
- fcGRP.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier GRP"));
+ if (fcGRP == null) {
+ fcGRP=new CtuluFileChooser(true);
+ fcGRP.setAcceptAllFileFilterUsed(true);
+ fcGRP.setFileFilter(PivUtils.FILE_FLT_GRP);
+ // Pas terrible, mais evite de redonner le nom manuellement.
+ fcGRP.setSelectedFile(new File(PivUtils.FILE_FLT_GRP.getFirstExt()));
+ fcGRP.setMultiSelectionEnabled(false);
+ fcGRP.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier GRP"));
+ }
+
if (fcGRP.showOpenDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) {
return;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -61,12 +61,16 @@
}
// Selection du fichier
- if (fcGrid==null)
- fcGrid = new CtuluFileChooser(true);
- fcGrid.setAcceptAllFileFilterUsed(true);
- fcGrid.setFileFilter(PivUtils.FILE_FLT_GRID);
- fcGrid.setMultiSelectionEnabled(false);
- fcGrid.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de grille"));
+ if (fcGrid == null) {
+ fcGrid=new CtuluFileChooser(true);
+ fcGrid.setAcceptAllFileFilterUsed(true);
+ fcGrid.setFileFilter(PivUtils.FILE_FLT_GRID);
+ // Pas terrible, mais evite de redonner le nom manuellement.
+ fcGrid.setSelectedFile(new File(PivUtils.FILE_FLT_GRID.getFirstExt()));
+ fcGrid.setMultiSelectionEnabled(false);
+ fcGrid.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de grille"));
+ }
+
if (fcGrid.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
return;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportOrthoParamAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -53,13 +53,16 @@
}
// Selection du fichier
- if (fcParams==null)
- fcParams = new CtuluFileChooser(true);
+ if (fcParams == null) {
+ fcParams=new CtuluFileChooser(true);
+ fcParams.setAcceptAllFileFilterUsed(true);
+ fcParams.setFileFilter(PivUtils.FILE_FLT_TRANSF_PARAMS);
+ // Pas terrible, mais evite de redonner le nom manuellement.
+ fcParams.setSelectedFile(new File(PivUtils.FILE_FLT_TRANSF_PARAMS.getFirstExt()));
+ fcParams.setMultiSelectionEnabled(false);
+ fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de transformation"));
+ }
- fcParams.setAcceptAllFileFilterUsed(true);
- fcParams.setFileFilter(PivUtils.FILE_FLT_TRANSF_PARAMS);
- fcParams.setMultiSelectionEnabled(false);
- fcParams.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de parametres de transformation"));
if (fcParams.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
return;
}
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2017-01-25 16:13:07 UTC (rev 9530)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2017-01-26 16:54:33 UTC (rev 9531)
@@ -48,12 +48,15 @@
}
// Selection du fichier
- if (fcTransect==null)
- fcTransect = new CtuluFileChooser();
- fcTransect.setAcceptAllFileFilterUsed(true);
- fcTransect.setFileFilter(PivUtils.FILE_FLT_BATHY);
- fcTransect.setMultiSelectionEnabled(false);
- fcTransect.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier transect"));
+ if (fcTransect == null) {
+ fcTransect=new CtuluFileChooser(true);
+ fcTransect.setAcceptAllFileFilterUsed(true);
+ fcTransect.setFileFilter(PivUtils.FILE_FLT_BATHY);
+ fcTransect.setSelectedFile(new File("trans0001.bth_dat"));
+ fcTransect.setMultiSelectionEnabled(false);
+ fcTransect.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier transect"));
+ }
+
if (fcTransect.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) {
return;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-25 16:13:09
|
Revision: 9530
http://sourceforge.net/p/fudaa/svn/9530
Author: deniger
Date: 2017-01-25 16:13:07 +0000 (Wed, 25 Jan 2017)
Log Message:
-----------
javadoc + renommage de classes pour etre plus claire
Modified Paths:
--------------
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/CtuluPair.java
Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/CtuluPair.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/CtuluPair.java 2017-01-25 16:13:00 UTC (rev 9529)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/CtuluPair.java 2017-01-25 16:13:07 UTC (rev 9530)
@@ -1,7 +1,7 @@
package org.fudaa.ctulu;
/**
- * @author genesis
+ * @author Fred Deniger
* @param <T>
*/
public class CtuluPair<T> implements Comparable<CtuluPair<T>> {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-25 16:13:02
|
Revision: 9529
http://sourceforge.net/p/fudaa/svn/9529
Author: deniger
Date: 2017-01-25 16:13:00 +0000 (Wed, 25 Jan 2017)
Log Message:
-----------
javadoc + renommage de classes pour etre plus claire
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/ScenarioAutoModifiedState.java
trunk/soft/fudaa-crue/ui-commandline/src/main/java/org/fudaa/fudaa/crue/uicommandline/ArgumentLineAnalyser.java
trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java
trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java
trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioServiceImpl.java
trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java
Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/ScenarioAutoModifiedState.java
===================================================================
--- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/ScenarioAutoModifiedState.java 2017-01-25 15:06:46 UTC (rev 9528)
+++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/ScenarioAutoModifiedState.java 2017-01-25 16:13:00 UTC (rev 9529)
@@ -3,7 +3,10 @@
*/
package org.fudaa.dodico.crue.metier;
+import org.fudaa.dodico.crue.metier.emh.EMHScenario;
+
/**
+ * Contient un etat des modifications appporteés automatiquement lors du chargement du scenario.
*
* @author Frederic Deniger
*/
@@ -14,40 +17,79 @@
private boolean profilModified;
private boolean ordResModified;
+ /**
+ * des EMHs ont été réordonnées
+ *
+ * @see EMHScenario#sort()
+ */
public void setReorderedDone() {
this.reorderedDone = true;
}
+ /**
+ * @return true si des EMHs ont été réordonnées
+ * @see EMHScenario#sort()
+ */
public boolean isReorderedDone() {
return reorderedDone;
}
+ /**
+ *
+ *
+ * @return true si des EMHS/lois ont été renommées (Crue 9)
+ */
public boolean isRenamedDone() {
return renamedDone;
}
+ /**
+ *
+ * @return true si des Profiles ont été modifies
+ * @see org.fudaa.dodico.crue.validation.ValidateAndRebuildProfilSection
+ */
public boolean isProfilModified() {
return profilModified;
}
+ /**
+ *
+ * @return si des OrdRes ont été modifiés
+ */
public boolean isOrdResModified() {
return ordResModified;
}
-
-
+ /**
+ * A appeler si des EMHS/lois ont été renommées (Crue 9)
+ */
public void setRenamedDone() {
this.renamedDone = true;
}
+ /**
+ * A appeler si des Profiles ont été modifies
+ *
+ * @see org.fudaa.dodico.crue.validation.ValidateAndRebuildProfilSection
+ */
public void setProfilModified() {
this.profilModified = true;
}
+ /**
+ * A appeler si des OrdRes ont été modifiés
+ *
+ * @see org.fudaa.dodico.crue.validation.ValidatorORES
+ *
+ */
public void setOrdResModified() {
this.ordResModified = true;
}
+ /**
+ *
+ * @return true si au moins une modification a été apportée
+ */
public boolean isNormalized() {
return renamedDone || reorderedDone || profilModified || ordResModified;
}
Modified: trunk/soft/fudaa-crue/ui-commandline/src/main/java/org/fudaa/fudaa/crue/uicommandline/ArgumentLineAnalyser.java
===================================================================
--- trunk/soft/fudaa-crue/ui-commandline/src/main/java/org/fudaa/fudaa/crue/uicommandline/ArgumentLineAnalyser.java 2017-01-25 15:06:46 UTC (rev 9528)
+++ trunk/soft/fudaa-crue/ui-commandline/src/main/java/org/fudaa/fudaa/crue/uicommandline/ArgumentLineAnalyser.java 2017-01-25 16:13:00 UTC (rev 9529)
@@ -14,28 +14,53 @@
import org.openide.windows.WindowManager;
/**
+ * Ne contient pas de lookup. Un service utilise par Netbeans RCP pour traiter les arguements de lancement de l'application.
+ * Dans le cas de Fudaa-Crue permet de gérer le multi-instance de Fudaa-Crue: demnader de remettre en avant-plan l'application Fudaa-Crue ou ouvrir une nouvelle
+ * instance qui ne sera pas persistée.
*
* @author deniger
*/
@ServiceProvider(service = OptionProcessor.class)
public class ArgumentLineAnalyser extends OptionProcessor {
+ /**
+ * Clé de l'option pour remettre en avant-plan l'application Fudaa-Crue ( l'utilisateur clique plusieurs fois sur l'icone)
+ */
private static final String TO_FRONT_OPTION = "toFront";
+ /**
+ * Clé de l'option lancer une nouvelle instance qui contiendra une copie temporaire des fichiers de configuration de Nebeans RCP.
+ */
private static final String IS_COPY_OPTION = "isCopy";
-// private Set<File> userDirOpened = new HashSet<File>();
- private Option openMultiInstances = Option.withoutArgument(Option.NO_SHORT_NAME, "multi-instances");
- private Option toFront = Option.withoutArgument(Option.NO_SHORT_NAME, TO_FRONT_OPTION);
- private Option isCopy = Option.withoutArgument(Option.NO_SHORT_NAME, IS_COPY_OPTION);
+ /**
+ * ouverture multi-instance
+ */
+ private final Option openMultiInstances = Option.withoutArgument(Option.NO_SHORT_NAME, "multi-instances");
+ /**
+ * Reactiver la fenetre Fudaa-Crue
+ */
+ private final Option toFront = Option.withoutArgument(Option.NO_SHORT_NAME, TO_FRONT_OPTION);
+ /**
+ * nouvelle instance avec copie des fichiers de configuration.
+ */
+ private final Option isCopy = Option.withoutArgument(Option.NO_SHORT_NAME, IS_COPY_OPTION);
+ /**
+ * Un cas de lancements mutliples est detecté: gestion de ces cas de figure
+ */
private void activateOrCreateNewInstance() {
+ //propose un choix à u l'utilisateur
MultiNetbeansInstanceChooser.Result res = MultiNetbeansInstanceChooser.choose(getOpenedInstances(true));
+ //il veut créer une nouvelle instance
if (res.isCreateNew()) {
launchNewInstance();
+ //il veut activer une instance existante
} else if (res.isActivateExisting()) {
OpenedNetbeansInstance instance = res.getInstance();
+ //c'est l'instance en cours: simple on bouge met le focus sur la fenetre principale
if (instance.isCurrent()) {
moveMainWindowToFront();
} else {
+ //sinon on relance Fudaa-crue.exe dans le bon dossier userDir en demande d'activer l'autre instance...
activateInstance(instance.getUserDir());
}
}
@@ -53,7 +78,6 @@
if (!openedInstances.isEmpty()) {
Result choose = MultiNetbeansInstanceChooser.choose(openedInstances);
if (choose.isActivateExisting()) {
- //WindowManager.getDefault().getMainWindow().setVisible(false);
activateInstance(choose.getInstance().getUserDir());
System.exit(0);
} else if (choose.isCancel()) {
@@ -63,6 +87,9 @@
}
}
+ /**
+ * Une instance est déjà lancée: il faut demander à l'utilisateur ce qu'il veut faire.
+ */
private void instanceAlreadyLaunched() {
EventQueue.invokeLater(new Runnable() {
@@ -73,6 +100,9 @@
});
}
+ /**
+ * Création d'une nouvelle instance en copiant les fichiers de configuration userDir.
+ */
private void launchNewInstance() {
try {
File newUserDir = MultiNetbeansInstanceUtils.createNewUserDir();
@@ -82,14 +112,25 @@
}
}
+ /**
+ *
+ * @param userDir permet d'identifier l'instance à activer
+ */
private void activateInstance(File userDir) {
launchAppli(userDir, "--" + TO_FRONT_OPTION);
}
+ /**
+ * Lancement de Fudaa-Crue dans le userDir fourni et avec l'option donnée
+ *
+ * @param newUserDir le userDir a utiliser
+ * @param option l'option
+ */
private void launchAppli(File newUserDir, final String option) {
File platformDir = new File(System.getProperty("netbeans.home"));
File binDir = new File(platformDir.getParentFile(), "bin");
+ //on relance l'exe avec la bonne option:
File exe = new File(binDir, MultiNetbeansInstanceUtils.isWindows() ? "fudaacrue.exe" : "fudaacrue");
ProcessBuilder builder = new ProcessBuilder(exe.getAbsolutePath(), "--userdir", newUserDir.getAbsolutePath(), option);
try {
@@ -99,7 +140,10 @@
}
}
- public void moveMainWindowToFront() {
+ /**
+ * Envoie la fenetre de l'application courante en avant-plan.
+ */
+ private void moveMainWindowToFront() {
EventQueue.invokeLater(new Runnable() {
@Override
@@ -109,6 +153,10 @@
});
}
+ /**
+ *
+ * @return les 3 options: multi-instances, toFront et nouvelle instance.
+ */
@Override
protected Set<Option> getOptions() {
HashSet set = new HashSet();
@@ -118,12 +166,19 @@
return set;
}
+ /**
+ *
+ * @param includeCurrent si true, l'instance courante doit être ajouté à la liste
+ * @return liste des instances de Netbeans ouvertes.
+ */
private List<OpenedNetbeansInstance> getOpenedInstances(boolean includeCurrent) {
+ //le résultats
List<OpenedNetbeansInstance> openedIstance = new ArrayList<>();
if (includeCurrent) {
OpenedNetbeansInstance thisInstance = new OpenedNetbeansInstance(MultiNetbeansInstanceUtils.getUserDir(), MultiNetbeansInstanceUtils.getMainWindowTitle(), true);
openedIstance.add(thisInstance);
}
+ //on parcourt la listes des instances ouvertes:
List<File> userDirOpened = MultiNetbeansInstanceUtils.listUserDir();
for (File userDir : userDirOpened) {
File frameName = MultiNetbeansInstanceUtils.getFrameName(userDir);
@@ -138,6 +193,13 @@
return openedIstance;
}
+ /**
+ * traitement des arguments de l'application pour réactiver une instance (toFront) ou créer une nouvelle instance.
+ *
+ * @param env non utilisé
+ * @param maps les options passées en parametres
+ * @throws CommandException
+ */
@Override
protected void process(Env env, Map<Option, String[]> maps) throws CommandException {
//for copied instances we just move to front.
Modified: trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java 2017-01-25 15:06:46 UTC (rev 9528)
+++ trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java 2017-01-25 16:13:00 UTC (rev 9529)
@@ -28,12 +28,24 @@
this.run = run;
}
+ /**
+ * met à jour la barre de progression (indeterminate) et charge le scenario/run.
+ *
+ * @param handle
+ * @return
+ */
@Override
public ScenarioLoaderOperation run(ProgressHandle handle) {
handle.switchToIndeterminate();
return load();
}
+ /**
+ * Lance directement le chargement via {@link ScenarioLoader}
+ *
+ * @return le resultat du chargement du scenario.
+ * @see ScenarioLoader
+ */
public ScenarioLoaderOperation load() {
ScenarioLoader loader = new ScenarioLoader(scenario, projet, projet.getCoeurConfig());
return loader.load(run);
Modified: trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java 2017-01-25 15:06:46 UTC (rev 9528)
+++ trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java 2017-01-25 16:13:00 UTC (rev 9529)
@@ -18,59 +18,131 @@
import org.openide.util.lookup.InstanceContent;
/**
+ * Classe abstraite pour les services gerant le cycle de vie d'un scenario.
+ * <table border="1" cellpadding="3" cellspacing="0" summary="lookups">
+ * <tr>
+ * <th align="left">Lookup</th>
+ * <th align="left">Commentaire</th>
+ * <th align="left">Méthode utilisant le lookup</th>
+ * </tr>
+ * <tr>
+ * <td>{@link EMHScenario}</td>
+ * <td>
+ * Le scenario chargé
+ * </td>
+ * <td><code>{@link #getScenarioLoaded()}</code></td>
+ * </tr>
+ * <tr>
+ * <td>{@link ManagerEMHScenario}</td>
+ * <td> Le ManagerEMHScenario chargé: contient en plus des infos sur le run chargé mais non utile ici
+ * <td><code>{@link #getManagerScenarioLoaded()}</code></td>
+ * </tr>
+ * <tr>
+ * <td>{@link EMHRun}</td>
+ * <td> Le run chargé</td>
+ * <td><code>{@link #getRunLoaded()}</code></td>
+ * </tr>
+ ** <tr>
+ * <td>{@link org.fudaa.ctulu.CtuluLogGroup}</td>
+ * <td>Bilan de la dernière opération effectuée dans la perspective</td>
+ * <td><code>{@link #getLastLogsGroup()}</code></td>
+ * </tr>
+ * </table>
*
* @author deniger
*/
public class ScenarioLoaderServiceAbstract implements Lookup.Provider {
-
+
+ //les lookups:
protected InstanceContent dynamicContent = new InstanceContent();
protected Lookup lookup = new AbstractLookup(dynamicContent);
+ //pour suivre la selection de la perspective.
SelectedPerspectiveService service = Lookup.getDefault().lookup(SelectedPerspectiveService.class);
+ //la perspective utilisant cette classe.
private final PerspectiveEnum perspectiveToActive;
-
+
+ /**
+ *
+ * @param perspectiveToActive la perspective a activer après le chargement d'un scenario.
+ */
public ScenarioLoaderServiceAbstract(PerspectiveEnum perspectiveToActive) {
this.perspectiveToActive = perspectiveToActive;
}
-
+
+ /**
+ *
+ * @return le scenario chargé
+ */
public EMHScenario getScenarioLoaded() {
return lookup.lookup(EMHScenario.class);
}
-
+
+ /**
+ *
+ * @return true si scenario chargé
+ */
public boolean isScenarioLoaded() {
return getScenarioLoaded() != null;
}
-
+
+ /**
+ *
+ * @return le managerEMHScenario chargé
+ */
public ManagerEMHScenario getManagerScenarioLoaded() {
return lookup.lookup(ManagerEMHScenario.class);
}
-
+
+ /**
+ *
+ * @return le run chargé.
+ */
public EMHRun getRunLoaded() {
return lookup.lookup(EMHRun.class);
}
-
+
+ /**
+ *
+ * @return true si run chargé
+ */
protected boolean isRunLoaded() {
return getRunLoaded() != null;
}
-
+
@Override
public Lookup getLookup() {
return lookup;
}
-
+
+ /**
+ *
+ * @return bilan de la dernière opération.
+ */
public CtuluLogGroup getLastLogsGroup() {
return lookup.lookup(CtuluLogGroup.class);
}
-
+
+ /**
+ *
+ * @param ctuluLogGroup le nouveau bilan a persister.
+ */
protected void updateLastLogsGroup(CtuluLogGroup ctuluLogGroup) {
CtuluLogGroup lastLogsGroup = getLastLogsGroup();
+ //on enleve le précédent
if (lastLogsGroup != null) {
dynamicContent.remove(lastLogsGroup);
}
+ //et ajoute le nouveau.
if (ctuluLogGroup != null) {
dynamicContent.add(ctuluLogGroup);
}
}
-
+
+ /**
+ * Decharge l'ensemble: Scenario, ManagerEMHScenario, Run et le dernier bilan.
+ *
+ * @return toujours true
+ */
public boolean unloadScenario() {
final EMHRun runLoaded = getRunLoaded();
if (runLoaded != null) {
@@ -89,45 +161,68 @@
dynamicContent.remove(scenarioLoaded);
}
return true;
-
+
}
- protected boolean addLogToLookup = false;
-
+
+ /**
+ * Lors du chargement d'un scenario, des modifications automatiques peuvent être apportées. Si un service veut afficher ces modifications, il doit redéfinir
+ * cette methode.
+ *
+ * @param modificationDoneWhileLoading
+ */
protected void manageAutomaticModification(ScenarioAutoModifiedState modificationDoneWhileLoading) {
}
-
+
+ /**
+ * Chargement du scenario/run avec mis à jour du bilan et activation de la perspective (voir constructeur)
+ *
+ * @param projet le projet
+ * @param managerScenario le scenario a charger
+ * @param run le run a chargé. Si null, ignoré.
+ * @return true si chargé
+ * @see ProjectLoadProgressRunnable
+ * @see org.fudaa.dodico.crue.projet.ScenarioLoader
+ */
protected boolean loadScenario(final EMHProjet projet, final ManagerEMHScenario managerScenario, final EMHRun run) {
+ //Chargement
final ProjectLoadProgressRunnable projectLoadProgressRunnable = new ProjectLoadProgressRunnable(projet, managerScenario, run);
final ScenarioLoaderOperation load = doLoad(projectLoadProgressRunnable, LoaderService.getNom(managerScenario, run));
-
+//l'opération est terminée. On se place dans le thread swing pour mettre à jour les composants swing...
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
final EMHScenario result = load == null ? null : load.getResult();
if (result != null) {
+ //on active la perspective
service.activePerspective(perspectiveToActive);
+ //on ferme eventuellement l'ancien scenario
unloadScenario();
- if (addLogToLookup) {
- dynamicContent.add(load.getLogs());
- }
+ //on charge les logs et le manager
+ dynamicContent.add(load.getLogs());
dynamicContent.add(managerScenario);
+ //on charge le run
if (run != null) {
dynamicContent.add(run);
}
+ //et finalement le scenario
+ //attention l'ordre est important car beaucoup de service ecoute l'objet EMHScenario.
+ //en l'ajoutant à la fin, on est sur que ces services auront aussi accès aux autres données ( bilan, run, manager).
dynamicContent.add(load.getResult());
}
+ //on affiche en avant-plan le bilan si des erreurs ont été trouvées:
if (load.getLogs().containsError() || load.getLogs().containsFatalError()) {
LogsDisplayer.displayError(load.getLogs(), CommonMessage.getMessage("LoadScenarioBilan.DialogTitle", managerScenario.getNom()));
}
+ //et eventuellement les modifications opérées pendant le chargement.
if (result != null) {
manageAutomaticModification(load.getAutoModifiedState());
}
}
});
-
+ //return true si le scenario est bien présent:
return load.getResult() != null;
}
-
+
public ScenarioLoaderOperation doLoad(final ProjectLoadProgressRunnable projectLoadProgressRunnable, final String nom) {
ScenarioLoaderOperation load = null;
if (EventQueue.isDispatchThread()) {
Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioServiceImpl.java
===================================================================
--- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioServiceImpl.java 2017-01-25 15:06:46 UTC (rev 9528)
+++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioServiceImpl.java 2017-01-25 16:13:00 UTC (rev 9529)
@@ -25,22 +25,57 @@
import org.openide.util.lookup.ServiceProviders;
/**
+ * Le service de base de la perspective Modélisation permettant de gérer le scenario ouvert: chargement, sauvegarde,...
+ * <table border="1" cellpadding="3" cellspacing="0" summary="lookups">
+ * <tr>
+ * <th align="left">Lookup</th>
+ * <th align="left">Commentaire</th>
+ * <th align="left">Méthode utilisant le lookup</th>
+ * </tr>
+ * <tr>
+ * <td>{@link EMHScenario}</td>
+ * <td>
+ * Le scenario chargé
+ * </td>
+ * <td><code>{@link #getScenarioLoaded()}</code></td>
+ * </tr>
+ * <tr>
+ * <td>{@link ManagerEMHScenario}</td>
+ * <td> Le ManagerEMHScenario chargé: contient en plus des infos sur le run chargé mais non utile ici
+ * <td><code>{@link #getManagerScenarioLoaded()}</code></td>
+ * </tr>
+ * <tr>
+ * <td>{@link org.fudaa.ctulu.CtuluLogGroup}</td>
+ * <td>Bilan de la dernière opération effectuée dans la perspective</td>
+ * <td><code>{@link #getLastLogsGroup()}</code></td>
+ * </tr>
+ * </table>
*
* @author deniger
*/
@ServiceProviders(value = {
- @ServiceProvider(service = ModellingScenarioService.class),
+ @ServiceProvider(service = ModellingScenarioService.class)
+ ,
@ServiceProvider(service = ModellingScenarioServiceImpl.class)})
public class ModellingScenarioServiceImpl extends ScenarioLoaderServiceAbstract implements ModellingScenarioService {
- private EMHProjetServiceImpl projetService = Lookup.getDefault().lookup(EMHProjetServiceImpl.class);
+ private final EMHProjetServiceImpl projetService = Lookup.getDefault().lookup(EMHProjetServiceImpl.class);
+ private File tempDir;
+ private boolean reloading;
+
public ModellingScenarioServiceImpl() {
super(PerspectiveEnum.MODELLING);
- addLogToLookup = true;
}
- File tempDir;
+ /**
+ * Fait appel à la méthode de la classe parent. Créé en plus un dossier temporaire pour les sauvegardes.
+ *
+ * @param projet le projet contenant le scenario
+ * @param scenario le scenario a charger
+ * @return true sir le scenario a pu etre chargé.
+ * @see ScenarioLoaderServiceAbstract#loadScenario(org.fudaa.dodico.crue.metier.etude.EMHProjet, org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario, org.fudaa.dodico.crue.metier.etude.EMHRun)
+ */
@Override
public boolean loadScenario(EMHProjet projet, ManagerEMHScenario scenario) {
boolean res = super.loadScenario(projet, scenario, null);
@@ -54,10 +89,17 @@
return res;
}
+ /**
+ * Avertit l'utilsateur des modifications apportées automatiquement lors du chargement du scenario
+ *
+ * @param modificationDoneWhileLoading les modifications effectuées au chargemenet
+ */
@Override
protected void manageAutomaticModification(ScenarioAutoModifiedState modificationDoneWhileLoading) {
+ //le scenario a été normalisé
if (modificationDoneWhileLoading.isNormalized()) {
-
+ //il faut donc avertir l'utilsateur.
+ //invokeLater pour le faire après les actions en cours.
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
@@ -73,14 +115,18 @@
/**
* Attention: a utiliser pour les tests uniquement !
*
- * @param scenario
- * @param projet
+ * @param scenario le scenario chargé
+ * @param projet le projet chargé.
*/
public void setForTest(EMHScenario scenario, EMHProjet projet) {
super.dynamicContent.add(scenario);
projetService.setForTest(projet);
}
+ /**
+ *
+ * @return le dossier temp associé au scenario chargé. Utilisé pour sauvegarder en 2 etapes les fichiers par exemple
+ */
public File getTempDir() {
return tempDir;
}
@@ -135,7 +181,7 @@
ModellingSaveProcessor saveProcessor = new ModellingSaveProcessor();
Pair<Set<String>, CtuluLogGroup> logs = CrueProgressUtils.showProgressDialogAndRun(saveProcessor,
NbBundle.getMessage(ModellingSaveAction.class,
- "CTL_ModellingSaveAction"));
+ "CTL_ModellingSaveAction"));
updateLastLogsGroup(logs.second);
if (!logs.first.isEmpty()) {
projetService.scenarioSaved(getManagerScenarioLoaded(), logs.first);
@@ -143,7 +189,6 @@
return !logs.second.containsFatalError();
}
- boolean reloading;
@Override
public boolean isReloading() {
Modified: trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java
===================================================================
--- trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java 2017-01-25 15:06:46 UTC (rev 9528)
+++ trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java 2017-01-25 16:13:00 UTC (rev 9529)
@@ -36,7 +36,6 @@
public PostServiceImpl() {
super(PerspectiveEnum.POST);
- super.addLogToLookup = true;
}
private CrueRunLauncher getRunLauncher() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-25 15:06:48
|
Revision: 9528
http://sourceforge.net/p/fudaa/svn/9528
Author: deniger
Date: 2017-01-25 15:06:46 +0000 (Wed, 25 Jan 2017)
Log Message:
-----------
javadoc + renommage de classes pour etre plus claire
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoader.java
trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreator.java
trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreatorOptions.java
Modified: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoader.java
===================================================================
--- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoader.java 2017-01-25 15:06:31 UTC (rev 9527)
+++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoader.java 2017-01-25 15:06:46 UTC (rev 9528)
@@ -68,7 +68,7 @@
}
/**
- * @param run le run a charger
+ * @param run le run a charger. Sinon, seul le scenario est chargé.
* @return
*/
public ScenarioLoaderOperation load(final EMHRun run) {
Modified: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreator.java
===================================================================
--- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreator.java 2017-01-25 15:06:31 UTC (rev 9527)
+++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreator.java 2017-01-25 15:06:46 UTC (rev 9528)
@@ -177,11 +177,11 @@
}
}
- //options.getSelectedRun() donne le run à partir duquel on va copier si possible les fichier de résultats ( si pas obsolètes)
+ //options.getSelectedRunToStartFrom() donne le run à partir duquel on va copier si possible les fichier de résultats ( si pas obsolètes)
//on copie si possible les fichiers de résultats.
- if (options.getSelectedRun() != null) {
- Map<String, RunFile> resultFilesToCopy = projet.getRunFilesResultat(scenario, options.getSelectedRun());
+ if (options.getSelectedRunToStartFrom() != null) {
+ Map<String, RunFile> resultFilesToCopy = projet.getRunFilesResultat(scenario, options.getSelectedRunToStartFrom());
Map<String, RunFile> destResultFiles = projet.getRunFilesResultat(scenario, newRun);
RunPredecessorFileFinder finder = new RunPredecessorFileFinder(scenario, destResultFiles.values());
Modified: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreatorOptions.java
===================================================================
--- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreatorOptions.java 2017-01-25 15:06:31 UTC (rev 9527)
+++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/create/RunCreatorOptions.java 2017-01-25 15:06:46 UTC (rev 9528)
@@ -25,7 +25,6 @@
/**
* @param runContainingResultFile
- * @param useInputFileFromStudy
*/
public RunCreatorOptions(EMHRun runContainingResultFile) {
super();
@@ -58,7 +57,7 @@
/**
* @return the run containing result Files to copy in the new created run ( if not obsolete)
*/
- public EMHRun getSelectedRun() {
+ public EMHRun getSelectedRunToStartFrom() {
return runContainingResultFile;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-25 15:06:33
|
Revision: 9527
http://sourceforge.net/p/fudaa/svn/9527
Author: deniger
Date: 2017-01-25 15:06:31 +0000 (Wed, 25 Jan 2017)
Log Message:
-----------
javadoc + renommage de classes pour etre plus claire
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/LoaderService.java
trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadContainer.java
trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java
Modified: trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/LoaderService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/LoaderService.java 2017-01-25 15:06:16 UTC (rev 9526)
+++ trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/LoaderService.java 2017-01-25 15:06:31 UTC (rev 9527)
@@ -33,46 +33,83 @@
public class LoaderService {
/**
+ *
+ * @return Un FileFilter par defaut pour charger un fichier etu.
+ */
+ private static FileFilter createEtuFileFilter() {
+ return Crue10FileFormat.createFileFilter(CrueFileType.ETU, EtuFile());
+ }
+
+ /**
+ *
+ * @param scenario le scenario. Si null renvoie chaine vide
+ * @param run le run. Si null renvoie uniquement le nom du scenario.
+ * @return chaine caractérisant le couple. Si run est nom renvoie uniquement le nom du scenario.
+ */
+ public static String getNom(final ManagerEMHScenario scenario, EMHRun run) {
+ if (scenario == null) {
+ return "";
+ }
+ if (run != null) {
+ return scenario.getNom() + "/" + run.getNom();
+ }
+ return scenario.getNom();
+ }
+ /**
* le service gerant la configuration site.
*/
private final ConfigurationManagerService configurationManagerService = Lookup.getDefault().lookup(ConfigurationManagerService.class);
- public static FileFilter createEtuFileFilter() {
- return Crue10FileFormat.createFileFilter(CrueFileType.ETU, EtuFile());
- }
-
+ /**
+ *
+ * @return {@link ConfigurationManagerService#getDefaultDataHome() }
+ */
public File getDefaultDataHome() {
return configurationManagerService.getDefaultDataHome();
}
+ /**
+ * @return {@link org.fudaa.dodico.crue.config.coeur.CoeurManager#getSiteDir() } soit le dossier contenant les fichiers de configuration site.
+ */
public File getSiteDir() {
return configurationManagerService.getCoeurManager().getSiteDir();
}
+ /**
+ *
+ * @param projet le projet à charger
+ * @param scenario le scenario à charger
+ * @param run le run à charger ( peut etre null)
+ * @return le scenario chargé
+ * @see #load(org.fudaa.dodico.crue.metier.etude.EMHProjet, org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario, org.fudaa.dodico.crue.metier.etude.EMHRun, boolean)
+ */
public EMHScenario load(final EMHProjet projet, final ManagerEMHScenario scenario, EMHRun run) {
return load(projet, scenario, run, false);
}
- public static String getNom(final ManagerEMHScenario scenario, EMHRun run) {
- if (scenario == null) {
- return "";
- }
- if (run != null) {
- return scenario.getNom() + "/" + run.getNom();
- }
- return scenario.getNom();
- }
-
+ /**
+ *
+ * @param projet le projet à charger
+ * @param scenario le scenario à charger
+ * @param run le run à charger ( peut etre null)
+ * @param displayOnlyIfError si true, le bilan de l'opération sera affiché que si des erreurs sont présentes.
+ * @return le scenario /run chargé
+ * @see ScenarioLoader
+ */
public EMHScenario load(final EMHProjet projet, final ManagerEMHScenario scenario, EMHRun run, boolean displayOnlyIfError) {
ScenarioLoaderOperation load = null;
+ //si on est dans le thread swing, on bloque l'interface le temps du chargement -> pour eviter de figer la fenetre
if (EventQueue.isDispatchThread()) {
load = CrueProgressUtils.showProgressDialogAndRun(new ProjectLoadProgressRunnable(projet, scenario, run), scenario.getNom());
} else {
+ //sinon on charge le scenario ( thread non swing).
ScenarioLoader loader = new ScenarioLoader(scenario, projet, projet.getCoeurConfig());
load = loader.load(run);
}
+ //recuperation du bilan
final boolean isLoadedWithoutFatalError = load.getResult() != null && !load.getLogs().containsFatalError();
+ //on affiche le bilan en prenant en compte la valeur de displayOnlyIfError
if (displayOnlyIfError) {
if (load.getLogs().containsError() || load.getLogs().containsFatalError()) {
LogsDisplayer.displayError(load.getLogs(), CommonMessage.getMessage("LoadScenarioBilan.DialogTitle", getNom(scenario, run)));
@@ -80,36 +117,56 @@
} else if (load.getLogs().containsSomething()) {
LogsDisplayer.displayError(load.getLogs(), CommonMessage.getMessage("LoadScenarioBilan.DialogTitle", getNom(scenario, run)));
}
+ //on renvoie le resultats si pas d'erreur fatale
return isLoadedWithoutFatalError ? load.getResult() : null;
}
- public ProjectLoadContainer loadProject(File toOpen) {
- if (toOpen != null) {
- CoeurConfigContrat findCoeurConfig = findCoeurConfig(toOpen);
+ /**
+ * Charge le fichier etu en respectant la configuration des coeurs (coeur par défaut, si plusieurs coeurs choix à faire...).
+ *
+ * @param etuFileToOpen: le fichier etu à ouvrir.si null renvoie null.
+ * @return le resultat de l'ouverture avec le projet et le fichier etu.
+ * @see OpenFileProcess
+ */
+ public ProjectLoadContainer loadProject(File etuFileToOpen) {
+ if (etuFileToOpen != null) {
+ CoeurConfigContrat findCoeurConfig = findCoeurConfig(etuFileToOpen);
if (findCoeurConfig == null) {
return null;
}
- OpenFileProcess runner = new OpenFileProcess(toOpen, findCoeurConfig);
+ OpenFileProcess runner = new OpenFileProcess(etuFileToOpen, findCoeurConfig);
final EMHProjet projet = runner.run(null);
- return new ProjectLoadContainer(toOpen, projet);
+ return new ProjectLoadContainer(etuFileToOpen, projet);
}
return null;
}
+ /**
+ * Ouvre un filechooser permettant de choisir un fichier etu. le dossier par défaut est donné par {@link #getDefaultDataHome() }.
+ *
+ * @return le fichier etu choisi par l'utilisateur
+ */
public File chooseEtuFile() {
- File home = getDefaultDataHome();//TODO revoir ce point
+ File home = getDefaultDataHome();
+ //on construit le filechooser:
final FileChooserBuilder builder = new FileChooserBuilder(LoaderService.class).setTitle(ChooseEtu()).
setDefaultWorkingDirectory(home).setApproveText(OpenEtu());
builder.setFilesOnly(true);
- //a changer pour ne plus dépendre de cela:
- final FileFilter composed = createEtuFileFilter();
- builder.setFileFilter(composed);
- final EtuFileIconProvider badgeProvider = new EtuFileIconProvider(composed);
+ final FileFilter fileFilter = createEtuFileFilter();
+ builder.setFileFilter(fileFilter);
+ //pour afficher différement les fichier etu:
+ final EtuFileIconProvider badgeProvider = new EtuFileIconProvider(fileFilter);
builder.setBadgeProvider(badgeProvider);
- File toOpen = builder.showOpenDialog();
- return toOpen;
+ //choix du fichier
+ return builder.showOpenDialog();
}
+ /**
+ *
+ * @param etuFile
+ * @return la configuration coeur correspondant au fichier etu.
+ * @see ConfigurationManagerService#chooseCoeur(java.lang.String)
+ */
private CoeurConfigContrat findCoeurConfig(File etuFile) {
VersionResult findVersion = Crue10FileFormatFactory.findVersion(etuFile);
if (findVersion.getLog().isNotEmpty()) {
@@ -118,8 +175,12 @@
return configurationManagerService.chooseCoeur(findVersion.getVersion());
}
+ /**
+ *
+ * @return permet à l'utilisateur de choisir le fichier etu et l'ouvre par la suite.
+ * @see #loadProject(java.io.File)
+ */
public ProjectLoadContainer loadProject() {
-
File toOpen = chooseEtuFile();
return loadProject(toOpen);
}
Modified: trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadContainer.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadContainer.java 2017-01-25 15:06:16 UTC (rev 9526)
+++ trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadContainer.java 2017-01-25 15:06:31 UTC (rev 9527)
@@ -5,23 +5,39 @@
/**
*
+ * Contient le résultat d'une ouverture d'un fichier etu
+ *
* @author deniger
*/
public class ProjectLoadContainer {
- private File etuFile;
- private EMHProjet projet;
+ private final File etuFile;
+ private final EMHProjet projet;
+ /**
+ *
+ * @param etuFile le fichier etu
+ * @param projet le projet correspondant
+ */
+ public ProjectLoadContainer(File etuFile, EMHProjet projet) {
+ this.etuFile = etuFile;
+ this.projet = projet;
+ }
+
+ /**
+ *
+ * @return le fichier etu
+ */
public File getEtuFile() {
return etuFile;
}
+ /**
+ *
+ * @return le project correspondant.
+ */
public EMHProjet getProjet() {
return projet;
}
- public ProjectLoadContainer(File etuFile, EMHProjet projet) {
- this.etuFile = etuFile;
- this.projet = projet;
- }
}
Modified: trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java 2017-01-25 15:06:16 UTC (rev 9526)
+++ trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java 2017-01-25 15:06:31 UTC (rev 9527)
@@ -12,6 +12,7 @@
import org.netbeans.api.progress.ProgressRunnable;
/**
+ * permet de charger un scenario/run en etant compatible avec Netbeans RCP et {@link ProgressRunnable}
*
* @author Frederic Deniger
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-25 15:06:18
|
Revision: 9526
http://sourceforge.net/p/fudaa/svn/9526
Author: deniger
Date: 2017-01-25 15:06:16 +0000 (Wed, 25 Jan 2017)
Log Message:
-----------
javadoc + renommage de classes pour etre plus claire
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/EMHProjetServiceImpl.java
Added Paths:
-----------
trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/FichierCrueManagerStateUpdater.java
Modified: trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/EMHProjetServiceImpl.java
===================================================================
--- trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/EMHProjetServiceImpl.java 2017-01-25 13:21:51 UTC (rev 9525)
+++ trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/EMHProjetServiceImpl.java 2017-01-25 15:06:16 UTC (rev 9526)
@@ -20,11 +20,7 @@
import org.fudaa.dodico.crue.metier.CrueFileType;
import org.fudaa.dodico.crue.metier.etude.EMHProjet;
import org.fudaa.dodico.crue.metier.etude.EMHRun;
-import org.fudaa.dodico.crue.metier.etude.FichierCrue;
-import org.fudaa.dodico.crue.metier.etude.FichierCrueManager;
-import org.fudaa.dodico.crue.metier.etude.ManagerEMHModeleBase;
import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario;
-import org.fudaa.dodico.crue.metier.etude.ManagerEMHSousModele;
import org.fudaa.dodico.crue.projet.EMHProjetController;
import org.fudaa.dodico.crue.projet.calcul.ExecInputDefault;
import org.fudaa.dodico.crue.projet.create.RunCalculOption;
@@ -34,6 +30,7 @@
import org.fudaa.fudaa.crue.common.log.LogsDisplayer;
import org.fudaa.fudaa.crue.common.property.listener.ListenerManager;
import org.fudaa.fudaa.crue.common.services.EMHProjetService;
+import org.fudaa.fudaa.crue.common.services.ModellingScenarioService;
import org.fudaa.fudaa.crue.common.services.PostRunService;
import org.fudaa.fudaa.crue.loader.LoaderService;
import org.fudaa.fudaa.crue.loader.ProjectLoadContainer;
@@ -432,6 +429,12 @@
return false;
}
+ /**
+ * Methode interne pour activation d'un projet: persistence des infos, maj des listeners, maj du titre de l'application, construction des Nodes et modification du Lookup de ce service.
+ *
+ * @param project: le projet ouvert
+ * @param etuFile le fichier etu
+ */
void activeProject(EMHProjet project, File etuFile) {
this.etuFile = etuFile;
saveEtuFileLastModified();
@@ -462,14 +465,24 @@
}
}
+ /**
+ * Nettoyage suite fermeture projet: suppression du lock sur le fichier etu, nettoyage des listeners,
+ *
+ * @param currentProject
+ */
private void unactiveProject(EMHProjet currentProject) {
+ //on enleve le lock
if (!readOnly) {
fileLocker.unlock(etuFile);
}
+ //nettoie les noeuds
nodesManager.clear(reloading);
+ //le listener sur le dossier du fichier etu
listeners.clean();
+
etuFolder = null;
etuFile = null;
+ //RAS des infos locales:
dynamicContent.remove(currentProject);
lastModifiedEtuFile = 0;
readOnly = false;
@@ -488,10 +501,18 @@
return selectedProject == null ? null : selectedProject.getPropDefinition();
}
+ /**
+ * @return true si une etude est ouverte
+ */
public boolean isProjectOpened() {
return getSelectedProject() != null;
}
+ /**
+ * Maj du listener sur le dossier du fichier etu.
+ *
+ * @param project
+ */
private void registerListener(EMHProjet project) {
File file = project.getDirOfFichiersEtudes();
try {
@@ -505,10 +526,17 @@
}
+ /**
+ * @see getNodesManager()
+ * @see NodesManager#updateEtuFiles()
+ */
void updateEtuFiles() {
getNodesManager().updateEtuFiles();
}
+ /**
+ * sauvegarde de l'eutude en cours ( historique, save et affichage des erreurs si présentes).
+ */
void quickSave() {
assert !readOnly;
createHistory();
@@ -523,14 +551,23 @@
}
+ /**
+ * Lancement d'un run et delegation au {@link PostRunService} pour la gestion du lancement.
+ *
+ * @param scenario le scenario pour lequel le run est lancé.
+ * @param options les options du run
+ */
public void launchRun(ManagerEMHScenario scenario, RunCreatorOptions options) {
+ //le fichier etu va être modifié: on sauvegarde la version en cours...
createHistory();
if (this.postRunService == null) {
postRunService = Lookup.getDefault().lookup(PostRunService.class);
}
+ //est-ce que le run peut être lancé ? non -> on annule
if (!postRunService.validConfigurationForRun(scenario, getSelectedProject().getCoeurConfig())) {
return;
}
+ //on créé le run à partir des options fournie
EMHProjetController controller = getController();
CrueOperationResult<EMHRun> createRun = null;
if (options == null) {
@@ -538,86 +575,68 @@
} else {
createRun = controller.createRun(scenario.getNom(), options, etuFile);
}
+ //si messages, on les affiche
if (createRun.getLogs().containsSomething()) {
LogsDisplayer.displayError(createRun.getLogs(), NbBundle.getMessage(EMHProjetServiceImpl.class, "CreateRunError.DialogTitle",
scenario.getNom()));
}
+ //la creation a echouer-> on annule
if (createRun.getResult() == null) {
return;
}
+ //creatiopn de la map des options: donne par type de fichiers, les actions (RunCalculOption) à effectuer.
Map<CrueFileType, RunCalculOption> optionsByCompute;
if (options == null) {
optionsByCompute = RunCreatorOptions.createDefaultMap();
} else {
optionsByCompute = options.getOptionsByCompute();
}
+ //lancement du run opéré par le service de Compte-Rrednu.
postRunService.run(new ExecInputDefault(getSelectedProject(), scenario, createRun.getResult()),
optionsByCompute);
-
+ //on recharge l'etude.
reload(NbBundle.getMessage(EMHProjetServiceImpl.class, "LogLaunchRunDefaultOption", scenario.getNom()));
}
+ /**
+ *
+ * @return le fichier etu chargé. Null si pas chargé
+ */
public File getEtuFile() {
return etuFile;
}
+ /**
+ * Appelle {@link #launchRun(org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario, org.fudaa.dodico.crue.projet.create.RunCreatorOptions)} sans options.
+ *
+ * @param scenario le scenario pour lequel le run est lancé.
+ */
public void launchRun(ManagerEMHScenario scenario) {
launchRun(scenario, null);
}
+ /**
+ * Appelé par {@link ModellingScenarioService} pour indiquer des modifications dans le scenario.
+ * Permet de mettre à jour les infos des conteneurs ( qui a modifie et quand ).
+ *
+ * @param managerScenarioLoaded
+ * @param modifiedFiles les fichiers modifiées
+ */
public void scenarioSaved(ManagerEMHScenario managerScenarioLoaded, Set<String> modifiedFiles) {
+ //on récupère les infos du user et le temps de modifications.
ConnexionInformationFixed connexionInfo = new ConnexionInformationFixed(installationService.getConnexionInformation());
- updateModifiedState(managerScenarioLoaded, connexionInfo, modifiedFiles);
+ //mises à jour des infos pour le scenario chargé
+ FichierCrueManagerStateUpdater.updateModifiedState(managerScenarioLoaded, connexionInfo, modifiedFiles);
List<ManagerEMHScenario> listeScenarios = getSelectedProject().getListeScenarios();
+ //et tous les autres
for (ManagerEMHScenario managerEMHScenario : listeScenarios) {
- updateModifiedState(managerEMHScenario, connexionInfo, modifiedFiles);
+ FichierCrueManagerStateUpdater.updateModifiedState(managerEMHScenario, connexionInfo, modifiedFiles);
}
+ //sauvegarde des infos.
quickSave();
}
- protected void updateModifiedState(ManagerEMHScenario scenario, ConnexionInformationFixed info, Set<String> modifiedFiles) {
- if (isModified(modifiedFiles, scenario.getListeFichiers())) {
- scenario.getInfosVersions().updateForm(info);
- }
- List<ManagerEMHModeleBase> modeles = scenario.getFils();
- for (ManagerEMHModeleBase modele : modeles) {
- boolean modified = updateModifiedState(modele, info, modifiedFiles);
- if (modified) {
- scenario.getInfosVersions().updateForm(info);
- }
- }
- }
-
- protected boolean isModified(Set<String> modifiedFiles, FichierCrueManager fichiers) {
- if (fichiers == null) {
- return false;
- }
- for (FichierCrue fichierCrue : fichiers.getFichiers()) {
- if (modifiedFiles.contains(fichierCrue.getId())) {
- return true;
- }
- }
- return false;
- }
-
- protected boolean updateModifiedState(ManagerEMHModeleBase modele, ConnexionInformationFixed info, Set<String> modifiedFiles) {
- boolean res = isModified(modifiedFiles, modele.getListeFichiers());
- List<ManagerEMHSousModele> sousModeles = modele.getFils();
- for (ManagerEMHSousModele sousModele : sousModeles) {
- boolean sousModeleModified = isModified(modifiedFiles, sousModele.getListeFichiers());
- if (sousModeleModified) {
- res = true;
- sousModele.getInfosVersions().updateForm(info);
- }
- }
- if (res) {
- modele.getInfosVersions().updateForm(info);
- }
- return res;
-
- }
-
boolean isProjetReadOnly() {
return readOnly;
}
Added: trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/FichierCrueManagerStateUpdater.java
===================================================================
--- trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/FichierCrueManagerStateUpdater.java (rev 0)
+++ trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/FichierCrueManagerStateUpdater.java 2017-01-25 15:06:16 UTC (rev 9526)
@@ -0,0 +1,88 @@
+/*
+GPL 2
+ */
+package org.fudaa.fudaa.crue.study.services;
+
+import java.util.List;
+import java.util.Set;
+import org.fudaa.dodico.crue.common.ConnexionInformation;
+import org.fudaa.dodico.crue.metier.etude.FichierCrue;
+import org.fudaa.dodico.crue.metier.etude.FichierCrueManager;
+import org.fudaa.dodico.crue.metier.etude.ManagerEMHModeleBase;
+import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario;
+import org.fudaa.dodico.crue.metier.etude.ManagerEMHSousModele;
+
+/**
+ * Classe utilitaire pour mettre à jour l'etat des fichiers d'un scenario ( le modifier et la date).
+ *
+ * @see ConnexionInformation
+ *
+ * @author Frederic Deniger
+ */
+public class FichierCrueManagerStateUpdater {
+
+ /**
+ *
+ * @param fichierCrueIdToCheck la collection de fichiers a tester
+ * @param fichiers les ids des fichiers modifiés
+ * @return true si la collection de fichiers contient un id donnée par <code>fichierCrueIdToCheck</code>
+ * @see FichierCrue#getId()
+ */
+ private static boolean containsAtLeastOnFichierCrueId(Set<String> fichierCrueIdToCheck, FichierCrueManager fichiers) {
+ if (fichiers == null) {
+ return false;
+ }
+ for (FichierCrue fichierCrue : fichiers.getFichiers()) {
+ if (fichierCrueIdToCheck.contains(fichierCrue.getId())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Mis a jour des états des conteneurs si un fichier contenu est modifié.
+ *
+ * @param scenario le scenario
+ * @param info les infos de modification ( auteur et date)
+ * @param idOfModifiedFiles les ids des fichiers modifiés
+ */
+ protected static void updateModifiedState(ManagerEMHScenario scenario, ConnexionInformation info, Set<String> idOfModifiedFiles) {
+ if (containsAtLeastOnFichierCrueId(idOfModifiedFiles, scenario.getListeFichiers())) {
+ scenario.getInfosVersions().updateForm(info);
+ }
+ List<ManagerEMHModeleBase> modeles = scenario.getFils();
+ for (ManagerEMHModeleBase modele : modeles) {
+ boolean modified = updateModifiedState(modele, info, idOfModifiedFiles);
+ //si un fichier d'un Modele/sous modele est modifié, il faut mettre à jour le scenario egalement.
+ if (modified) {
+ scenario.getInfosVersions().updateForm(info);
+ }
+ }
+ }
+
+ /**
+ * Mis a jour des états du modele et des sous-modele: si l'id d'un fichier de ces conteneurs fait partis des modifiés, les infos du conteneur sont mis à jour.
+ *
+ * @param modele
+ * @param info les infos de modification ( auteur et date)
+ * @param idOfModifiedFiles les ids des fichiers modifiés
+ * @return true si un fichier modifié a été trouvé.
+ */
+ private static boolean updateModifiedState(ManagerEMHModeleBase modele, ConnexionInformation info, Set<String> idOfModifiedFiles) {
+ boolean res = containsAtLeastOnFichierCrueId(idOfModifiedFiles, modele.getListeFichiers());
+ List<ManagerEMHSousModele> sousModeles = modele.getFils();
+ for (ManagerEMHSousModele sousModele : sousModeles) {
+ boolean sousModeleModified = containsAtLeastOnFichierCrueId(idOfModifiedFiles, sousModele.getListeFichiers());
+ if (sousModeleModified) {
+ res = true;
+ sousModele.getInfosVersions().updateForm(info);
+ }
+ }
+ if (res) {
+ modele.getInfosVersions().updateForm(info);
+ }
+ return res;
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-01-24 16:12:33
|
Revision: 9524
http://sourceforge.net/p/fudaa/svn/9524
Author: bmarchan
Date: 2017-01-24 16:12:30 +0000 (Tue, 24 Jan 2017)
Log Message:
-----------
PIV : Tooltip action Auto cache
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivAutoCacheAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivAutoCacheAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivAutoCacheAction.java 2017-01-24 15:39:14 UTC (rev 9523)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivAutoCacheAction.java 2017-01-24 16:12:30 UTC (rev 9524)
@@ -31,6 +31,7 @@
*/
public PivAutoCacheAction(PivImplementation _impl) {
super(PivResource.getS("Cache des images automatique"), null, "PIV_AUTO_CACHE");
+ setDefaultToolTip(PivResource.getS("S\xE9lectionn\xE9 : Calcule toutes les images pour l'affichage. Ralentit l\xE9g\xE8rement les calculs de vitesses."));
impl=_impl;
setEnabled(true);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2017-01-24 15:39:15
|
Revision: 9523
http://sourceforge.net/p/fudaa/svn/9523
Author: bmarchan
Date: 2017-01-24 15:39:14 +0000 (Tue, 24 Jan 2017)
Log Message:
-----------
Fix LSPIV : Inversion EXPORT_SRC et EXPORT_TRANSF images
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportImagesAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportImagesAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportImagesAction.java 2017-01-20 17:00:57 UTC (rev 9522)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportImagesAction.java 2017-01-24 15:39:14 UTC (rev 9523)
@@ -49,7 +49,7 @@
* @param _impl L'implementation.
*/
public PivExportImagesAction(PivImplementation _impl, boolean _exportSrc) {
- super((_exportSrc ? TXTEXPORTERSRC:TXTEXPORTERTRANSF)+"...", null, _exportSrc ? "EXPORT_TRANSF_IMAGES":"EXPORT_SRC_IMAGES");
+ super((_exportSrc ? TXTEXPORTERSRC:TXTEXPORTERTRANSF)+"...", null, _exportSrc ? "EXPORT_SRC_IMAGES":"EXPORT_TRANSF_IMAGES");
exportSrc_=_exportSrc;
impl=_impl;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-20 17:01:00
|
Revision: 9522
http://sourceforge.net/p/fudaa/svn/9522
Author: deniger
Date: 2017-01-20 17:00:57 +0000 (Fri, 20 Jan 2017)
Log Message:
-----------
javadoc
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractPerspectiveService.java
Added Paths:
-----------
trunk/soft/fudaa-crue/ui-common/nbactions.xml
Added: trunk/soft/fudaa-crue/ui-common/nbactions.xml
===================================================================
--- trunk/soft/fudaa-crue/ui-common/nbactions.xml (rev 0)
+++ trunk/soft/fudaa-crue/ui-common/nbactions.xml 2017-01-20 17:00:57 UTC (rev 9522)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actions>
+ <action>
+ <actionName>CUSTOM-report</actionName>
+ <displayName>report</displayName>
+ <goals>
+ <goal>javancss:report</goal>
+ </goals>
+ </action>
+ </actions>
Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractPerspectiveService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractPerspectiveService.java 2017-01-20 10:01:54 UTC (rev 9521)
+++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractPerspectiveService.java 2017-01-20 17:00:57 UTC (rev 9522)
@@ -23,7 +23,7 @@
* @author Fred Deniger
*/
public abstract class AbstractPerspectiveService implements PerspectiveService {
-
+
protected static void activateTopComponentAndSetSelection(TopComponent findTopComponent, Node[] saved) {
findTopComponent.requestActive();
if (findTopComponent instanceof ExplorerManager.Provider) {
@@ -32,14 +32,14 @@
if (explorerManager != null) {
explorerManager.setSelectedNodes(saved);
}
-
+
} catch (PropertyVetoException ex) {
Exceptions.printStackTrace(ex);
}
}
-
+
}
-
+
protected static void clearSelection(TopComponent findTopComponent) {
if (findTopComponent instanceof ExplorerManager.Provider) {
try {
@@ -47,13 +47,13 @@
if (explorerManager != null) {
explorerManager.setSelectedNodes(new Node[0]);
}
-
+
} catch (PropertyVetoException ex) {
Exceptions.printStackTrace(ex);
}
}
}
-
+
private final PerspectiveEnum perspective;
private final PropertyChangeSupport propertyChangeSupport;
private PerspectiveState state = PerspectiveState.MODE_READ_ONLY_TEMP;
@@ -68,17 +68,20 @@
this.perspective = perspective;
propertyChangeSupport = new PropertyChangeSupport(this);
}
-
+
@Override
public PerspectiveEnum getPerspective() {
return perspective;
}
/**
- * R
+ * Rafraichit les TopComponent ouverts ( l'état editable). Concrètement, cette methode modifie la sélection ce qui permet de mettre à jour les propriétés
+ * "editable" des JComponents du TopComponent
+ *
+ * @see #setState(org.fudaa.fudaa.crue.common.services.PerspectiveState)
*/
protected void refreshTopComponents() {
-
+ //pour être sur de toujours travailler dans le Thread Swing
if (!EventQueue.isDispatchThread()) {
EventQueue.invokeLater(new Runnable() {
@Override
@@ -88,11 +91,13 @@
});
return;
}
+ //on enregistre la sélection en cours du TopComponent actif
TopComponent activated = TopComponent.getRegistry().getActivated();
Node[] saved = null;
if (activated != null) {
saved = TopComponentHelper.getSelectedNode(activated);
}
+ //on efface la sélection de tous les TopComponent ouverts
Map<String, Collection<TopComponent>> openedTopComponentById = TopComponentHelper.getOpenedTopComponentById();
for (String string : getDefaultTopComponents()) {
Collection<TopComponent> listOfTc = openedTopComponentById.get(string);
@@ -102,35 +107,37 @@
}
}
}
+ //on réapplique la sélection du TopComponent actif
if (activated != null) {
if (saved != null) {
activateTopComponentAndSetSelection(activated, saved);
}
+ //on remet le focus sur le TopComponent actif
activated.requestActive();
-
+
}
}
-
+
@Override
public void addStateListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener("state", listener);
}
-
+
@Override
public void removeStateListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener("state", listener);
}
-
+
@Override
public void addDirtyListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener("dirty", listener);
}
-
+
@Override
public void removeDirtyListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener("dirty", listener);
}
-
+
@Override
public PerspectiveState getState() {
return state;
@@ -151,7 +158,7 @@
public boolean isActive() {
return active;
}
-
+
@Override
public boolean deactivate() {
if (isDirty()) {
@@ -163,7 +170,7 @@
}
return true;
}
-
+
@Override
public boolean isDirty() {
return dirty;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-20 10:01:57
|
Revision: 9521
http://sourceforge.net/p/fudaa/svn/9521
Author: deniger
Date: 2017-01-20 10:01:54 +0000 (Fri, 20 Jan 2017)
Log Message:
-----------
javadoc
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/action/AbstractAddAction.java
Modified: trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/action/AbstractAddAction.java
===================================================================
--- trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/action/AbstractAddAction.java 2017-01-20 09:59:33 UTC (rev 9520)
+++ trunk/soft/fudaa-crue/ui-planimetry/src/main/java/org/fudaa/fudaa/crue/planimetry/action/AbstractAddAction.java 2017-01-20 10:01:54 UTC (rev 9521)
@@ -91,8 +91,11 @@
zone.unactive(getEditionComponent());
getCalqueDessin().setGele(true);
//plus tard on remet la sélection en route.
- EventQueue.invokeLater(() -> {
- resetToSelection();
+ EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ resetToSelection();
+ }
});
}
isUpdating = false;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-20 09:59:36
|
Revision: 9520
http://sourceforge.net/p/fudaa/svn/9520
Author: deniger
Date: 2017-01-20 09:59:33 +0000 (Fri, 20 Jan 2017)
Log Message:
-----------
javadoc
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/InitPerspectiveInstaller.java
trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractPerspectiveService.java
Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/InitPerspectiveInstaller.java
===================================================================
--- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/InitPerspectiveInstaller.java 2017-01-16 09:18:46 UTC (rev 9519)
+++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/InitPerspectiveInstaller.java 2017-01-20 09:59:33 UTC (rev 9520)
@@ -14,7 +14,6 @@
import javax.swing.UIManager;
import org.fudaa.ebli.commun.EbliComponentFactory;
import org.fudaa.ebli.palette.BPalettePlage;
-import static org.fudaa.fudaa.crue.common.Bundle.*;
import org.fudaa.fudaa.crue.common.editor.CustomColorChooser;
import org.fudaa.fudaa.crue.common.editor.FileEditor;
import org.fudaa.fudaa.crue.common.editor.LocalDateTimeEditor;
@@ -65,15 +64,13 @@
}
if (closing) {
Set<TopComponent> opened = TopComponent.getRegistry().getOpened();
- opened.forEach((topComponent) -> {
+ for (TopComponent topComponent : opened) {
topComponent.close();
- });
+ }
PerspectiveService perspectiveService = selectedPerspectiveService.getPerspectiveService(PerspectiveEnum.STUDY);
if (perspectiveService != null) {
- //on appelle ce closing sur la perspective STUDY pour delocker éventuellement le fichier etu
closing = perspectiveService.closing();
}
-
JDialog d = new JDialog();
JLabel jLabel = new JLabel(FudaaCrueClosing_Label());
d.setTitle(jLabel.getText());
Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractPerspectiveService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractPerspectiveService.java 2017-01-16 09:18:46 UTC (rev 9519)
+++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractPerspectiveService.java 2017-01-20 09:59:33 UTC (rev 9520)
@@ -8,18 +8,14 @@
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyVetoException;
-import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.Map;
-import java.util.Set;
import org.fudaa.fudaa.crue.common.PerspectiveEnum;
import org.fudaa.fudaa.crue.common.helper.TopComponentHelper;
import org.openide.explorer.ExplorerManager;
import org.openide.nodes.Node;
import org.openide.util.Exceptions;
import org.openide.windows.TopComponent;
-import org.openide.windows.WindowManager;
/**
* Template pour les services Perspective.
@@ -27,7 +23,7 @@
* @author Fred Deniger
*/
public abstract class AbstractPerspectiveService implements PerspectiveService {
-
+
protected static void activateTopComponentAndSetSelection(TopComponent findTopComponent, Node[] saved) {
findTopComponent.requestActive();
if (findTopComponent instanceof ExplorerManager.Provider) {
@@ -36,14 +32,14 @@
if (explorerManager != null) {
explorerManager.setSelectedNodes(saved);
}
-
+
} catch (PropertyVetoException ex) {
Exceptions.printStackTrace(ex);
}
}
-
+
}
-
+
protected static void clearSelection(TopComponent findTopComponent) {
if (findTopComponent instanceof ExplorerManager.Provider) {
try {
@@ -51,13 +47,13 @@
if (explorerManager != null) {
explorerManager.setSelectedNodes(new Node[0]);
}
-
+
} catch (PropertyVetoException ex) {
Exceptions.printStackTrace(ex);
}
}
}
-
+
private final PerspectiveEnum perspective;
private final PropertyChangeSupport propertyChangeSupport;
private PerspectiveState state = PerspectiveState.MODE_READ_ONLY_TEMP;
@@ -72,7 +68,7 @@
this.perspective = perspective;
propertyChangeSupport = new PropertyChangeSupport(this);
}
-
+
@Override
public PerspectiveEnum getPerspective() {
return perspective;
@@ -82,9 +78,14 @@
* R
*/
protected void refreshTopComponents() {
-
+
if (!EventQueue.isDispatchThread()) {
- EventQueue.invokeLater(this::refreshTopComponents);
+ EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ refreshTopComponents();
+ }
+ });
return;
}
TopComponent activated = TopComponent.getRegistry().getActivated();
@@ -106,31 +107,30 @@
activateTopComponentAndSetSelection(activated, saved);
}
activated.requestActive();
-
+
}
}
-
-
+
@Override
public void addStateListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener("state", listener);
}
-
+
@Override
public void removeStateListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener("state", listener);
}
-
+
@Override
public void addDirtyListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener("dirty", listener);
}
-
+
@Override
public void removeDirtyListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener("dirty", listener);
}
-
+
@Override
public PerspectiveState getState() {
return state;
@@ -151,7 +151,7 @@
public boolean isActive() {
return active;
}
-
+
@Override
public boolean deactivate() {
if (isDirty()) {
@@ -163,7 +163,7 @@
}
return true;
}
-
+
@Override
public boolean isDirty() {
return dirty;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-11 22:10:07
|
Revision: 9516
http://sourceforge.net/p/fudaa/svn/9516
Author: deniger
Date: 2017-01-11 22:10:05 +0000 (Wed, 11 Jan 2017)
Log Message:
-----------
javadoc
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractSelectedEMHService.java
trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSelectedEMHService.java
trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportSelectedEMHService.java
Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractSelectedEMHService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractSelectedEMHService.java 2017-01-11 21:53:56 UTC (rev 9515)
+++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractSelectedEMHService.java 2017-01-11 22:10:05 UTC (rev 9516)
@@ -12,33 +12,74 @@
import org.openide.util.lookup.InstanceContent;
/**
- * conserve les UID des EMH sélectionnés
+ * conserve les UID des EMH sélectionnés dans une perspective.
*
+ * <table border="1" cellpadding="3" cellspacing="0" summary="lookups">
+ * <tr>
+ * <th align="left">Lookup</th>
+ * <th align="left">Commentaire</th>
+ * <th align="left">Méthodes utilisant le lookup</th>
+ * </tr>
+ * <tr>
+ * <td>{@link java.lang.Long}: </td>
+ * <td> les uids des EMHS sélectionnés.
+ * </td>
+ * <td>{@link #setSelectedEMHs(java.util.Collection)}, {@link #getSelectedUids()}, {@link #clearContent()}</td>
+ * </tr>
+ * </table>
+ *
* @author Frederic Deniger
*/
public class AbstractSelectedEMHService implements Lookup.Provider {
- private InstanceContent dynamicContent = new InstanceContent();
- private Lookup lookup = new AbstractLookup(dynamicContent);
+ /**
+ * le contenu du lookup du service
+ */
+ private final InstanceContent dynamicContent = new InstanceContent();
+ /**
+ * le lookup du service
+ */
+ private final Lookup lookup = new AbstractLookup(dynamicContent);
+ /**
+ * true si le lookup est en cours de modifications ( vaudra true lors de l'ajout de plusieurs éléments et false à la fin de l'action).
+ */
+ private boolean updating;
+ /**
+ *
+ * @return le lookup du service
+ */
@Override
public Lookup getLookup() {
return lookup;
}
- private boolean updating;
+ /**
+ * @return si la selection est en cours de mise à jour.
+ */
public boolean isUpdating() {
return updating;
}
+ /**
+ * efface la sélection en cours et la remplace par la nouvelle sélection {@code emhs}.
+ * Au cours des opérations {@link #isUpdating()} vaudra true, puis false à la fin de la modification du lookup du service
+ *
+ * @see EMH#getUiId()
+ * @param emhs la nouvelle sélectiond'EMHs ( on récupère les uid).: ne doit pas être null.
+ */
public void setSelectedEMHs(Collection<EMH> emhs) {
+ //on nettoie le contenu actuel.
clearContent();
+ //on ajoute la nouvelle selection
final int size = emhs.size();
+ //en cours de modification si au moins un element à ajouter
if (size > 1) {
updating = true;
}
int idx = 0;
for (EMH emh : emhs) {
+ //pour envoyer un event à la dernière modification
if (++idx == size) {
updating = false;
}
@@ -47,14 +88,24 @@
updating = false;
}
+ /**
+ * efface la sélection en cours et la remplace par la nouvelle sélection {@code emhs}.
+ * Au cours des opérations {@link #isUpdating()} vaudra true, puis false à la fin de la modification du lookup du service
+ *
+ * @param uids la nouvelle sélection d'uid ne doit pas être null
+ */
public void setSelectedUids(Collection<Long> uids) {
+ //on nettoie le contenu actuel.
clearContent();
+ //on ajoute la nouvelle selection
final int size = uids.size();
+ //en cours de modification si au moins un element à ajouter
if (size > 1) {
updating = true;
}
int idx = 0;
for (Long uid : uids) {
+ //pour envoyer un event à la dernière modification
if (++idx == size) {
updating = false;
}
@@ -63,11 +114,19 @@
updating = false;
}
+ /**
+ *
+ * @return ensemble des uid en cours de sélection. Jamais null.
+ */
public Set<Long> getSelectedUids() {
return new HashSet<Long>(lookup.lookupAll(Long.class));
}
- public void clearContent() {
+ /**
+ * Supprime la sélection courante.
+ */
+ private void clearContent() {
+ //on recupere tous les uids sélectionnés et on les enleve du lookup.
Collection<? extends Long> lookupAll = lookup.lookupAll(Long.class);
final int size = lookupAll.size();
if (size > 1) {
@@ -75,6 +134,7 @@
}
int idx = 0;
for (Long uid : lookupAll) {
+ //pour envoyer un event à la dernière modification
if (++idx == size) {
updating = false;
}
Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSelectedEMHService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSelectedEMHService.java 2017-01-11 21:53:56 UTC (rev 9515)
+++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSelectedEMHService.java 2017-01-11 22:10:05 UTC (rev 9516)
@@ -8,13 +8,19 @@
import org.openide.util.lookup.ServiceProvider;
/**
- * conserve les UID des EMH sélectionnés
+ * conserve les UID des EMH sélectionnées. Pour les lookup voir {@link org.fudaa.fudaa.crue.common.services.AbstractSelectedEMHService}.
*
+ * @see org.fudaa.fudaa.crue.common.services.AbstractSelectedEMHService
+ *
* @author Frederic Deniger
*/
@ServiceProvider(service = ModellingSelectedEMHService.class)
public class ModellingSelectedEMHService extends AbstractSelectedEMHService implements Lookup.Provider {
+ /**
+ *
+ * @return le lookup du service
+ */
@Override
public Lookup getLookup() {
return super.getLookup();
Modified: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportSelectedEMHService.java
===================================================================
--- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportSelectedEMHService.java 2017-01-11 21:53:56 UTC (rev 9515)
+++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportSelectedEMHService.java 2017-01-11 22:10:05 UTC (rev 9516)
@@ -8,13 +8,19 @@
import org.openide.util.lookup.ServiceProvider;
/**
- * conserve les UID des EMH sélectionnés
+ * conserve les UID des EMH sélectionnées. Pour les lookup voir {@link org.fudaa.fudaa.crue.common.services.AbstractSelectedEMHService}.
*
+ * @see org.fudaa.fudaa.crue.common.services.AbstractSelectedEMHService
+ *
* @author Frederic Deniger
*/
@ServiceProvider(service = ReportSelectedEMHService.class)
public class ReportSelectedEMHService extends AbstractSelectedEMHService implements Lookup.Provider {
+ /**
+ *
+ * @return le lookup du service
+ */
@Override
public Lookup getLookup() {
return super.getLookup();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-11 16:15:11
|
Revision: 9514
http://sourceforge.net/p/fudaa/svn/9514
Author: deniger
Date: 2017-01-11 16:15:09 +0000 (Wed, 11 Jan 2017)
Log Message:
-----------
CRUE-728: le dialogue n'?\195?\169tait pas ouverte dans le bon mode.
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/DialogHelper.java
Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/DialogHelper.java
===================================================================
--- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/DialogHelper.java 2017-01-11 16:13:29 UTC (rev 9513)
+++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/DialogHelper.java 2017-01-11 16:15:09 UTC (rev 9514)
@@ -157,10 +157,7 @@
Component finalComp;
if (createLayout) {
- // création d'un layout pour le redimensionnement
- JPanel pn = new JPanel();
- pn.setLayout(new BorderLayout());
- pn.add(cpn, BorderLayout.CENTER);
+ JPanel pn = createContainerPanel(cpn);
finalComp = pn;
} else {
finalComp = cpn;
@@ -214,6 +211,19 @@
/**
*
+ * @param cpn
+ * @return un JPanel contenant cpn au centre
+ */
+ public static JPanel createContainerPanel(final Component cpn) {
+ // création d'un layout pour le redimensionnement
+ JPanel pn = new JPanel();
+ pn.setLayout(new BorderLayout());
+ pn.add(cpn, BorderLayout.CENTER);
+ return pn;
+ }
+
+ /**
+ *
* @param pn la panel a afficher
* @param dialogOption voir les options de CtuluDialog pour le dialog
* @param table la table contenue
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2017-01-11 16:13:32
|
Revision: 9513
http://sourceforge.net/p/fudaa/svn/9513
Author: deniger
Date: 2017-01-11 16:13:29 +0000 (Wed, 11 Jan 2017)
Log Message:
-----------
CRUE-728: le dialogue n'?\195?\169tait pas ouverte dans le bon mode.
Modified Paths:
--------------
trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/DialogHelper.java
Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/DialogHelper.java
===================================================================
--- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/DialogHelper.java 2017-01-11 16:07:25 UTC (rev 9512)
+++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/DialogHelper.java 2017-01-11 16:13:29 UTC (rev 9513)
@@ -373,6 +373,14 @@
return DialogDisplayer.getDefault().notify(nd).equals(NotifyDescriptor.YES_OPTION);
}
+ /**
+ *
+ * @param title le titre du dialog.
+ * @param message une string pour le message un JComponent.
+ * @param classToSave utiliser pour generer l'identifiant de persistance.
+ * @param version la version pour la persistence.
+ * @return true si l'utilisateur a valider sa saisie
+ */
public static boolean showQuestionAndSaveDialogConf(String title, Object message, Class classToSave, String version) {
return showQuestionAndSaveDialogConf(title, message, classToSave, null, null, false, version);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|