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: <de...@us...> - 2017-01-11 16:07:28
|
Revision: 9512 http://sourceforge.net/p/fudaa/svn/9512 Author: deniger Date: 2017-01-11 16:07:25 +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 14:03:56 UTC (rev 9511) +++ 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) @@ -106,6 +106,22 @@ } /** + * Création d'un JDialog à partir d'un panel contenant un component + * + * @param cpn le component qui sera le body de la fenêtre + * @param dialogName nom de la fenêtre + * @param dialogTitle titre de la fenêtre + * @param createLayout true s'il faut créer un layout de redimensionnement, false sinon. A mettre a true, si le cpn n'est pas un JPanel. + * @param versionForPersistence utilise pour versionner les préférences et prendre en charge les modifications des contenus. + * @return la JDialog construite, avec ses taille et position chargées si elles ont été précédemment mémorisées + */ + public static JDialog createOKCancelDialog(final Component cpn, final String dialogName, final String dialogTitle, boolean createLayout, + String versionForPersistence) { + return createDialog(cpn, null, dialogName, dialogTitle, DialogDescriptor.OK_CANCEL_OPTION, DialogDescriptor.OK_OPTION, createLayout, null, + versionForPersistence); + } + + /** * Création d'un JDialog à partir d'un panel contenant une JXTable * * @param cpn le component qui sera le body de la fenêtre This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-01-11 14:03:58
|
Revision: 9511 http://sourceforge.net/p/fudaa/svn/9511 Author: deniger Date: 2017-01-11 14:03:56 +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/pom.xml Modified: trunk/soft/fudaa-crue/pom.xml =================================================================== --- trunk/soft/fudaa-crue/pom.xml 2017-01-11 13:46:15 UTC (rev 9510) +++ trunk/soft/fudaa-crue/pom.xml 2017-01-11 14:03:56 UTC (rev 9511) @@ -423,6 +423,14 @@ </reportSet> </reportSets> </plugin> + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>javancss-maven-plugin</artifactId> + <version>2.1</version> + </plugin> + + </plugins> </reporting> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-01-11 13:46:17
|
Revision: 9510 http://sourceforge.net/p/fudaa/svn/9510 Author: deniger Date: 2017-01-11 13:46:15 +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-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/RapportPropertyEditorSupport.java Modified: trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/RapportPropertyEditorSupport.java =================================================================== --- trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/RapportPropertyEditorSupport.java 2017-01-11 13:05:36 UTC (rev 9509) +++ trunk/soft/fudaa-crue/ui-otfa/src/main/java/org/fudaa/fudaa/crue/otfa/property/RapportPropertyEditorSupport.java 2017-01-11 13:46:15 UTC (rev 9510) @@ -6,8 +6,10 @@ import org.fudaa.dodico.crue.projet.otfa.OtfaCampagneItem; import org.fudaa.dodico.crue.projet.otfa.OtfaCampagneLine; import org.fudaa.fudaa.crue.common.helper.DialogHelper; +import org.fudaa.fudaa.crue.otfa.perspective.PerspectiveServiceOtfa; import org.openide.explorer.propertysheet.ExPropertyEditor; import org.openide.explorer.propertysheet.PropertyEnv; +import org.openide.util.Lookup; import org.openide.util.NbBundle; /** @@ -21,6 +23,8 @@ private final OtfaCampagneLine campagneligne; private PropertyEnv env; + PerspectiveServiceOtfa perspectiveServiceOtfa = Lookup.getDefault().lookup(PerspectiveServiceOtfa.class); + public RapportPropertyEditorSupport(OtfaCampagne campagne, OtfaCampagneLine ligne, OtfaCampagneItem item) { this.campagne = campagne; this.campagneligne = ligne; @@ -46,9 +50,14 @@ @Override public Component getCustomEditor() { - // encapsulation dans un JDialog pour pouvoir gérer la persistence - return DialogHelper.createCloseDialog(new RapportCustomEditor(this, env).getComponent(), this.getClass().getName(), NbBundle.getMessage( - RapportPropertyEditorSupport.class, "rapportsDisplayerTitle"), false, DialogHelper.NO_VERSION_FOR_PERSISTENCE); + if (perspectiveServiceOtfa.isInEditMode()) { + return DialogHelper.createOKCancelDialog(new RapportCustomEditor(this, env).getComponent(), this.getClass().getName(), NbBundle.getMessage( + RapportPropertyEditorSupport.class, "rapportsDisplayerTitle"), false, env, DialogHelper.NO_VERSION_FOR_PERSISTENCE); + } else { + // encapsulation dans un JDialog pour pouvoir gérer la persistence + return DialogHelper.createCloseDialog(new RapportCustomEditor(this, env).getComponent(), this.getClass().getName(), NbBundle.getMessage( + RapportPropertyEditorSupport.class, "rapportsDisplayerTitle"), false, DialogHelper.NO_VERSION_FOR_PERSISTENCE); + } } @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-01-11 13:05:39
|
Revision: 9509 http://sourceforge.net/p/fudaa/svn/9509 Author: deniger Date: 2017-01-11 13:05:36 +0000 (Wed, 11 Jan 2017) Log Message: ----------- https://fudaa-project.atlassian.net/browse/CRUE-683 Modified Paths: -------------- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSaveScenarioCallable.java Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSaveScenarioCallable.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSaveScenarioCallable.java 2017-01-11 11:35:15 UTC (rev 9508) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSaveScenarioCallable.java 2017-01-11 13:05:36 UTC (rev 9509) @@ -112,6 +112,11 @@ final CtuluLog uiOcalLog = res.createNewLog("loader.writeUiOcal"); final EMHProjet projet = modellingScenarioServiceImpl.getSelectedProjet(); final File uiOcalFile = projet.getInfos().getUiOCALFile(managerScenarioLoaded); + //on créé le dossier parent s'il n'existe pas. + File parentDir = uiOcalFile.getParentFile(); + if (parentDir != null && !parentDir.exists()) { + parentDir.mkdirs(); + } String error = CtuluLibFile.canWrite(uiOcalFile); if (error != null) { uiOcalLog.addSevereError(error); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-01-11 09:18:13
|
Revision: 9507 http://sourceforge.net/p/fudaa/svn/9507 Author: deniger Date: 2017-01-11 09:18:11 +0000 (Wed, 11 Jan 2017) Log Message: ----------- correction sur le parcours de listes Modified Paths: -------------- trunk/soft/fudaa-crue/pom.xml Modified: trunk/soft/fudaa-crue/pom.xml =================================================================== --- trunk/soft/fudaa-crue/pom.xml 2017-01-10 16:13:53 UTC (rev 9506) +++ trunk/soft/fudaa-crue/pom.xml 2017-01-11 09:18:11 UTC (rev 9507) @@ -400,6 +400,7 @@ <version>2.9</version> <configuration> <!-- Default configuration for all reports --> + <stylesheetfile>http://docs.oracle.com/javase/7/docs/api/stylesheet.css</stylesheetfile> </configuration> <reportSets> <reportSet> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-10 16:13:56
|
Revision: 9506 http://sourceforge.net/p/fudaa/svn/9506 Author: bmarchan Date: 2017-01-10 16:13:53 +0000 (Tue, 10 Jan 2017) Log Message: ----------- LSPIV : Diff?\195?\169rents correctifs sur rapport de jaugeage Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 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/metier/PivComputeParameters.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2017-01-10 16:12:51 UTC (rev 9505) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2017-01-10 16:13:53 UTC (rev 9506) @@ -205,8 +205,7 @@ public void setFilterValues(PivComputeParameters _params) { if (_params==null) return; - if (_params.getMinCorrelation()==PivUtils.FORTRAN_DOUBLE_MIN && - _params.getMaxCorrelation()==PivUtils.FORTRAN_DOUBLE_MAX) { + if (!_params.isCorrelationFiltered()) { cbCorrelFlt_.setSelected(false); tfCorrelMinLimit_.setText("0."); tfCorrelMaxLimit_.setText("1."); @@ -217,13 +216,7 @@ tfCorrelMaxLimit_.setText(""+_params.getMaxCorrelation()); } - if (_params.getSmin()==PivUtils.FORTRAN_DOUBLE_MIN && - _params.getSmax()==PivUtils.FORTRAN_DOUBLE_MAX && - _params.getVxmin()==PivUtils.FORTRAN_DOUBLE_MIN && - _params.getVxmax()==PivUtils.FORTRAN_DOUBLE_MAX && - _params.getVymin()==PivUtils.FORTRAN_DOUBLE_MIN && - _params.getVymax()==PivUtils.FORTRAN_DOUBLE_MAX - ) { + if (!_params.isVelocityFiltered()) { cbVelFlt_.setSelected(false); tfNormalMinLimit_.setText("0."); tfNormalMaxLimit_.setText(""+_params.getSmax()); 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-01-10 16:12:51 UTC (rev 9505) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2017-01-10 16:13:53 UTC (rev 9506) @@ -58,21 +58,21 @@ case 0: return PivResource.getS("N\xB0"); case 1: - return PivResource.getS("D\xE9bit total (m\xB3/s)"); + return PivResource.getS("<html>D\xE9bit total (m\xB3/s)</html>"); case 2: - return PivResource.getS("Ecart (%)"); + return PivResource.getS("<html>Ecart (%)</html>"); case 3: - return PivResource.getS("Aire mouill\xE9e (m\xB2)"); + return PivResource.getS("<html>Aire mouill\xE9e (m\xB2)</html>"); case 4: - return PivResource.getS("Ecart (%)"); + return PivResource.getS("<html>Ecart (%)</html>"); case 5: - return PivResource.getS("Vit. moy. (m/s)"); + return PivResource.getS("<html>Vit. moy. (m/s)</html>"); case 6: - return PivResource.getS("Ecart (%)"); + return PivResource.getS("<html>Ecart (%)</html>"); case 7: - return PivResource.getS("D\xE9bit mesur\xE9 (m\xB3/s)"); + return PivResource.getS("<html>D\xE9bit mesur\xE9 (m\xB3/s)</html>"); case 8: - return PivResource.getS("Ecart (%)"); + return PivResource.getS("<html>D\xE9bit mesur\xE9 / D\xE9bit total (%)</html>"); } } @@ -109,8 +109,8 @@ case 7: return rowIndex==res_.length? meanMeasuredDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); case 8: - val=rowIndex==res_.length? meanMeasuredDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); - return (val-meanMeasuredDisch_)/meanMeasuredDisch_*100; + val=rowIndex==res_.length? meanMeasuredDisch_/meanDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE)/res_[rowIndex].getDischarge(); + return val*100; } } @@ -164,7 +164,11 @@ tbResults.getColumnModel().getColumn(2).setMaxWidth(70); tbResults.getColumnModel().getColumn(4).setMaxWidth(70); tbResults.getColumnModel().getColumn(6).setMaxWidth(70); - tbResults.getColumnModel().getColumn(8).setMaxWidth(70); + // Customization pour avoir le titre sur 2 lignes. + tbResults.getTableHeader().setPreferredSize( + new Dimension(tbResults.getColumnModel().getTotalColumnWidth(), 40)); + ((JLabel)tbResults.getTableHeader().getDefaultRenderer()).setVerticalAlignment(JLabel.TOP); + JScrollPane spResults=new JScrollPane(); spResults.getViewport().add(tbResults); spResults.setPreferredSize(new Dimension(850,200)); 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-01-10 16:12:51 UTC (rev 9505) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2017-01-10 16:13:53 UTC (rev 9506) @@ -155,6 +155,9 @@ } try { + // Nettoie les valeurs \xE0 chaque changement du nom de projet. + if (isProjectFileModified()) + userVars.clear(); computeNeededDatas(); HashMap<String, AbstractCellData> systemDatas=defineSystemVariables(); @@ -343,7 +346,7 @@ } // Changement de projet => On change le nom du rapport - if (!impl.getSavedProjectFile().equals(projectFile_)) { + if (isProjectFileModified()) { projectFile_=impl.getSavedProjectFile(); String fsave=projectFile_.getName(); @@ -400,7 +403,8 @@ final HashMap<String,Object> imgOptions = new HashMap<>(); imgOptions.put(CtuluLibImage.PARAMS_FILL_BACKGROUND_BOOLEAN, Boolean.FALSE); - final DecimalFormat fmtStd = CtuluLib.getDecimalFormat(3); + final DecimalFormat fmt3Digit = CtuluLib.getDecimalFormat(3); + final DecimalFormat fmt1Digit = CtuluLib.getDecimalFormat(1); final DecimalFormat fmtEcart = CtuluLib.getNoEffectDecimalFormat(); fmtEcart.setMaximumFractionDigits(1); fmtEcart.setMinimumFractionDigits(1); @@ -409,29 +413,48 @@ fmtExp.setMaximumFractionDigits(3); fmtExp.setMinimumFractionDigits(2); - systemVars_.put("__COEF_VITESSE",new AbstractScalarCellData() { + systemVars_.put("__COEF_VITESSE_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - // On prend le coef de vitesse du premier transect, s'il existe - return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getSurfaceCoef(),null); + if (transects==null || transects.length==0) + return null; + + double val=Double.NEGATIVE_INFINITY; + for (PivTransect trans : transects) { + val=Math.max(val, trans.getParams().getSurfaceCoef()); + } + return format(fmt3Digit,val,null); } }); + systemVars_.put("__COEF_VITESSE_MIN", new AbstractScalarCellData() { + @Override + public String getValue(int _row, int _col) { + if (transects==null || transects.length==0) + return null; + + double val=Double.POSITIVE_INFINITY; + for (PivTransect trans : transects) { + val=Math.min(val, trans.getParams().getSurfaceCoef()); + } + return format(fmt3Digit,val,null); + } + }); systemVars_.put("__CORREL_MAX",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:""+format(fmtStd,pivParams.getMaxCorrelation(),null); + return pivParams==null || !pivParams.isCorrelationFiltered() ? null:""+format(fmt3Digit,pivParams.getMaxCorrelation(),null); } }); systemVars_.put("__CORREL_MIN",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:""+format(fmtStd,pivParams.getMinCorrelation(),null); + return pivParams==null || !pivParams.isCorrelationFiltered() ? null:""+format(fmt3Digit,pivParams.getMinCorrelation(),null); } }); systemVars_.put("__DEBIT_MOYEN",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return meanDisch==null ? null:format(fmtStd,meanDisch,"m\xB3/s"); + return meanDisch==null ? null:format(fmt3Digit,meanDisch,"m\xB3/s"); } }); systemVars_.put("__ERREUR_MAX",new AbstractScalarCellData() { @@ -444,19 +467,19 @@ for (PivOrthoPoint pt : orthoPoints) { maxi=Math.max(maxi, pt.getError()); } - return format(fmtStd,maxi,"m"); + return format(fmt3Digit,maxi,"m"); } }); systemVars_.put("__HAUTEUR",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:format(fmtStd,orthoParams.getWaterElevation(),"m"); + return orthoParams==null ? null:format(fmt3Digit,orthoParams.getWaterElevation(),"m"); } }); systemVars_.put("__IA_M",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return (pivParams==null || orthoParams==null) ? null:format(fmtStd,pivParams.getIASize()*orthoParams.getResolution(),"m"); + return (pivParams==null || orthoParams==null) ? null:format(fmt3Digit,pivParams.getIASize()*orthoParams.getResolution(),"m"); } }); systemVars_.put("__IA_PIX",new AbstractScalarCellData() { @@ -468,7 +491,7 @@ systemVars_.put("__INTERTEMPS",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:format(fmtStd,pivParams.getTimeInterval(),"s"); + return pivParams==null ? null:format(fmt3Digit,pivParams.getTimeInterval(),"s"); } }); systemVars_.put("__NOM_PROJET",new AbstractScalarCellData() { @@ -489,6 +512,12 @@ return ""+impl.getCurrentProject().getSrcImageFiles().length; } }); + systemVars_.put("__NOMBRE_IMAGES_SECONDE", new AbstractScalarCellData() { + @Override + public String getValue(int _row, int _col) { + return pivParams==null ? null:format(fmt3Digit,1./pivParams.getTimeInterval(),null); + } + }); systemVars_.put("__NOMBRE_TRANSECTS", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { @@ -498,40 +527,77 @@ systemVars_.put("__NORME_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:format(fmtStd,pivParams.getSmax(),"m/s"); + return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit,pivParams.getSmax(),"m/s"); } }); systemVars_.put("__NORME_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:format(fmtStd,pivParams.getSmin(),"m/s"); + return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit,pivParams.getSmin(),"m/s"); } }); - systemVars_.put("__PAS_INTERPOLATION", new AbstractScalarCellData() { + systemVars_.put("__PAS_INTERPOLATION_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - // On prend le pas du premier transect, s'il existe - return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getInterpolationStep(),"m"); + if (transects==null || transects.length==0) + return null; + + double val=Double.NEGATIVE_INFINITY; + for (PivTransect trans : transects) { + val=Math.max(val, trans.getParams().getInterpolationStep()); + } + return format(fmt3Digit,val,"m"); } }); + systemVars_.put("__PAS_INTERPOLATION_MIN", new AbstractScalarCellData() { + @Override + public String getValue(int _row, int _col) { + if (transects==null || transects.length==0) + return null; + + double val=Double.POSITIVE_INFINITY; + for (PivTransect trans : transects) { + val=Math.min(val, trans.getParams().getInterpolationStep()); + } + return format(fmt3Digit,val,"m"); + } + }); systemVars_.put("__RATIO_DEBIT_MESURE", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return meanMeasuredDisch==null ? null:meanMeasuredDisch/meanDisch*100+" %"; + return meanMeasuredDisch==null ? null:format(fmt1Digit,meanMeasuredDisch/meanDisch*100, "%"); } }); - systemVars_.put("__RAYON_RECHERCHE", new AbstractScalarCellData() { + systemVars_.put("__RAYON_RECHERCHE_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - // On prend le rayon du premier transect, s'il existe - return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getRadius(),"m"); + if (transects==null || transects.length==0) + return null; + + double val=Double.NEGATIVE_INFINITY; + for (PivTransect trans : transects) { + val=Math.max(val, trans.getParams().getRadius()); + } + return format(fmt3Digit,val,"m"); } }); + systemVars_.put("__RAYON_RECHERCHE_MIN", new AbstractScalarCellData() { + @Override + public String getValue(int _row, int _col) { + if (transects==null || transects.length==0) + return null; + + double val=Double.POSITIVE_INFINITY; + for (PivTransect trans : transects) { + val=Math.min(val, trans.getParams().getRadius()); + } + return format(fmt3Digit,val,"m"); + } + }); systemVars_.put("__RESOLUTION", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - // On prend le rayon du premier transect, s'il existe - return orthoParams==null ? null:format(fmtStd,orthoParams.getResolution(),"m/pix"); + return orthoParams==null ? null:format(fmt3Digit,orthoParams.getResolution(),"m/pix"); } }); systemVars_.put("__TB_RESULTATS_DEBIT", new AbstractCellData() { @@ -540,39 +606,43 @@ if (flowResults==null || flowResults.length==0) return null; + // Une ligne blanche entre les r\xE9sultats et la moyenne + if (rowIndex==flowResults.length) + return ""; + Double val; switch (_col) { default: case 0: - return rowIndex==flowResults.length? PivResource.getS("Moyenne"):""+(rowIndex+1); + return rowIndex==flowResults.length+1? PivResource.getS("Moyenne"):""+(rowIndex+1); case 1: - val=rowIndex==flowResults.length? meanDisch:flowResults[rowIndex].getDischarge(); - return format(fmtStd, val,null); + val=rowIndex==flowResults.length+1? meanDisch:flowResults[rowIndex].getDischarge(); + return format(fmt3Digit, val,null); case 2: - val=rowIndex==flowResults.length? meanDisch:flowResults[rowIndex].getDischarge(); + val=rowIndex==flowResults.length+1? meanDisch:flowResults[rowIndex].getDischarge(); val = (val-meanDisch)/meanDisch*100; return format(fmtEcart, val,null); case 3: - val = rowIndex==flowResults.length? meanArea:flowResults[rowIndex].getWettedArea(); - return format(fmtStd, val,null); + val = rowIndex==flowResults.length+1? meanArea:flowResults[rowIndex].getWettedArea(); + return format(fmt3Digit, val,null); case 4: - val=rowIndex==flowResults.length? meanArea:flowResults[rowIndex].getWettedArea(); + val=rowIndex==flowResults.length+1? meanArea:flowResults[rowIndex].getWettedArea(); val = (val-meanArea)/meanArea*100; return format(fmtEcart, val,null); case 5: - val = rowIndex==flowResults.length? meanMeanV:flowResults[rowIndex].getMeanVelocity(); - return format(fmtStd, val,null); + val = rowIndex==flowResults.length+1? meanMeanV:flowResults[rowIndex].getMeanVelocity(); + return format(fmt3Digit, val,null); case 6: - val=rowIndex==flowResults.length? meanMeanV:flowResults[rowIndex].getMeanVelocity(); + val=rowIndex==flowResults.length+1? meanMeanV:flowResults[rowIndex].getMeanVelocity(); val = (val-meanMeanV)/meanMeanV*100; return format(fmtEcart, val,null); case 7: - val = rowIndex==flowResults.length? meanMeasuredDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); - return format(fmtStd, val,null); + val = rowIndex==flowResults.length+1? meanMeasuredDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); + return format(fmt3Digit, val,null); case 8: - val=rowIndex==flowResults.length? meanMeasuredDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); - val = (val-meanMeasuredDisch)/meanMeasuredDisch*100; + val=rowIndex==flowResults.length+1? meanMeasuredDisch/meanDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE)/flowResults[rowIndex].getDischarge(); + val*=100; return format(fmtEcart, val,null); } } @@ -584,7 +654,7 @@ @Override public int getNbRows() { - return transects==null ? 0 : transects.length+1; + return transects==null ? 0 : transects.length+2; } }); systemVars_.put("__SIM_MS", new AbstractScalarCellData() { @@ -599,7 +669,7 @@ val = orthoParams.getResolution()*pivParams.getSim()/pivParams.getTimeInterval(); } - return format(fmtStd, val,"m/s"); + return format(fmt3Digit, val,"m/s"); } return null; } @@ -622,7 +692,7 @@ val = orthoParams.getResolution()*pivParams.getSip()/pivParams.getTimeInterval(); } - return format(fmtStd, val,"m/s"); + return format(fmt3Digit, val,"m/s"); } return null; } @@ -645,7 +715,7 @@ val = orthoParams.getResolution()*pivParams.getSjm()/pivParams.getTimeInterval(); } - return format(fmtStd, val,"m/s"); + return format(fmt3Digit, val,"m/s"); } return null; } @@ -668,7 +738,7 @@ val = orthoParams.getResolution()*pivParams.getSjp()/pivParams.getTimeInterval(); } - return format(fmtStd, val,"m/s"); + return format(fmt3Digit, val,"m/s"); } return null; } @@ -731,49 +801,49 @@ systemVars_.put("__VX_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:format(fmtStd, pivParams.getVxmax(), "m/s"); + return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit, pivParams.getVxmax(), "m/s"); } }); systemVars_.put("__VX_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:format(fmtStd, pivParams.getVxmin(), "m/s"); + return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit, pivParams.getVxmin(), "m/s"); } }); systemVars_.put("__VY_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:format(fmtStd, pivParams.getVymax(),"m/s"); + return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit, pivParams.getVymax(),"m/s"); } }); systemVars_.put("__VY_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:format(fmtStd, pivParams.getVymin(),"m/s"); + return pivParams==null || !pivParams.isVelocityFiltered() ? null:format(fmt3Digit, pivParams.getVymin(),"m/s"); } }); systemVars_.put("__X_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:format(fmtStd, orthoParams.getXmax(),"m"); + return orthoParams==null ? null:format(fmt3Digit, orthoParams.getXmax(),"m"); } }); systemVars_.put("__X_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:format(fmtStd, orthoParams.getXmin(),"m"); + return orthoParams==null ? null:format(fmt3Digit, orthoParams.getXmin(),"m"); } }); systemVars_.put("__Y_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:format(fmtStd, orthoParams.getYmax(),"m"); + return orthoParams==null ? null:format(fmt3Digit, orthoParams.getYmax(),"m"); } }); systemVars_.put("__Y_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:format(fmtStd, orthoParams.getYmin(),"m"); + return orthoParams==null ? null:format(fmt3Digit, orthoParams.getYmin(),"m"); } }); @@ -806,6 +876,13 @@ } return ret; } + + /** + * @return True si le nom du projet a \xE9t\xE9 modifi\xE9. + */ + private boolean isProjectFileModified() { + return !impl.getSavedProjectFile().equals(projectFile_); + } /** * @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement. Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2017-01-10 16:12:51 UTC (rev 9505) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2017-01-10 16:13:53 UTC (rev 9506) @@ -254,4 +254,24 @@ public GrPoint getIACenterPosition() { return ptCenter; } + + /** + * @return True si les vitesses sont filtr\xE9es + */ + public boolean isVelocityFiltered() { + return smin != PivUtils.FORTRAN_DOUBLE_MIN || + smax != PivUtils.FORTRAN_DOUBLE_MAX || + vxmin != PivUtils.FORTRAN_DOUBLE_MIN || + vxmax != PivUtils.FORTRAN_DOUBLE_MAX || + vymin != PivUtils.FORTRAN_DOUBLE_MIN || + vymax != PivUtils.FORTRAN_DOUBLE_MAX; + } + + /** + * @return True si la correlation est filtr\xE9e + */ + public boolean isCorrelationFiltered() { + return minCorrelation != PivUtils.FORTRAN_DOUBLE_MIN || + maxCorrelation != PivUtils.FORTRAN_DOUBLE_MAX; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-10 16:12:53
|
Revision: 9505 http://sourceforge.net/p/fudaa/svn/9505 Author: bmarchan Date: 2017-01-10 16:12:51 +0000 (Tue, 10 Jan 2017) Log Message: ----------- LSPIV : Rapport de jaugeage en anglais Modified Paths: -------------- trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_en.xlsx trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx 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) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-10 10:28:50
|
Revision: 9504 http://sourceforge.net/p/fudaa/svn/9504 Author: bmarchan Date: 2017-01-10 10:28:48 +0000 (Tue, 10 Jan 2017) Log Message: ----------- Nom par defaut de rapport de jaugeage 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/action/PivExportGaugingReportAction.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-09 19:45:47 UTC (rev 9503) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-10 10:28:48 UTC (rev 9504) @@ -155,6 +155,17 @@ public File getCurrentProjectFile() { return prjFile; } + + /** + * @return Le nom par default pour la sauvegarde. Si le nom courant est null, renvoie un nom par defaut. + */ + public File getSavedProjectFile() { + if (getCurrentProjectFile()==null) + return new File("fudaa-lspiv.lspiv.zip"); + else { + return getCurrentProjectFile(); + } + } /** * Appel\xE9e quand le projet courant est modifi\xE9. 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-01-09 19:45:47 UTC (rev 9503) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2017-01-10 10:28:48 UTC (rev 9504) @@ -12,6 +12,7 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.DecimalFormat; @@ -38,6 +39,7 @@ import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.CtuluLibFile; import org.fudaa.ctulu.CtuluLibImage; import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluFileChooser; @@ -56,6 +58,7 @@ import org.fudaa.fudaa.piv.metier.PivGlobalFlowResults; 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.ResultType; import org.fudaa.fudaa.piv.metier.PivTransect; @@ -127,6 +130,8 @@ CtuluFileChooser fcReport_; /** Les variables users (inconnues du systeme) du modele Excel. */ HashMap<String,UserCellData> userVars=new HashMap<>(); + /** Le nom fichier projet pour changer le nom du rapport. */ + File projectFile_; /** * Constructeur. @@ -314,25 +319,45 @@ sheet.enableLocking(); } - if (fcReport_ == null) { - fcReport_=new CtuluFileChooser(true); - fcReport_.setTester(new CtuluFileChooserTestWritable(impl)); - fcReport_.setAcceptAllFileFilterUsed(true); - fcReport_.setFileFilter(PivUtils.FILE_FLT_XLSX); - fcReport_.setMultiSelectionEnabled(false); - fcReport_.setDialogTitle(PivResource.getS("Ficher Excel d'export")); - } - if (fcReport_.showSaveDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) { - return; - } - - wb.write(new FileOutputStream(fcReport_.getSelectedFile())); + saveReport(wb); } catch (Exception e) { e.printStackTrace(); } } + + /** + * Sauve le rapport sur le fichier selectionn\xE9. + * @param wb + * @throws IOException + */ + protected void saveReport(Workbook wb) throws IOException { + + if (fcReport_ == null) { + fcReport_=new CtuluFileChooser(true); + fcReport_.setTester(new CtuluFileChooserTestWritable(impl)); + fcReport_.setAcceptAllFileFilterUsed(true); + fcReport_.setFileFilter(PivUtils.FILE_FLT_XLSX); + fcReport_.setMultiSelectionEnabled(false); + fcReport_.setDialogTitle(PivResource.getS("Ficher Excel d'export")); + } + // Changement de projet => On change le nom du rapport + if (!impl.getSavedProjectFile().equals(projectFile_)) { + projectFile_=impl.getSavedProjectFile(); + + String fsave=projectFile_.getName(); + fsave=fsave.substring(0, fsave.indexOf(PivUtils.FILE_FLT_PROJ.getFirstExt()) - 1); + fcReport_.setSelectedFile(new File(fsave + "_" + PivResource.getS("rapport") + ".xlsx")); + } + + if (fcReport_.showSaveDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) { + return; + } + + wb.write(new FileOutputStream(fcReport_.getSelectedFile())); + } + /** * Calcule les donn\xE9es non stock\xE9es dans le projet, necessaires \xE0 la r\xE9alisation du template. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-09 19:45:49
|
Revision: 9503 http://sourceforge.net/p/fudaa/svn/9503 Author: bmarchan Date: 2017-01-09 19:45:47 +0000 (Mon, 09 Jan 2017) Log Message: ----------- Custom panneau de liste Modified Paths: -------------- trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluListEditorPanel.java Modified: trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluListEditorPanel.java =================================================================== --- trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluListEditorPanel.java 2017-01-09 19:45:02 UTC (rev 9502) +++ trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluListEditorPanel.java 2017-01-09 19:45:47 UTC (rev 9503) @@ -122,43 +122,43 @@ buildMonterButton(); } if (action) { - final BuPanel pnBt = new BuPanel(); - pnBt.setName("pnBt"); - pnBt.setLayout(new BuVerticalLayout(5, true, false)); + pnBt_=new BuPanel(); + pnBt_.setName("pnBt"); + pnBt_.setLayout(new BuVerticalLayout(5, true, false)); boolean sep = false; if (btAjouter_ != null) { sep = true; - addBtAdd(pnBt); + addBtAdd(pnBt_); } if (btInserer_ != null) { sep = true; - pnBt.add(btInserer_); + pnBt_.add(btInserer_); } if (btSupprimer_ != null) { sep = true; - pnBt.add(btSupprimer_); + pnBt_.add(btSupprimer_); } if (btCopy_ != null) { sep = true; - pnBt.add(btCopy_); + pnBt_.add(btCopy_); } if (btMonter_ != null) { sep = true; - pnBt.add(btMonter_); + pnBt_.add(btMonter_); } if (btDescendre_ != null) { sep = true; - pnBt.add(btDescendre_); + pnBt_.add(btDescendre_); } if (btModifier_ != null) { if (sep) { - pnBt.add(new BuSeparator()); + pnBt_.add(new BuSeparator()); } - pnBt.add(btModifier_); + pnBt_.add(btModifier_); } table_.addMouseListener(this); updateActionsState(); - add(pnBt, BuBorderLayout.EAST); + add(pnBt_, BuBorderLayout.EAST); } } @@ -167,6 +167,14 @@ _pn.add(btAjouter_); } } + + /** + * Pour ajouter un bouton au panneau liste. + * @param _bt Le bouton. + */ + public void addButton(AbstractButton _bt) { + pnBt_.add(_bt); + } public void initCellRendererEditor() { final TableColumnModel colModel = table_.getColumnModel(); @@ -271,6 +279,8 @@ JButton btDescendre_; + protected BuPanel pnBt_; + protected void buildMonterButton() { btMonter_ = buildButton(CtuluResource.CTULU.getIcon("monter"), CtuluLib.getS("Monter"), "MONTER", CtuluLib .getS("Monter l'objet s\xE9lecionn\xE9"), 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-09 19:45:04
|
Revision: 9502 http://sourceforge.net/p/fudaa/svn/9502 Author: bmarchan Date: 2017-01-09 19:45:02 +0000 (Mon, 09 Jan 2017) Log Message: ----------- Ajout de status de sortie sur les methodes runProgram() Modified Paths: -------------- trunk/framework/ctulu-fu/src/main/java/com/memoire/fu/FuLib.java Modified: trunk/framework/ctulu-fu/src/main/java/com/memoire/fu/FuLib.java =================================================================== --- trunk/framework/ctulu-fu/src/main/java/com/memoire/fu/FuLib.java 2017-01-09 19:44:22 UTC (rev 9501) +++ trunk/framework/ctulu-fu/src/main/java/com/memoire/fu/FuLib.java 2017-01-09 19:45:02 UTC (rev 9502) @@ -56,6 +56,9 @@ private static final boolean DEBUG = Fu.DEBUG && true; private static final boolean TRACE = Fu.TRACE && true; + /** Le statut d'exit de la derniere execution d'un processus externe */ + public static int lastRunStatus = 0; + public static final String DEFAULT_ENCODING = getSystemProperty("file.encoding"); public static void sleep(long _delay) { @@ -1080,7 +1083,7 @@ thread.setPriority(Math.max(Thread.MIN_PRIORITY, Thread.currentThread().getPriority() - 1)); thread.start(); try { - proc.waitFor(); + lastRunStatus=proc.waitFor(); } catch (InterruptedException ex) {} exited[0] = true; try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-09 19:44:25
|
Revision: 9501 http://sourceforge.net/p/fudaa/svn/9501 Author: bmarchan Date: 2017-01-09 19:44:22 +0000 (Mon, 09 Jan 2017) Log Message: ----------- Corrections compilation Modified Paths: -------------- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/trace/BConfigureTraceBox.java Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/trace/BConfigureTraceBox.java =================================================================== --- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/trace/BConfigureTraceBox.java 2017-01-09 17:22:31 UTC (rev 9500) +++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/trace/BConfigureTraceBox.java 2017-01-09 19:44:22 UTC (rev 9501) @@ -80,7 +80,7 @@ m.pack(); m.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); SwingUtilities.invokeLater( new Runnable() { - @Override public void run() { + public void run() { m.setVisible(true); } }); @@ -230,7 +230,7 @@ m.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); SwingUtilities.invokeLater( new Runnable() { - @Override public void run() { + public void run() { m.setVisible(true); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-09 17:22:34
|
Revision: 9500 http://sourceforge.net/p/fudaa/svn/9500 Author: bmarchan Date: 2017-01-09 17:22:31 +0000 (Mon, 09 Jan 2017) Log Message: ----------- LSPIV : Import vid?\195?\169o par ffmpeg Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivManageOriginalFilesPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 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/PivSelectImagesAction.java 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/metier/PivProjectPersistence.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2017-01-09 11:12:07 UTC (rev 9499) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2017-01-09 17:22:31 UTC (rev 9500) @@ -357,111 +357,6 @@ _params.setTimeInterval(Double.parseDouble(tfTemps.getText().trim())); } - /** - * Controle que la valeur du champ de nom donn\xE9 est un entier positif. - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - private boolean isPositiveInteger(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - int val=Integer.parseInt(_sval.trim()); - bok=val>=0; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier >= 0",_param)); - return false; - } - return true; - } - - /** - * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif. - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - private boolean isPositiveReal(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - double val=Double.parseDouble(_sval.trim()); - bok=val>=0; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el >= 0",_param)); - return false; - } - return true; - } - - /** - * Controle que la valeur du champ de nom donn\xE9 est un entier positif. - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - private boolean isStrictPositiveInteger(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - int val=Integer.parseInt(_sval.trim()); - bok=val>0; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier > 0",_param)); - return false; - } - return true; - } - - /** - * Controle que la valeur du champ de nom donn\xE9 est un entier . - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - private boolean isInteger(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - Integer.parseInt(_sval.trim()); - bok=true; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier",_param)); - return false; - } - return true; - } - - /** - * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif. - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - private boolean isStrictPositiveReal(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - double val=Double.parseDouble(_sval.trim()); - bok=val>0; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el > 0",_param)); - return false; - } - return true; - } - @Override public boolean isDataValid() { boolean bposx=!tfPosX.getText().trim().isEmpty(); @@ -473,20 +368,20 @@ } boolean bok= - isStrictPositiveReal(tfNbImgSec.getText(),PivResource.getS("Nombre d'images par secondes")) && - isStrictPositiveReal(tfTemps.getText(),PivResource.getS("Intervalle de temps")) && - isStrictPositiveReal(tfIASize.getText(),PivResource.getS("Taille de l'aire")+" (m)") && - isStrictPositiveInteger(tfIASizePix.getText(),PivResource.getS("Taille de l'aire")+" (pix)") && - (!bposx || isInteger(tfPosX.getText(), PivResource.getS("Position J"))) && - (!bposy || isInteger(tfPosY.getText(), PivResource.getS("Position I"))) && - isPositiveReal(tfSim.getText(),PivResource.getS("Sim")+" (m/s)") && - isPositiveReal(tfSip.getText(),PivResource.getS("Sip")+" (m/s)") && - isPositiveReal(tfSjm.getText(),PivResource.getS("Sjm")+" (m/s)") && - isPositiveReal(tfSjp.getText(),PivResource.getS("Sjp")+" (m/s)") && - isPositiveInteger(tfSimPix.getText(),PivResource.getS("Sim")+" (pix)") && - isPositiveInteger(tfSipPix.getText(),PivResource.getS("Sip")+" (pix)") && - isPositiveInteger(tfSjmPix.getText(),PivResource.getS("Sjm")+" (pix)") && - isPositiveInteger(tfSjpPix.getText(),PivResource.getS("Sjp")+" (pix)") + PivUtils.isStrictPositiveReal(this,tfNbImgSec.getText(),PivResource.getS("Nombre d'images par secondes")) && + PivUtils.isStrictPositiveReal(this,tfTemps.getText(),PivResource.getS("Intervalle de temps")) && + PivUtils.isStrictPositiveReal(this,tfIASize.getText(),PivResource.getS("Taille de l'aire")+" (m)") && + PivUtils.isStrictPositiveInteger(this,tfIASizePix.getText(),PivResource.getS("Taille de l'aire")+" (pix)") && + (!bposx || PivUtils.isInteger(this,tfPosX.getText(), PivResource.getS("Position J"))) && + (!bposy || PivUtils.isInteger(this,tfPosY.getText(), PivResource.getS("Position I"))) && + PivUtils.isPositiveReal(this,tfSim.getText(),PivResource.getS("Sim")+" (m/s)") && + PivUtils.isPositiveReal(this,tfSip.getText(),PivResource.getS("Sip")+" (m/s)") && + PivUtils.isPositiveReal(this,tfSjm.getText(),PivResource.getS("Sjm")+" (m/s)") && + PivUtils.isPositiveReal(this,tfSjp.getText(),PivResource.getS("Sjp")+" (m/s)") && + PivUtils.isPositiveInteger(this,tfSimPix.getText(),PivResource.getS("Sim")+" (pix)") && + PivUtils.isPositiveInteger(this,tfSipPix.getText(),PivResource.getS("Sip")+" (pix)") && + PivUtils.isPositiveInteger(this,tfSjmPix.getText(),PivResource.getS("Sjm")+" (pix)") && + PivUtils.isPositiveInteger(this,tfSjpPix.getText(),PivResource.getS("Sjp")+" (pix)") ; if (!bok) return false; Added: 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 (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.java 2017-01-09 17:22:31 UTC (rev 9500) @@ -0,0 +1,141 @@ +/* + * @creation 8 sept. 06 + * @modification $Date: 2009-06-03 15:10:45 +0200 (mer., 03 juin 2009) $ + * @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; + +import java.io.File; + +import javax.swing.BorderFactory; +import javax.swing.JCheckBox; +import javax.swing.JFileChooser; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; + +import org.fudaa.ctulu.gui.CtuluDialogPanel; +import org.fudaa.ctulu.gui.CtuluFileChooserPanel; + +import com.memoire.bu.BuGridLayout; +import com.memoire.bu.BuVerticalLayout; + + +/** + * Un panneau pour l'affichage des param\xE8tres dimport vid\xE9o. + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivImportVideoParamPanel extends CtuluDialogPanel { + + /** Le file chooser de la vid\xE9o. */ + private CtuluFileChooserPanel fcVideo_; + private JTextField tfNbImgs_; + private JTextField tfBeginning_; + private JTextField tfEnding_; + private JCheckBox cbBeginning_; + private JCheckBox cbEnding_; + + public PivImportVideoParamPanel() { + + setBorder(BorderFactory.createEmptyBorder(5, 5, 15, 5)); + setLayout(new BuVerticalLayout(10)); + + fcVideo_=new CtuluFileChooserPanel(PivResource.getS("Fichier vid\xE9o")); + fcVideo_.setFileSelectMode(JFileChooser.FILES_ONLY); + fcVideo_.setWriteMode(false); + JPanel pnDirExport=CtuluFileChooserPanel.buildPanel(fcVideo_, PivResource.getS("Fichier vid\xE9o:")); + + tfNbImgs_=new JTextField(); + tfBeginning_=new JTextField(); + tfBeginning_.setEnabled(false); + tfEnding_=new JTextField(); + tfEnding_.setEnabled(false); + + cbBeginning_=new JCheckBox(PivResource.getS("Instant de d\xE9but")+" (s):"); + cbBeginning_.addChangeListener(new ChangeListener() { + + @Override + public void stateChanged(ChangeEvent e) { + tfBeginning_.setEnabled(cbBeginning_.isSelected()); + } + }); + cbEnding_=new JCheckBox(PivResource.getS("Instant de fin")+" (s):"); + cbEnding_.addChangeListener(new ChangeListener() { + + @Override + public void stateChanged(ChangeEvent e) { + tfEnding_.setEnabled(cbEnding_.isSelected()); + } + }); + + JPanel pnSampling = new JPanel(); + pnSampling.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Echantillonage"))); + pnSampling.setLayout(new BuGridLayout(2, 5, 5, true, false)); + + pnSampling.add(new JLabel(PivResource.getS("Nombre d'images par secondes:"))); + pnSampling.add(tfNbImgs_); + pnSampling.add(cbBeginning_); + pnSampling.add(tfBeginning_); + pnSampling.add(cbEnding_); + pnSampling.add(tfEnding_); + + add(pnDirExport); + add(pnSampling); + } + + @Override + public boolean isDataValid() { + File fv=fcVideo_.getFile(); + if (fv == null || !fv.exists()) { + setErrorText(PivResource.getS("Un fichier vid\xE9o doit \xEAtre s\xE9lectionn\xE9 et exister")); + return false; + } + if (!PivUtils.isStrictPositiveInteger(this, tfNbImgs_.getText(),PivResource.getS("Nombre d'images par secondes"))) { + return false; + } + if (cbBeginning_.isSelected() && !PivUtils.isPositiveReal(this, tfBeginning_.getText(),PivResource.getS("Instant de d\xE9but"))) { + return false; + } + if (cbEnding_.isSelected() && !PivUtils.isPositiveReal(this, tfEnding_.getText(),PivResource.getS("Instant de fin"))) { + return false; + } + if (cbBeginning_.isSelected() && cbEnding_.isSelected() && Double.parseDouble(tfEnding_.getText())<Double.parseDouble(tfBeginning_.getText())) { + setErrorText(PivResource.getS("La valeur de fin doit \xEAtre sup\xE9rieure ou \xE9gale \xE0 la valeur de d\xE9but")); + return false; + } + + return true; + } + + public File getVideoFile() { + return fcVideo_.getFile(); + } + + public int getNbImages() { + return Integer.parseInt(tfNbImgs_.getText()); + } + + public Double getBeginTime() { + if (cbBeginning_.isSelected()) { + return Double.parseDouble(tfBeginning_.getText()); + } + return null; + } + + public Double getEndTime() { + if (cbEnding_.isSelected()) { + return Double.parseDouble(tfEnding_.getText()); + } + return null; + } + + @Override + public void apply() { + } + +} \ No newline at end of file Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImportVideoParamPanel.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/PivManageOriginalFilesPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivManageOriginalFilesPanel.java 2017-01-09 11:12:07 UTC (rev 9499) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivManageOriginalFilesPanel.java 2017-01-09 17:22:31 UTC (rev 9500) @@ -7,19 +7,29 @@ */ package org.fudaa.fudaa.piv; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.io.File; +import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JLabel; -import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluCellTextRenderer; +import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ctulu.gui.CtuluFileChooser; import org.fudaa.ctulu.gui.CtuluListEditorModel; import org.fudaa.ctulu.gui.CtuluListEditorPanel; +import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; +import org.fudaa.fudaa.piv.io.PivExeLauncher; +import org.fudaa.fudaa.piv.metier.PivProject; +import com.memoire.bu.BuButton; import com.memoire.bu.BuVerticalLayout; +import com.memoire.fu.FuLog; /** * Un panneau pour gerer les images d'origine, qu'elles soient pgm ou autres. @@ -29,21 +39,24 @@ */ public class PivManageOriginalFilesPanel extends CtuluDialogPanel { - private CtuluUI ui_; + private PivImplementation impl_; /** Le repertoire racine du projet */ private File prjRoot_; /** Le mod\xE8le pour la liste des images */ private CtuluListEditorModel mdFiles_; - + /** Le panneau d'import video */ + private PivImportVideoParamPanel pnImport_; + private CtuluDialog diProgress_; + /** * Constructeur. - * @param _ui Le parent pour la boite de dialogue. + * @param _impl Le parent pour la boite de dialogue. */ - public PivManageOriginalFilesPanel(CtuluUI _ui) { - ui_=_ui; + public PivManageOriginalFilesPanel(PivImplementation _impl) { + impl_=_impl; setLayout(new BuVerticalLayout(5, true, true)); - setHelpText(PivResource.getS("Les images pgm seront utilis\xE9es pour le calcul dans l'ordre ou elles sont d\xE9finies.\nUtilisez Monter/Descendre pour modifier cet ordre.")); + setHelpText(PivResource.getS("Les images seront utilis\xE9es pour le calcul dans l'ordre ou elles sont d\xE9finies.\nUtilisez Monter/Descendre pour modifier cet ordre.")); // Label images add(new JLabel(PivResource.getS("Liste des images"),JLabel.LEFT)); @@ -69,7 +82,7 @@ fc.setFileSelectionMode(JFileChooser.FILES_ONLY); fc.setAcceptAllFileFilterUsed(false); fc.setDialogTitle(PivResource.getS("Ouverture d'un projet")); - if (fc.showOpenDialog(ui_.getParentComponent()) == JFileChooser.CANCEL_OPTION) { + if (fc.showOpenDialog(impl_.getParentComponent()) == JFileChooser.CANCEL_OPTION) { return; } @@ -80,7 +93,79 @@ } }; + + BuButton btImport=new BuButton(PivResource.PIV.getIcon("video"), PivResource.getS("Importer...")); + btImport.setToolTipText(PivResource.getS("Importer les images depuis une vid\xE9o")); + btImport.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + if (pnImport_==null) { + pnImport_=new PivImportVideoParamPanel(); + } + + if (pnImport_.afficheModale(PivManageOriginalFilesPanel.this, PivResource.getS("Import des images"))==0) { + + if (!PivExeLauncher.instance().areExeOK()) { + PivExePanel pnExe = new PivExePanel(); + + if (!pnExe.afficheModaleOk(impl_.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) { + return; + } + } + + // La tache a ex\xE9cuter. + CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl_, PivResource.getS("Echantillonnage")) { + + public void act() { + + try { + CtuluLog ana=new CtuluLog(); + ana.setDesc(getName()); + + // Les images sont cr\xE9\xE9es dans un repertoire temporaire, pour ne + // pas \xE9craser les images existantes avant validation. + File tmpOutDir=CtuluLibFile.createTempDir(); + + PivExeLauncher.instance().computeSampling(ana, impl_.getCurrentProject(), pnImport_.getVideoFile(), tmpOutDir, pnImport_.getNbImages(), pnImport_.getBeginTime(), + pnImport_.getEndTime(), this); + if (ana.containsErrorOrSevereError()) { + impl_.error(ana.getResume()); + return; + } + + File[] fimgs=tmpOutDir.listFiles(PivProject.FLT_FILES); + if (fimgs == null) { + fimgs=new File[0]; + } + + mdFiles_.setData(fimgs); + } + catch (IOException _exc) { + _exc.printStackTrace(); + } + finally { + diProgress_.dispose(); + } + + impl_.message(PivResource.getS("L'\xE9chantillonnage s'est termin\xE9e avec succ\xE8s")); + } + }; + + PivProgressionPanel pnProgress_=new PivProgressionPanel(r); + diProgress_=pnProgress_.createDialog(PivManageOriginalFilesPanel.this); + diProgress_.setOption(CtuluDialog.ZERO_OPTION); + diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE); + diProgress_.setTitle(r.getName()); + + r.start(); + diProgress_.afficheDialogModal(); + } + } + }); + pnFiles.addButton(btImport); + pnFiles.setValueListCellRenderer(new CtuluCellTextRenderer() { @Override public void setValue(Object _file) { Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2017-01-09 11:12:07 UTC (rev 9499) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2017-01-09 17:22:31 UTC (rev 9500) @@ -115,118 +115,13 @@ } } - /** - * Controle que la valeur du champ de nom donn\xE9 est un entier positif. - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - protected boolean isPositiveInteger(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - int val=Integer.parseInt(_sval.trim()); - bok=val>=0; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier >= 0",_param)); - return false; - } - return true; - } - - /** - * Controle que la valeur du champ de nom donn\xE9 est un entier positif. - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - protected boolean isStrictPositiveInteger(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - int val=Integer.parseInt(_sval.trim()); - bok=val>0; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier > 0",_param)); - return false; - } - return true; - } - - /** - * Controle que la valeur du champ de nom donn\xE9 est un entier . - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - protected boolean isInteger(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - Integer.parseInt(_sval.trim()); - bok=true; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier",_param)); - return false; - } - return true; - } - - /** - * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el. - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - protected boolean isReal(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - Double.parseDouble(_sval.trim()); - bok=true; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el",_param)); - return false; - } - return true; - } - - /** - * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif. - * @param _sval La valeur du champ. - * @param _param Le nom du champ. - * @return true si la valeur est correcte. - */ - private boolean isStrictPositiveReal(String _sval, String _param) { - boolean bok=false; - try { - bok=false; - double val=Double.parseDouble(_sval.trim()); - bok=val>0; - } - catch (NumberFormatException _exc) {} - if (!bok) { - setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el > 0",_param)); - return false; - } - return true; - } - @Override public boolean isDataValid() { setErrorText(""); boolean bok= - tfCoef.getText().trim().isEmpty() || isStrictPositiveReal(tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) && - tfDmax.getText().trim().isEmpty() || isStrictPositiveReal(tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) && - tfInterpolationStep.getText().trim().isEmpty() || isStrictPositiveReal(tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation")); + tfCoef.getText().trim().isEmpty() || PivUtils.isStrictPositiveReal(this,tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) && + tfDmax.getText().trim().isEmpty() || PivUtils.isStrictPositiveReal(this,tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) && + tfInterpolationStep.getText().trim().isEmpty() || PivUtils.isStrictPositiveReal(this,tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation")); return bok; } 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-09 11:12:07 UTC (rev 9499) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2017-01-09 17:22:31 UTC (rev 9500) @@ -1,7 +1,11 @@ package org.fudaa.fudaa.piv; import java.awt.Color; +import java.io.IOException; +import java.io.LineNumberReader; +import java.io.StringReader; +import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ebli.trace.TraceLigne; import org.fudaa.ebli.trace.TraceLigneModel; @@ -108,4 +112,154 @@ sb.append(_i); return sb.toString(); } + + /** + * Controle que la valeur du champ de nom donn\xE9 est un entier positif. + * @param _sval La valeur du champ. + * @param _param Le nom du champ. + * @return true si la valeur est correcte. + */ + public static boolean isPositiveInteger(CtuluDialogPanel _pn, String _sval, String _param) { + boolean bok=false; + try { + bok=false; + int val=Integer.parseInt(_sval.trim()); + bok=val>=0; + } + catch (NumberFormatException _exc) {} + if (!bok) { + _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier >= 0",_param)); + return false; + } + return true; + } + + /** + * Controle que la valeur du champ de nom donn\xE9 est un entier positif. + * @param _sval La valeur du champ. + * @param _param Le nom du champ. + * @return true si la valeur est correcte. + */ + public static boolean isStrictPositiveInteger(CtuluDialogPanel _pn, String _sval, String _param) { + boolean bok=false; + try { + bok=false; + int val=Integer.parseInt(_sval.trim()); + bok=val>0; + } + catch (NumberFormatException _exc) {} + if (!bok) { + _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier > 0",_param)); + return false; + } + return true; + } + + /** + * Controle que la valeur du champ de nom donn\xE9 est un entier . + * @param _sval La valeur du champ. + * @param _param Le nom du champ. + * @return true si la valeur est correcte. + */ + public static boolean isInteger(CtuluDialogPanel _pn, String _sval, String _param) { + boolean bok=false; + try { + bok=false; + Integer.parseInt(_sval.trim()); + bok=true; + } + catch (NumberFormatException _exc) {} + if (!bok) { + _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un entier",_param)); + return false; + } + return true; + } + + /** + * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif. + * @param _sval La valeur du champ. + * @param _param Le nom du champ. + * @return true si la valeur est correcte. + */ + public static boolean isPositiveReal(CtuluDialogPanel _pn, String _sval, String _param) { + boolean bok=false; + try { + bok=false; + double val=Double.parseDouble(_sval.trim()); + bok=val>=0; + } + catch (NumberFormatException _exc) {} + if (!bok) { + _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el >= 0",_param)); + return false; + } + return true; + } + + /** + * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el. + * @param _sval La valeur du champ. + * @param _param Le nom du champ. + * @return true si la valeur est correcte. + */ + public static boolean isReal(CtuluDialogPanel _pn, String _sval, String _param) { + boolean bok=false; + try { + bok=false; + Double.parseDouble(_sval.trim()); + bok=true; + } + catch (NumberFormatException _exc) {} + if (!bok) { + _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el",_param)); + return false; + } + return true; + } + + /** + * Controle que la valeur du champ de nom donn\xE9 est un r\xE9el positif. + * @param _sval La valeur du champ. + * @param _param Le nom du champ. + * @return true si la valeur est correcte. + */ + public static boolean isStrictPositiveReal(CtuluDialogPanel _pn, String _sval, String _param) { + boolean bok=false; + try { + bok=false; + double val=Double.parseDouble(_sval.trim()); + bok=val>0; + } + catch (NumberFormatException _exc) {} + if (!bok) { + _pn.setErrorText(PivResource.getS("{0}: Doit \xEAtre un r\xE9el > 0",_param)); + return false; + } + return true; + } + + /** + * Limite un texte avec retours charriots \xE0 une largeur maxi. Les caract\xE8res au del\xE0 sont remplac\xE9s par ... + * @param _mess Le message + * @param _maxWidth La largeur maxi (en nombre de caract\xE8res) + * @return + */ + public static String trunkErrorMessage(String _mess, int _maxWidth) { + StringBuffer ret=new StringBuffer(); + + String[] lines=_mess.split("\r\n|\r|\n"); + for (String line : lines) { + if (line.length()>_maxWidth) { + ret.append(line.substring(0, _maxWidth)).append("..."); + } + else { + ret.append(line); + } + + ret.append("\n"); + } + + return ret.toString(); + } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java 2017-01-09 11:12:07 UTC (rev 9499) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java 2017-01-09 17:22:31 UTC (rev 9500) @@ -38,7 +38,7 @@ * @param _impl L'implementation. */ public PivSelectImagesAction(PivImplementation _impl) { - super(PivResource.getS("S\xE9lection des images sources..."), null, "SELECT_IMAGES"); + super(PivResource.getS("Gestion des images sources..."), null, "SELECT_IMAGES"); impl=_impl; setEnabled(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-01-09 11:12:07 UTC (rev 9499) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2017-01-09 17:22:31 UTC (rev 9500) @@ -50,7 +50,8 @@ Q_compute, vel_transf, vel_scal, - moy_scal + moy_scal, + ffmpeg } /** Les scripts pouvant etre lanc\xE9s */ @@ -170,6 +171,74 @@ } /** + * Lance le calcul d'echantillonnage d'images depuis un fichier vid\xE9o. + * + * @param _ana L'analyse pour la tache ex\xE9cut\xE9e. + * @param _prj Le projet. + * @param _task La tache en cours d'execution. + * @return true : Tout s'est bien d\xE9roul\xE9. + * @see #launchOrthoPlan + */ + public boolean computeSampling(CtuluLog _ana, PivProject _prj, File _fvideo, File _tmpOutDir, int _nbImgs, Double _tdeb, Double _tfin, CtuluTaskOperationGUI _task) { + File prjRoot=_prj.getRoot(); +// File prjImgInp=new File(prjRoot,IMG_PGM_DIR); +// +// // Nettoyage eventuel du repertoire des images sources. +// prjImgInp.mkdir(); +// for (File f : prjImgInp.listFiles()) f.delete(); + + String desc=PivResource.getS("Lancement de l'echantillonnage..."); + FuLog.trace(desc); + if (_task!=null) { + _task.setDesc(desc); + _task.setProgression(5); + } + + try { + ArrayList<String> cmdArray=new ArrayList<>(); + cmdArray.add(exePath+File.separator+EXE.ffmpeg + EXE_EXT); + cmdArray.add("-i"); + cmdArray.add(_fvideo.getAbsolutePath()); + cmdArray.add("-r"); + cmdArray.add(""+_nbImgs); + if (_tdeb!=null) { + cmdArray.add("-ss"); + cmdArray.add(""+_tdeb); + } + if (_tfin!=null) { + cmdArray.add("-to"); + cmdArray.add(""+_tfin); + } + cmdArray.add(new File(_tmpOutDir,"image%4d.png").getAbsolutePath()); + + String outs = FuLib.runProgram(cmdArray.toArray(new String[0]), prjRoot); + if (FuLib.lastRunStatus!=0) { + String text=PivUtils.trunkErrorMessage(outs.toString(),132); + _ana.addError(PivResource.getS("Erreur dans l'\xE9chantillonnage:\n")+text); + return false; + } + + if (_task!=null && _task.isStopRequested()) { + _ana.addError(PivResource.getS("Echantillonnage interrompu")); + return false; + } + + FuLog.trace(PivResource.getS("Echantillonnage ok.")); + } + catch (IOException ex) { + _ana.addError(ex.getMessage()); + return false; + } + + + if (_task!=null) + _task.setProgression(90); + + + return true; + } + + /** * Lance le calcul des coefficients d'orthorectification. * @param _ana L'analyse pour la tache ex\xE9cut\xE9e. * @param _prj Le projet. 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-01-09 11:12:07 UTC (rev 9499) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2017-01-09 17:22:31 UTC (rev 9500) @@ -8,6 +8,7 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -124,6 +125,9 @@ // Et ceux utilis\xE9s pour le calcul de moyenne prj_.usedInstantResults=loadInstantResultsList(_prog); + // Les images + prj_.srcFiles_=loadSrcImages(_prog); + // Les param\xE8tres globaux loadGlobalData(_prog); @@ -433,8 +437,6 @@ * @return Les param\xE8tres globaux. */ public void loadGlobalData(ProgressionInterface _prog) { - File imgSrcDir=new File(prj_.rootPath,PivProject.IMG_PGM_DIR); - File globalFile = new File(prj_.getOutputDir(), "global.xml"); CtuluIOResult<PivGlobalXmlParam> ret = new PivGlobalXmlReader().read(globalFile, _prog); if (ret.getAnalyze().containsSevereError()) { @@ -447,10 +449,8 @@ prj_.computeParams.setIACenterPosition(paramXml.iaCenter); // Tri des images suivant leur ordre sauvegard\xE9. - File[] srcFiles=imgSrcDir.listFiles(PivProject.FLT_FILES); - if (srcFiles==null) srcFiles=new File[0]; final List<String> names = Arrays.asList(paramXml.srcImages); - Arrays.sort(srcFiles, new Comparator<File>() { + Collections.sort(prj_.srcFiles_, new Comparator<File>() { @Override public int compare(File o1, File o2) { return names.indexOf(o1.getName()) - names.indexOf(o2.getName()); @@ -460,9 +460,14 @@ // Affectation des param\xE8tres de transformation. PivTransformationParameters params=new PivTransformationParameters(paramXml.tx, paramXml.ty, paramXml.tz, paramXml.rz, paramXml.xcenter, paramXml.ycenter); prj_.setTransformationParameters(params); + } - prj_.srcFiles_.clear(); - prj_.srcFiles_.addAll(Arrays.asList(srcFiles)); + public List<File> loadSrcImages(ProgressionInterface _prog) { + File imgSrcDir=new File(prj_.rootPath,PivProject.IMG_PGM_DIR); + File[] srcFiles=imgSrcDir.listFiles(PivProject.FLT_FILES); + if (srcFiles==null) srcFiles=new File[0]; + + return Arrays.asList(srcFiles); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-09 11:12:09
|
Revision: 9499 http://sourceforge.net/p/fudaa/svn/9499 Author: bmarchan Date: 2017-01-09 11:12:07 +0000 (Mon, 09 Jan 2017) Log Message: ----------- Transparence dans l'image splash screen Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/banniere.jpg Modified: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/banniere.jpg =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2017-01-02 16:55:37
|
Revision: 9498 http://sourceforge.net/p/fudaa/svn/9498 Author: bmarchan Date: 2017-01-02 16:55:35 +0000 (Mon, 02 Jan 2017) Log Message: ----------- Fudaa-LSPIV : Detection des mises a jour depuis le site de IRSTEA. Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.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-02 14:43:57 UTC (rev 9497) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-02 16:55:35 UTC (rev 9498) @@ -106,7 +106,7 @@ isPIV_.http="http://forge.irstea.fr/projects/fudaa-lspiv"; isPIV_.man="guide_Fudaa-lspiv_"+BuPreferences.BU.getStringProperty("locale.language", System.getProperty("piv.lang", "fr"))+".pdf"; isPIV_.citation=PivResource.getS("Ichiro Fujita (Prof.), Universit\xE9 de Kob\xE9"); - isPIV_.update=System.getProperty("piv.update", "http://www.deltacad.fr/downloads"); + isPIV_.update=System.getProperty("piv.update", "https://forge.irstea.fr/projects/fudaa-lspiv/files"); isPIV_.logo = PivResource.PIV.getIcon("iconepiv.gif"); isPIV_.banner = PivResource.PIV.getIcon("banniere.jpg"); @@ -276,7 +276,7 @@ showHelp(); } else if ("MAJ".equals(action)) { if (!checkForUpdate(false)) { - message(PivResource.getS("Information"),PivResource.getS("La version de Fudaa-LSPIV est \xE0 jour"),false); + message(PivResource.getS("Information"),PivResource.getS("Site des mise \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-01-02 14:44:00
|
Revision: 9497 http://sourceforge.net/p/fudaa/svn/9497 Author: bmarchan Date: 2017-01-02 14:43:57 +0000 (Mon, 02 Jan 2017) Log Message: ----------- Fudaa-LSPIV : Detection de mises ?\195?\160 jour Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.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-02 14:42:28 UTC (rev 9496) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2017-01-02 14:43:57 UTC (rev 9497) @@ -16,6 +16,9 @@ import java.beans.PropertyVetoException; import java.io.File; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.net.URL; import java.util.Iterator; import java.util.List; import java.util.Observable; @@ -78,6 +81,7 @@ import com.memoire.bu.BuRegistry; import com.memoire.bu.BuResource; import com.memoire.bu.BuUserPreferencesPanel; +import com.memoire.fu.FuLib; import com.memoire.fu.FuLog; /** @@ -92,9 +96,9 @@ protected static BuInformationsSoftware isPIV_ = new BuInformationsSoftware(); static { isPIV_.name = "LSPIV"; - isPIV_.version = "1.5.0"; + isPIV_.version = "1.5.1"; isPIV_.date = "2016-12-20"; - isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2016"; + isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2017"; isPIV_.license = "GPL2"; isPIV_.languages = "en,fr"; isPIV_.authors=new String[]{"B.Marchand (mar...@de...)"}; @@ -102,6 +106,7 @@ isPIV_.http="http://forge.irstea.fr/projects/fudaa-lspiv"; isPIV_.man="guide_Fudaa-lspiv_"+BuPreferences.BU.getStringProperty("locale.language", System.getProperty("piv.lang", "fr"))+".pdf"; isPIV_.citation=PivResource.getS("Ichiro Fujita (Prof.), Universit\xE9 de Kob\xE9"); + isPIV_.update=System.getProperty("piv.update", "http://www.deltacad.fr/downloads"); isPIV_.logo = PivResource.PIV.getIcon("iconepiv.gif"); isPIV_.banner = PivResource.PIV.getIcon("banniere.jpg"); @@ -269,6 +274,10 @@ create(); } else if ("AIDE_INDEX".equals(action)) { showHelp(); + } else if ("MAJ".equals(action)) { + if (!checkForUpdate(false)) { + message(PivResource.getS("Information"),PivResource.getS("La version de Fudaa-LSPIV est \xE0 jour"),false); + } } else if (action.startsWith("REOUVRIR")) { FuLog.trace(action.substring(9,action.length()-1)); @@ -706,6 +715,8 @@ setEnabledForAction("IMPORTER", true); setEnabledForAction("EXPORTER", true); + setEnabledForAction("MAJ", true); + BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR"); if (mr != null) { mr.setPreferences(PivPreferences.PIV); @@ -939,6 +950,42 @@ PivResource.getS("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.")); } } + + /** + * Controle l'existence d'une mise a jour sur l'URL de mise a jour et affiche un dialogue pour t\xE9l\xE9charger si c'est le cas. + * @param _showHideButton True : Le bouton "Ne plus afficher" est affich\xE9 dans le dialogue. + * @return True : Une mise a jour existe. + */ + public boolean checkForUpdate(boolean _showHideButton) { + try { + URL urlFlag=new URL(isPIV_.update+"/fudaa-lspiv-lastversion.txt"); + if (FuLib.existsURL(urlFlag)) { + LineNumberReader is=null; + try { + is=new LineNumberReader(new InputStreamReader(urlFlag.openStream())); + String lastversion; + while ((lastversion=is.readLine()) != null && lastversion.trim().startsWith("#")) { + } + + if (lastversion.compareTo(isPIV_.version)>0) { + URL urlJar = new URL(isPIV_.update+"/fudaa-lspiv-"+lastversion+"-setup.jar"); + new PivUpdatePanel(lastversion, urlJar, _showHideButton).afficheModale(this.getFrame(),PivResource.getS("Mise \xE0 jour disponible")); + return true; + } + } + finally { + if (is!=null) { + is.close(); + } + } + } + } + catch (IOException e) { + e.printStackTrace(); + } + + return false; + } /** * D\xE9marre l'application. @@ -949,6 +996,10 @@ super.addFrameListLeft(); controlJAILibrary(); + + if (PivPreferences.PIV.getBooleanProperty(FudaaStartupExitPreferencesPanel.PREF_CHECK_NEW_VERSION, true)) { + checkForUpdate(true); + } } } Added: 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 (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.java 2017-01-02 14:43:57 UTC (rev 9497) @@ -0,0 +1,82 @@ +/* + * @creation 8 sept. 06 + * @modification $Date: 2009-06-03 15:10:45 +0200 (mer., 03 juin 2009) $ + * @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; + +import java.awt.Cursor; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.net.URL; + +import javax.swing.BorderFactory; +import javax.swing.JCheckBox; +import javax.swing.JLabel; + +import org.fudaa.ctulu.gui.CtuluDialogPanel; +import org.fudaa.fudaa.commun.FudaaBrowserControl; +import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel; +import org.jdesktop.swingx.VerticalLayout; + + +/** + * Un panneau pour l'affichage de la version a telecharger. + * @author Bertrand Marchand (mar...@de...) + * @version $Id: PivFlowInfoPanel.java 9491 2016-12-20 14:46:54Z bmarchan $ + */ +public class PivUpdatePanel extends CtuluDialogPanel { + + private JCheckBox cbHidden_; + + public PivUpdatePanel(String _version, final URL _url, boolean _showHideButton) { + 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)); + lbLink.addMouseListener(new MouseAdapter() { + public void mouseEntered(MouseEvent me) { + lbLink.setCursor(new Cursor(Cursor.HAND_CURSOR)); + } + + public void mouseExited(MouseEvent me) { + lbLink.setCursor(Cursor.getDefaultCursor()); + } + + public void mouseClicked(MouseEvent me) { + try { + FudaaBrowserControl.displayURL(_url); + } + catch (Exception e) { + System.out.println(e); + } + } + }); + + + add(new JLabel(PivResource.getS("<html>Une mise \xE0 jour de Fudaa-LSPIV est disponible.<br>Cliquez sur le lien ci-dessous pour la t\xE9l\xE9charger.</html>"))); + add(lbLink); + + if (_showHideButton) { + cbHidden_=new JCheckBox(PivResource.getS("Ne plus afficher ce dialogue")); + add(cbHidden_); + } + } + + @Override + public boolean isDataValid() { + return true; + } + + @Override + public void apply() { + super.apply(); + + if (cbHidden_ != null) + PivPreferences.PIV.putBooleanProperty(FudaaStartupExitPreferencesPanel.PREF_CHECK_NEW_VERSION, !cbHidden_.isSelected()); + } + + +} \ No newline at end of file Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUpdatePanel.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-01-02 14:42:30
|
Revision: 9496 http://sourceforge.net/p/fudaa/svn/9496 Author: bmarchan Date: 2017-01-02 14:42:28 +0000 (Mon, 02 Jan 2017) Log Message: ----------- Ajout d'une methode pour tester qu'une URL est accessible. Modified Paths: -------------- trunk/framework/ctulu-fu/src/main/java/com/memoire/fu/FuLib.java trunk/framework/fudaa-common/src/main/java/org/fudaa/fudaa/commun/impl/FudaaStartupExitPreferencesPanel.java Modified: trunk/framework/ctulu-fu/src/main/java/com/memoire/fu/FuLib.java =================================================================== --- trunk/framework/ctulu-fu/src/main/java/com/memoire/fu/FuLib.java 2016-12-30 14:55:02 UTC (rev 9495) +++ trunk/framework/ctulu-fu/src/main/java/com/memoire/fu/FuLib.java 2017-01-02 14:42:28 UTC (rev 9496) @@ -14,11 +14,25 @@ import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.Reader; +import java.io.StreamTokenizer; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; +import java.io.Writer; import java.lang.reflect.AccessibleObject; import java.lang.reflect.Field; import java.lang.reflect.Member; import java.lang.reflect.Method; +import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; @@ -1907,4 +1921,23 @@ * System.exit(0); } BuPreferences.BU.put("memory",""+m); } */ + /** + * Controls that a resource exists on WWW. + * + * @param _url The url to be found. + * @return True : The file exists and is accessible. + */ + public static boolean existsURL(URL _url) { + try { + HttpURLConnection.setFollowRedirects(false); + HttpURLConnection con=(HttpURLConnection) _url.openConnection(); + con.setRequestMethod("HEAD"); + // note : you may also need + // con.setInstanceFollowRedirects(false); + return (con.getResponseCode() == HttpURLConnection.HTTP_OK); + } + catch (Exception e) { + return false; + } + } } Modified: trunk/framework/fudaa-common/src/main/java/org/fudaa/fudaa/commun/impl/FudaaStartupExitPreferencesPanel.java =================================================================== --- trunk/framework/fudaa-common/src/main/java/org/fudaa/fudaa/commun/impl/FudaaStartupExitPreferencesPanel.java 2016-12-30 14:55:02 UTC (rev 9495) +++ trunk/framework/fudaa-common/src/main/java/org/fudaa/fudaa/commun/impl/FudaaStartupExitPreferencesPanel.java 2017-01-02 14:42:28 UTC (rev 9496) @@ -25,9 +25,11 @@ */ public class FudaaStartupExitPreferencesPanel extends BuAbstractPreferencesPanel implements ActionListener { + public static final String PREF_CHECK_NEW_VERSION = "check.update"; + private final String splash_ = "splashscreen.visible"; private final String exit_ = "confirm.exit"; - private final String update_ = "check.update"; + final BuCheckBox cbExit_; final BuCheckBox cbSplash_; final BuCheckBox cbUpdate_; @@ -75,7 +77,7 @@ BuPreferences.BU.putBooleanProperty(exit_, cbExit_.isSelected()); BuPreferences.BU.putBooleanProperty(splash_, cbSplash_.isSelected()); if (cbUpdate_ != null) { - BuPreferences.BU.putBooleanProperty(update_, cbUpdate_.isSelected()); + BuPreferences.BU.putBooleanProperty(PREF_CHECK_NEW_VERSION, cbUpdate_.isSelected()); } setDirty(false); } @@ -85,7 +87,7 @@ cbExit_.setSelected(BuPreferences.BU.getBooleanProperty(exit_, true)); cbSplash_.setSelected(BuPreferences.BU.getBooleanProperty(splash_, true)); if (cbUpdate_ != null) { - cbUpdate_.setSelected(BuPreferences.BU.getBooleanProperty(update_, true)); + cbUpdate_.setSelected(BuPreferences.BU.getBooleanProperty(PREF_CHECK_NEW_VERSION, true)); } setDirty(false); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2016-12-30 14:47:19
|
Revision: 9494 http://sourceforge.net/p/fudaa/svn/9494 Author: bmarchan Date: 2016-12-30 14:47:16 +0000 (Fri, 30 Dec 2016) Log Message: ----------- LSPIV Fix : Pb avec l'acc?\195?\168s a au sch?\195?\169ma Search Area dans la fenetre des params computer. Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/schema_sa.png Removed Paths: ------------- trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/schemaSA.png Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2016-12-30 14:45:20 UTC (rev 9493) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2016-12-30 14:47:16 UTC (rev 9494) @@ -183,7 +183,7 @@ lbLock6.setIcon(PivResource.PIV.getIcon("lie-horizontal")); lbLock6.setPreferredSize(lockprefsize); - lbSchema.setIcon(PivResource.PIV.getIcon("schemaSA.png")); + lbSchema.setIcon(PivResource.PIV.getIcon("schema_sa.png")); actDefineAreaCenter_=pnLayers_.getTransfView().getDefineAreaCenterAction(); actDefineAreaCenter_.setEditionController(ctrl_); Deleted: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/schemaSA.png =================================================================== (Binary files differ) Added: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/schema_sa.png =================================================================== (Binary files differ) Index: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/schema_sa.png =================================================================== --- trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/schema_sa.png 2016-12-30 14:45:20 UTC (rev 9493) +++ trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/schema_sa.png 2016-12-30 14:47:16 UTC (rev 9494) Property changes on: trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/schema_sa.png ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ 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...> - 2016-12-30 14:45:23
|
Revision: 9493 http://sourceforge.net/p/fudaa/svn/9493 Author: bmarchan Date: 2016-12-30 14:45:20 +0000 (Fri, 30 Dec 2016) Log Message: ----------- Passage LSPIV en 1.5-SNAPSHOT Modified Paths: -------------- trunk/soft/fudaa-lspiv/pom.xml Modified: trunk/soft/fudaa-lspiv/pom.xml =================================================================== --- trunk/soft/fudaa-lspiv/pom.xml 2016-12-29 17:30:29 UTC (rev 9492) +++ trunk/soft/fudaa-lspiv/pom.xml 2016-12-30 14:45:20 UTC (rev 9493) @@ -16,7 +16,7 @@ </parent> <groupId>org.fudaa.soft.fudaa-lspiv</groupId> <artifactId>fudaa-lspiv</artifactId> - <version>1.4-SNAPSHOT</version> + <version>1.5-SNAPSHOT</version> <name>Fudaa-Lspiv</name> <dependencyManagement> <dependencies> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2016-12-29 17:30:31
|
Revision: 9492 http://sourceforge.net/p/fudaa/svn/9492 Author: bmarchan Date: 2016-12-29 17:30:29 +0000 (Thu, 29 Dec 2016) Log Message: ----------- Fix LSPIV : Utilisation API 1.8 au lieu de 1.7 Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java 2016-12-20 14:46:54 UTC (rev 9491) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java 2016-12-29 17:30:29 UTC (rev 9492) @@ -11,6 +11,7 @@ import java.awt.Dimension; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Set; @@ -101,16 +102,26 @@ */ public PivExportGaugingReportFillValuesPanel(CtuluUI _ui, Collection<PivExportGaugingReportAction.UserCellData> _userVars, Set<String> _systemVars) { ArrayList<PivExportGaugingReportAction.UserCellData> userVars=new ArrayList<>(_userVars); - userVars.sort(new Comparator<PivExportGaugingReportAction.UserCellData>() { - + Collections.sort(userVars,new Comparator<PivExportGaugingReportAction.UserCellData>() { @Override public int compare(PivExportGaugingReportAction.UserCellData c1, PivExportGaugingReportAction.UserCellData c2) { - return c1.name.compareTo(c2.name); + if (c1.description == null && c2.description == null) { + return 0; + } + else if (c1.description == null) { + return -1; + } + else if (c2.description == null) { + return 1; + } + else { + return c1.description.compareTo(c2.description); + } } }); ArrayList<String> systemVars=new ArrayList<>(_systemVars); - systemVars.sort(null); + Collections.sort(systemVars); StringBuilder sb=new StringBuilder(); sb.append(PivResource.getS("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")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2016-12-20 14:46:56
|
Revision: 9491 http://sourceforge.net/p/fudaa/svn/9491 Author: bmarchan Date: 2016-12-20 14:46:54 +0000 (Tue, 20 Dec 2016) Log Message: ----------- Fix translation Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 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/action/PivExportGaugingReportAction.java trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2016-12-20 13:52:46 UTC (rev 9490) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2016-12-20 14:46:54 UTC (rev 9491) @@ -161,8 +161,8 @@ lbTemps.setText(PivResource.getS("Intervalle de temps")+" (s):"); pnIASize.setBorder(javax.swing.BorderFactory.createTitledBorder(PivResource.getS("Aire d'interrogation"))); - lbIASize.setText(PivResource.getS("Taille de l'aire"+" (m):")); - lbIASizePix.setText(PivResource.getS("Taille de l'aire"+" (pix):")); + lbIASize.setText(PivResource.getS("Taille de l'aire")+" (m):"); + lbIASizePix.setText(PivResource.getS("Taille de l'aire")+" (pix):"); lbPosition.setText(PivResource.getS("Position du centre")); btPosition.setText(PivResource.getS("Position...")); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2016-12-20 13:52:46 UTC (rev 9490) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2016-12-20 14:46:54 UTC (rev 9491) @@ -124,7 +124,7 @@ pnVelocity.add(pnVxLimits); JPanel pnVyLimits=new JPanel(); - pnVyLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la componsante Vy (m/s)"))); + pnVyLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la composante Vy (m/s)"))); pnVyLimits.setLayout(new BuVerticalLayout(3,true,false)); pn=new JPanel(); 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 2016-12-20 13:52:46 UTC (rev 9490) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2016-12-20 14:46:54 UTC (rev 9491) @@ -70,7 +70,7 @@ case 6: return PivResource.getS("Ecart (%)"); case 7: - return PivResource.getS("D\xE9bit mesur\xE9 (m/s)"); + return PivResource.getS("D\xE9bit mesur\xE9 (m\xB3/s)"); case 8: return PivResource.getS("Ecart (%)"); } 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 2016-12-20 13:52:46 UTC (rev 9490) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2016-12-20 14:46:54 UTC (rev 9491) @@ -93,7 +93,7 @@ static { isPIV_.name = "LSPIV"; isPIV_.version = "1.5.0"; - isPIV_.date = "2016-10-13"; + isPIV_.date = "2016-12-20"; isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2016"; isPIV_.license = "GPL2"; isPIV_.languages = "en,fr"; 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 2016-12-20 13:52:46 UTC (rev 9490) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-20 14:46:54 UTC (rev 9491) @@ -196,7 +196,7 @@ if (!userVars.isEmpty()) { PivExportGaugingReportFillValuesPanel diValues=new PivExportGaugingReportFillValuesPanel(impl, userVars.values(), systemDatas.keySet()); - if (diValues.afficheModale(impl.getFrame(), PivResource.getS("A renseigner")) == JOptionPane.CANCEL_OPTION) + if (diValues.afficheModale(impl.getFrame(), PivResource.getS("Champs \xE0 renseigner")) == JOptionPane.CANCEL_OPTION) return; } 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 2016-12-20 13:52:46 UTC (rev 9490) +++ trunk/soft/fudaa-lspiv/src/main/resources/org/fudaa/fudaa/piv/piv_en.fr_txt 2016-12-20 14:46:54 UTC (rev 9491) @@ -8,8 +8,8 @@ Affiche le r\xE9sultat instantan\xE9 s\xE9lectionn\xE9=Show selected instantaneous result Affiche les r\xE9sultats pour la variable s\xE9lectionn\xE9e=Show results for selected variable Afficher les r\xE9sultats du calcul=Show calculation results -Aire d'interrogation (pix)=Interrogation area (pix) -Aire de recherche (pix)=Searching area (pix) +Aire d'interrogation=Interrogation area +Aire de recherche=Search area Aire mouill\xE9e (m\xB2)=Wetted area (m\xB2) Analyse LSPIV=LSPIV analysis Analyse des images ok=Image analysis ok @@ -45,6 +45,8 @@ Calque {0} cr\xE9\xE9={0} layer created Calque {0} mis \xE0 jour={0} layer updated Cette cr\xE9ation sera r\xE9alis\xE9e apr\xE8s chaque op\xE9ration\n de s\xE9lection d'image ou transformation, et d\xE9s maintenant.\n\nSouhaitez vous continuer ?=This creation will be performed following each\nimage selection or transformation operations, and now.\n\nDo you want to continue ? +Champ=Field +Champs \xE0 renseigner=Fields to fill Changement de rep\xE8re=Reference switch Chargement du projet=Opening project Choisir 2 points diff\xE9rents=Please choose 2 different points @@ -69,9 +71,11 @@ Des points de grille existent d\xE9j\xE0.\nVoulez-vous les supprimer avant import des nouveaux ?=Grid points already exist.\nDo you want to remove them before importing new ones ? Des points existent d\xE9j\xE0.\nVoulez-vous les supprimer avant ajout des nouveaux ?=Points already exist.\nDo you want to remove them before importing new ones ? 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 Dur\xE9e d'int\xE9gration=Integration duration -D\xE9bit total (m\xB3/s)=Total discharge (m\xB3/s) +D\xE9bit mesur\xE9 (m\xB3/s)=Measur.disch.(m\xB3/s) +D\xE9bit total (m\xB3/s)=Total disch. (m\xB3/s) D\xE9bit=Discharge D\xE9finir=Define D\xE9finition des points de grille=Definition of grid points @@ -93,24 +97,31 @@ Erreur de transformation des vitesses instantan\xE9es\:\n=Error while instantaneous velocities transformation\:\n Erreur de v\xE9rification de l'orthorectification\:\n=Error while checking orthorectification\:\n Erreur lors de la sauvegarde du fichier projet.\nIl ne sera pas sauvegard\xE9=Error while saving the project file.\nIt will not be saved +Erreur mod\xE8le=Template error Erreur=Error Espace image source=Source image space Espace image transform\xE9e=Transformed image space Espace r\xE9el=Real space Export des images sources=Export of source images Export des images transform\xE9es=Export of transformed images +Exporter le rapport de jaugeage=Export gauging report Exporter les images sources=Export source images 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 manquant=Missing file +Fichier params calcul=Params calculation file +Fichier params transformation=Params transf. file Fichier projet=Project file Fichiers images en niveaux de gris=Gray-scale image files Fichiers images=Images files +Filtrage des r\xE9sultats instantan\xE9s=Instantaneous results filtering Filtrage des r\xE9sultats=Results filtering Filtrage interrompu=Filtering interrupted Filtrage ok=Filtering ok -Filtrage/moyenne des r\xE9sultats instantan\xE9s=Filtering/averaging of instantaneous results Filtrer les corr\xE9lations=Filter correlations Filtrer les vitesses=Filter velocities Fin de saisie=Input finished @@ -131,13 +142,14 @@ Image ortho=Ortho image Image transform\xE9e=Transformed image Import d'un transect=Import of a transect +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=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 Interruption en cours. Merci de patienter=Interruption in progress. Please wait -Intervalle de temps (s)=Time step (s) Intervalle de temps=Time step Isolignes / Isosurfaces=Isolines / Isosurfaces LSPIV=LSPIV @@ -155,7 +167,9 @@ 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 Le contour de grille doit comporter 4 sommets=The grid outline must comprise 4 vertices Le delta du marqueur doit \xEAtre renseign\xE9=The delta of the marker must be entered +Le fichier h.dat correspondant est manquant.\nLe niveau d'eau ne sera pas initialis\xE9=The corresponding h.dat file is missing.\nThe water level will not be initialized Le fichier ne semble pas \xEAtre un projet Fudaa-LSPIV.\nCauses possibles\:\n- Le fichier n'est pas dans un format ZIP\n- Il ne contient pas le r\xE9pertoire '{0}'=The file seems not to be a Fudaa-LSPIV project.\nPotential causes\:\n- The file is not in a ZIP format\n- The file does not contain the '{0}' directory +Le mod\xE8le {0} n'existe pas={0} template file does not exist Le niveau d'eau doit \xEAtre un r\xE9el=The water level must be a real number Le nombre de points de r\xE9f\xE9rence doit \xEAtre au minimum de 4=The minimum number of GRP is 4 Le nombre de points doit \xEAtre sup\xE9rieur \xE0 1=The number of points must be greater than 1 @@ -166,11 +180,13 @@ Le projet doit contenir au moins 2 images transform\xE9es=The project must contain at least 2 transformed images Le projet doit \xEAtre cr\xE9\xE9=The project must be created Le projet ne contient aucune image source=The project does not contain any source image -Le projet ne contient aucune valeur de r\xE9sultats instantan\xE9s=The project does not contain any instantaneous value results +Le projet ne contient aucune valeur de r\xE9sultats instantan\xE9s filtr\xE9s=The project does not contain any filtered instantaneous results value +Le projet ne contient aucune valeur de r\xE9sultats instantan\xE9s=The project does not contain any instantaneous results value Le projet ne contient pas de r\xE9sultats moyenn\xE9s=The project does not contain averaged results Le r\xE9pertoire de destination n'est pas d\xE9fini ou est inaccessible=The destination directory is not defined or is inaccessible 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 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 @@ -178,6 +194,7 @@ 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 +Les param\xE8tres de filtres seront aussi import\xE9s.\nVoulez-vous continuer ?=Filtered parameters will also be imported.\nDo you want to continue ? Les param\xE8tres doivent \xEAtre renseign\xE9s et les images transform\xE9es doivent exister=The parameters must be specified and the transformed images must exist Les param\xE8tres et points de r\xE9f\xE9rence doivent \xEAtre renseign\xE9s=The parameters and the reference points must be specified Les param\xE8tres ne peuvent \xEAtre saisis\nque dans le rep\xE8re de calcul=Parameters can only be entered\nin the computation reference @@ -189,27 +206,32 @@ Lie/d\xE9lie l'image et le r\xE9sultat instantan\xE9=Bind/unbind image and instantaneous result Ligne=Line Lignes de courant=Stream lines +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 de la vitesse v transversale (m/s)=Transverse velocity magnitude thresholds (m/s) Liste des images=Images list Liste des r\xE9sultats instantan\xE9s=Instantaneous results list Liste des transects=Transects list Marqueur=Mark Marqueurs=Marks +Max Vx=Max Vx +Max Vy=Max Vy Max corr\xE9lation=Max correlation Max norme de vitesse=Max velocity magnitude -Max vitesse transversale=Max transverse velocity Max=Max +Min Vx=Min Vx +Min Vy=Min Vy Min corr\xE9lation=Min correlation Min norme de vitesse=Min velocity magnitude -Min vitesse transversale=Min transverse velocity Min=Min Mode=Mode Modification des points de r\xE9f\xE9rence=Modification of the reference points Modification des transects initiaux=Modification of the initial transects Modification du transect=Modification of the transect +Moyenne des r\xE9sultats instantan\xE9s filtr\xE9s=Filtered instantaneous results average Moyenne=Average 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 Nombre de points sur les segments 1-2/3-4=Number of points in segments 1-2/3-4 Nombre de points sur les segments 2-3/4-1=Number of points in segments 2-3/4-1 @@ -295,6 +317,8 @@ Stop=Stop 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 @@ -302,8 +326,8 @@ 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 +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 -Taille de l'aire\: Doit \xEAtre un entier positif et pair=Area size\: Must be an even positive integer Temps=Time Terminer la saisie des points et valider=End input of the points and validate Tous droits r\xE9serv\xE9s=All rights reserved @@ -332,6 +356,7 @@ 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 +Valeur=Value Vecteur=Vector Verification des points de r\xE9f\xE9rence=Verification of the reference points Verification interrompue=Verification interrupted @@ -388,4 +413,5 @@ {0}\: Doit \xEAtre un entier >\= 0={0}\: Must be an integer >\= 0 {0}\: Doit \xEAtre un entier={0}\: Must be an integer {0}\: Doit \xEAtre un r\xE9el > 0={0}\: Must be a real number > 0 +{0}\: Doit \xEAtre un r\xE9el >\= 0={0}\: Must be a real number >\= 0 {0}\: Doit \xEAtre un r\xE9el={0}\: Must be a real number This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2016-12-20 13:52:49
|
Revision: 9490 http://sourceforge.net/p/fudaa/svn/9490 Author: bmarchan Date: 2016-12-20 13:52:46 +0000 (Tue, 20 Dec 2016) Log Message: ----------- Correction traduction Modified Paths: -------------- trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt Modified: trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt =================================================================== --- trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt 2016-12-20 13:36:13 UTC (rev 9489) +++ trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt 2016-12-20 13:52:46 UTC (rev 9490) @@ -157,7 +157,7 @@ Le champ est vide=The field is empty Le document n'est pas accessible=The document can not be accessed Le document ne peut pas \xEAtre affich\xE9=The document can not be displayed -Le fichier '{0}' existe d\xE9j\xE0 et est prot\xE9g\xE9=The file {0} already exists and it's write protected +Le fichier '{0}' existe d\xE9j\xE0 et est prot\xE9g\xE9 ou utilis\xE9 par un autre processus=The file '{0}' already exists and is write protected or used by another process Le fichier DAT ne contient pas de donn\xE9es concernant une image Raster=The DAT file does not contain image informations Le fichier choisi est un dossier=The selected file is a folder Le fichier n'est pas accessible en \xE9criture=The file can't be written This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2016-12-20 13:36:15
|
Revision: 9489 http://sourceforge.net/p/fudaa/svn/9489 Author: bmarchan Date: 2016-12-20 13:36:13 +0000 (Tue, 20 Dec 2016) Log Message: ----------- Ebli common => Java 1.7 Modified Paths: -------------- trunk/framework/ebli-common/pom.xml Modified: trunk/framework/ebli-common/pom.xml =================================================================== --- trunk/framework/ebli-common/pom.xml 2016-12-20 13:19:20 UTC (rev 9488) +++ trunk/framework/ebli-common/pom.xml 2016-12-20 13:36:13 UTC (rev 9489) @@ -9,26 +9,6 @@ <groupId>org.fudaa.framework.ebli</groupId> <artifactId>ebli-common</artifactId> <name>ebli-common</name> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.5</source> - <target>1.5</target> - <encoding>${project.build.sourceEncoding}</encoding> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <configuration> - <encoding>${project.build.sourceEncoding}</encoding> - </configuration> - </plugin> - </plugins> - </build> <dependencies> <dependency> <groupId>${ctuluGroupId}</groupId> @@ -56,7 +36,4 @@ <scope>test</scope> </dependency> </dependencies> - <properties> - <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding> - </properties> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2016-12-20 13:19:23
|
Revision: 9488 http://sourceforge.net/p/fudaa/svn/9488 Author: bmarchan Date: 2016-12-20 13:19:20 +0000 (Tue, 20 Dec 2016) Log Message: ----------- Export rapport jaugeage : Fromattage des double + protection du document final. Modified Paths: -------------- trunk/soft/fudaa-lspiv/distrib/src/dist/templates/template_gauging_fr.xlsx trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 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/PivExportGaugingReportFillValuesPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java 2016-12-20 13:17:54 UTC (rev 9487) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportGaugingReportFillValuesPanel.java 2016-12-20 13:19:20 UTC (rev 9488) @@ -121,6 +121,8 @@ mdValues_=new ValuesTableModel(userVars); tbValues_=new JTable(mdValues_); + // Pour conserver la valeur saisie, m\xEAme lorsqu'on clique sur le bouton Ok + tbValues_.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); JScrollPane sp=new JScrollPane(tbValues_); JPanel pnValues=new JPanel(); 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 2016-12-20 13:17:54 UTC (rev 9487) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-20 13:19:20 UTC (rev 9488) @@ -14,12 +14,16 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.text.DecimalFormat; import java.util.HashMap; +import java.util.Locale; import javax.imageio.ImageIO; import javax.swing.JFileChooser; import javax.swing.JOptionPane; +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Hex; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.ClientAnchor; import org.apache.poi.ss.usermodel.CreationHelper; @@ -31,10 +35,13 @@ import org.apache.poi.ss.util.AreaReference; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellReference; +import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibImage; import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluFileChooser; +import org.fudaa.ctulu.gui.CtuluFileChooserTestWritable; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.piv.PivExportGaugingReportFillValuesPanel; import org.fudaa.fudaa.piv.PivImplementation; @@ -271,7 +278,7 @@ Cell c=r.getCell(currentCol); if (c != null) { Object val=cellWrapper.getValue(irow, icol); - c.setCellValue(val == null ? "-" : val.toString()); + c.setCellValue(val == null ? "-" : val.toString().trim()); } CellRangeAddress cra=rc2CellAdress.get(currentRow + "_" + currentCol); if (cra == null) { @@ -292,14 +299,29 @@ } } - // Ecriture du fichier final + // Lock et ecriture du fichier final - if (fcReport_ == null) + for (int i=0; i<wb.getNumberOfSheets(); i++) { + XSSFSheet sheet = (XSSFSheet)wb.getSheetAt(i); + sheet.protectSheet("__LSPIV__"); + sheet.lockDeleteColumns(); + sheet.lockDeleteRows(); + sheet.lockFormatCells(); + sheet.lockFormatColumns(); + sheet.lockFormatRows(); + sheet.lockInsertColumns(); + sheet.lockInsertRows(); + sheet.enableLocking(); + } + + if (fcReport_ == null) { fcReport_=new CtuluFileChooser(true); - fcReport_.setAcceptAllFileFilterUsed(true); - fcReport_.setFileFilter(PivUtils.FILE_FLT_XLSX); - fcReport_.setMultiSelectionEnabled(false); - fcReport_.setDialogTitle(PivResource.getS("Ficher Excel d'export")); + fcReport_.setTester(new CtuluFileChooserTestWritable(impl)); + fcReport_.setAcceptAllFileFilterUsed(true); + fcReport_.setFileFilter(PivUtils.FILE_FLT_XLSX); + fcReport_.setMultiSelectionEnabled(false); + fcReport_.setDialogTitle(PivResource.getS("Ficher Excel d'export")); + } if (fcReport_.showSaveDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) { return; } @@ -333,7 +355,7 @@ } /** - * Definit les varaibles connues du systeme. + * Definit les variables connues du systeme. */ public HashMap<String, AbstractCellData> defineSystemVariables() { HashMap<String, AbstractCellData> systemVars_=new HashMap<>(); @@ -348,33 +370,43 @@ final Double meanDisch=globRes.getAverageScalarResult(ResultType.FULL_DISCHARGE); final Double meanArea=globRes.getAverageScalarResult(ResultType.WETTED_AREA); final Double meanMeanV=globRes.getAverageScalarResult(ResultType.MEAN_VELOCITY); + final Double meanMeasuredDisch=globRes.getAverageScalarResult(ResultType.MEASURED_DISCHARGE); final HashMap<String,Object> imgOptions = new HashMap<>(); imgOptions.put(CtuluLibImage.PARAMS_FILL_BACKGROUND_BOOLEAN, Boolean.FALSE); + final DecimalFormat fmtStd = CtuluLib.getDecimalFormat(3); + final DecimalFormat fmtEcart = CtuluLib.getNoEffectDecimalFormat(); + fmtEcart.setMaximumFractionDigits(1); + fmtEcart.setMinimumFractionDigits(1); + fmtEcart.setPositivePrefix("+"); + final DecimalFormat fmtExp=new DecimalFormat("#"); + fmtExp.setMaximumFractionDigits(3); + fmtExp.setMinimumFractionDigits(2); + systemVars_.put("__COEF_VITESSE",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { // On prend le coef de vitesse du premier transect, s'il existe - return (transects==null || transects.length==0) ? null:""+transects[0].getParams().getSurfaceCoef(); + return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getSurfaceCoef(),null); } }); systemVars_.put("__CORREL_MAX",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:""+pivParams.getMaxCorrelation(); + return pivParams==null ? null:""+format(fmtStd,pivParams.getMaxCorrelation(),null); } }); systemVars_.put("__CORREL_MIN",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:""+pivParams.getMinCorrelation(); + return pivParams==null ? null:""+format(fmtStd,pivParams.getMinCorrelation(),null); } }); systemVars_.put("__DEBIT_MOYEN",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return meanDisch==null ? null:meanDisch+" m\xB3/s"; + return meanDisch==null ? null:format(fmtStd,meanDisch,"m\xB3/s"); } }); systemVars_.put("__ERREUR_MAX",new AbstractScalarCellData() { @@ -387,19 +419,19 @@ for (PivOrthoPoint pt : orthoPoints) { maxi=Math.max(maxi, pt.getError()); } - return maxi+" m"; + return format(fmtStd,maxi,"m"); } }); systemVars_.put("__HAUTEUR",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:orthoParams.getWaterElevation()+" m"; + return orthoParams==null ? null:format(fmtStd,orthoParams.getWaterElevation(),"m"); } }); systemVars_.put("__IA_M",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return (pivParams==null || orthoParams==null) ? null:(pivParams.getIASize()*orthoParams.getResolution())+" m"; + return (pivParams==null || orthoParams==null) ? null:format(fmtStd,pivParams.getIASize()*orthoParams.getResolution(),"m"); } }); systemVars_.put("__IA_PIX",new AbstractScalarCellData() { @@ -411,7 +443,7 @@ systemVars_.put("__INTERTEMPS",new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:pivParams.getTimeInterval()+" s"; + return pivParams==null ? null:format(fmtStd,pivParams.getTimeInterval(),"s"); } }); systemVars_.put("__NOM_PROJET",new AbstractScalarCellData() { @@ -441,76 +473,93 @@ systemVars_.put("__NORME_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:pivParams.getSmax()+" m/s"; + return pivParams==null ? null:format(fmtStd,pivParams.getSmax(),"m/s"); } }); systemVars_.put("__NORME_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:pivParams.getSmin()+" m/s"; + return pivParams==null ? null:format(fmtStd,pivParams.getSmin(),"m/s"); } }); systemVars_.put("__PAS_INTERPOLATION", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { // On prend le pas du premier transect, s'il existe - return (transects==null || transects.length==0) ? null:transects[0].getParams().getInterpolationStep()+" m"; + return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getInterpolationStep(),"m"); } }); + systemVars_.put("__RATIO_DEBIT_MESURE", new AbstractScalarCellData() { + @Override + public String getValue(int _row, int _col) { + return meanMeasuredDisch==null ? null:meanMeasuredDisch/meanDisch*100+" %"; + } + }); systemVars_.put("__RAYON_RECHERCHE", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { // On prend le rayon du premier transect, s'il existe - return (transects==null || transects.length==0) ? null:transects[0].getParams().getRadius()+" m"; + return (transects==null || transects.length==0) ? null:format(fmtStd,transects[0].getParams().getRadius(),"m"); } }); systemVars_.put("__RESOLUTION", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { // On prend le rayon du premier transect, s'il existe - return orthoParams==null ? null:orthoParams.getResolution()+" m/pix"; + return orthoParams==null ? null:format(fmtStd,orthoParams.getResolution(),"m/pix"); } }); - systemVars_.put("__RESULTATS", new AbstractCellData() { + systemVars_.put("__TB_RESULTATS_DEBIT", new AbstractCellData() { @Override - public String getValue(int _row, int _col) { - if (flowResults==null) + public String getValue(int rowIndex, int _col) { + if (flowResults==null || flowResults.length==0) return null; + Double val; + switch (_col) { + default: case 0: - default: - // Num\xE9ro de transect - return _row+1+""; + return rowIndex==flowResults.length? PivResource.getS("Moyenne"):""+(rowIndex+1); case 1: - // D\xE9bit total - return flowResults[_row].getDischarge()+""; + val=rowIndex==flowResults.length? meanDisch:flowResults[rowIndex].getDischarge(); + return format(fmtStd, val,null); case 2: - // Ecart debit % moyenne - return ((flowResults[_row].getDischarge()-meanDisch)/meanDisch*100)+""; + val=rowIndex==flowResults.length? meanDisch:flowResults[rowIndex].getDischarge(); + val = (val-meanDisch)/meanDisch*100; + return format(fmtEcart, val,null); case 3: - // Aire mouill\xE9e - return flowResults[_row].getWettedArea()+""; + val = rowIndex==flowResults.length? meanArea:flowResults[rowIndex].getWettedArea(); + return format(fmtStd, val,null); case 4: - // Ecart aire mouill\xE9e % moyenne - return ((flowResults[_row].getWettedArea()-meanArea)/meanArea*100)+""; + val=rowIndex==flowResults.length? meanArea:flowResults[rowIndex].getWettedArea(); + val = (val-meanArea)/meanArea*100; + return format(fmtEcart, val,null); case 5: - // Vitese moyenne - return flowResults[_row].getMeanVelocity()+""; + val = rowIndex==flowResults.length? meanMeanV:flowResults[rowIndex].getMeanVelocity(); + return format(fmtStd, val,null); case 6: - // Ecart vitesse moyenne % moyenne - return ((flowResults[_row].getMeanVelocity()-meanMeanV)/meanMeanV*100)+""; + val=rowIndex==flowResults.length? meanMeanV:flowResults[rowIndex].getMeanVelocity(); + val = (val-meanMeanV)/meanMeanV*100; + return format(fmtEcart, val,null); + case 7: + val = rowIndex==flowResults.length? meanMeasuredDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); + return format(fmtStd, val,null); + case 8: + val=rowIndex==flowResults.length? meanMeasuredDisch:flowResults[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); + val = (val-meanMeasuredDisch)/meanMeasuredDisch*100; + return format(fmtEcart, val,null); } } @Override public int getNbCols() { - return 7; + return 9; } @Override public int getNbRows() { - return transects==null ? 0 : transects.length; + return transects==null ? 0 : transects.length+1; } }); systemVars_.put("__SIM_MS", new AbstractScalarCellData() { @@ -525,7 +574,7 @@ val = orthoParams.getResolution()*pivParams.getSim()/pivParams.getTimeInterval(); } - return val+" m/s"; + return format(fmtStd, val,"m/s"); } return null; } @@ -548,7 +597,7 @@ val = orthoParams.getResolution()*pivParams.getSip()/pivParams.getTimeInterval(); } - return val+" m/s"; + return format(fmtStd, val,"m/s"); } return null; } @@ -571,7 +620,7 @@ val = orthoParams.getResolution()*pivParams.getSjm()/pivParams.getTimeInterval(); } - return val+" m/s"; + return format(fmtStd, val,"m/s"); } return null; } @@ -594,7 +643,7 @@ val = orthoParams.getResolution()*pivParams.getSjp()/pivParams.getTimeInterval(); } - return val+" m/s"; + return format(fmtStd, val,"m/s"); } return null; } @@ -657,49 +706,49 @@ systemVars_.put("__VX_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:pivParams.getVxmax()+" m/s"; + return pivParams==null ? null:format(fmtStd, pivParams.getVxmax(), "m/s"); } }); systemVars_.put("__VX_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:pivParams.getVxmin()+" m/s"; + return pivParams==null ? null:format(fmtStd, pivParams.getVxmin(), "m/s"); } }); systemVars_.put("__VY_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:pivParams.getVymax()+" m/s"; + return pivParams==null ? null:format(fmtStd, pivParams.getVymax(),"m/s"); } }); systemVars_.put("__VY_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return pivParams==null ? null:pivParams.getVymin()+" m/s"; + return pivParams==null ? null:format(fmtStd, pivParams.getVymin(),"m/s"); } }); systemVars_.put("__X_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:orthoParams.getXmax()+" m"; + return orthoParams==null ? null:format(fmtStd, orthoParams.getXmax(),"m"); } }); systemVars_.put("__X_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:orthoParams.getXmin()+" m"; + return orthoParams==null ? null:format(fmtStd, orthoParams.getXmin(),"m"); } }); systemVars_.put("__Y_MAX", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:orthoParams.getYmax()+" m"; + return orthoParams==null ? null:format(fmtStd, orthoParams.getYmax(),"m"); } }); systemVars_.put("__Y_MIN", new AbstractScalarCellData() { @Override public String getValue(int _row, int _col) { - return orthoParams==null ? null:orthoParams.getYmin()+" m"; + return orthoParams==null ? null:format(fmtStd, orthoParams.getYmin(),"m"); } }); @@ -707,6 +756,33 @@ } /** + * Formatte le champs double en entr\xE9e + * @param _fmt Le format + * @param _val La valeur a formatter. + * @param _unit L'unit\xE9, ou null si aucune + * @return Si la valeur vaux Double.NaN, retourne NaN. + */ + private String format(DecimalFormat _fmt, Double _val, String _unit) { + String ret; + if (_val.isNaN()) { + ret=_val.toString(); + } + else { + ret=_fmt.format(_val); + } + + // C'est pas terrible, mais on passe en notation scientifique pour les grands nombres. + if (ret.length()>10) { + ret=String.format(Locale.US, "%10.3E", _val); + } + + if (_unit!=null) { + ret+=" "+_unit; + } + return ret; + } + + /** * @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement. */ public boolean isValide() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2016-12-20 13:17:56
|
Revision: 9487 http://sourceforge.net/p/fudaa/svn/9487 Author: bmarchan Date: 2016-12-20 13:17:54 +0000 (Tue, 20 Dec 2016) Log Message: ----------- Fix CtuluLibFile.canWrite(File) : La methode controle que le fichier a ecrire n'est pas utilis?\195?\169 par un autre processus Modified Paths: -------------- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/CtuluLibFile.java Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/CtuluLibFile.java =================================================================== --- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/CtuluLibFile.java 2016-12-19 10:11:49 UTC (rev 9486) +++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/CtuluLibFile.java 2016-12-20 13:17:54 UTC (rev 9487) @@ -11,9 +11,6 @@ */ package org.fudaa.ctulu; -import com.memoire.fu.Fu; -import com.memoire.fu.FuLib; -import com.memoire.fu.FuLog; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -33,8 +30,6 @@ import java.io.UnsupportedEncodingException; import java.io.Writer; import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.util.ArrayList; @@ -49,6 +44,10 @@ import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; +import com.memoire.fu.Fu; +import com.memoire.fu.FuLib; +import com.memoire.fu.FuLog; + /** * Classe utilitaire pour les fichiers. * @@ -1250,8 +1249,11 @@ } if (_f.exists()) { - if (!_f.canWrite()) { - return CtuluLib.getS("Le fichier '{0}' existe d\xE9j\xE0 et est prot\xE9g\xE9", _f.getName()); + if (!_f.canWrite() || + // BM : Le fichier peut \xEAtre ouvert par un autre processus qui ne le partage pas (Excel par exemple). + // File.renameTo() detecte ca. + (FuLib.isWindows() && !_f.renameTo(_f))) { + return CtuluLib.getS("Le fichier '{0}' existe d\xE9j\xE0 et est prot\xE9g\xE9 ou utilis\xE9 par un autre processus", _f.getName()); } // le fichier n'existe pas } else if (_f.getParentFile() == null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2016-12-19 10:11:52
|
Revision: 9486 http://sourceforge.net/p/fudaa/svn/9486 Author: bmarchan Date: 2016-12-19 10:11:49 +0000 (Mon, 19 Dec 2016) Log Message: ----------- Lecture et affichage du champ "D?\195?\169bit mesur?\195?\169" dans les r?\195?\169sultats du calcul de d?\195?\169bit Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 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/io/PivDischargeReader.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java 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 2016-12-16 16:04:05 UTC (rev 9485) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFlowInfoPanel.java 2016-12-19 10:11:49 UTC (rev 9486) @@ -37,6 +37,7 @@ private double meanDisch_; private double meanArea_; private double meanMeanV_; + private double meanMeasuredDisch_; /** * Une classe pour le modele de la table affichant les r\xE9sultats. @@ -48,7 +49,7 @@ } public int getColumnCount() { - return 7; + return 9; } public String getColumnName(int columnIndex) { @@ -68,6 +69,10 @@ return PivResource.getS("Vit. moy. (m/s)"); case 6: return PivResource.getS("Ecart (%)"); + case 7: + return PivResource.getS("D\xE9bit mesur\xE9 (m/s)"); + case 8: + return PivResource.getS("Ecart (%)"); } } @@ -101,6 +106,11 @@ case 6: val=rowIndex==res_.length? meanMeanV_:res_[rowIndex].getMeanVelocity(); return (val-meanMeanV_)/meanMeanV_*100; + case 7: + return rowIndex==res_.length? meanMeasuredDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); + case 8: + val=rowIndex==res_.length? meanMeasuredDisch_:res_[rowIndex].getValue(-1,ResultType.MEASURED_DISCHARGE); + return (val-meanMeasuredDisch_)/meanMeasuredDisch_*100; } } @@ -129,7 +139,10 @@ super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column); if (value instanceof Double) { - if (column==2 || column==4 || column==6) + if (((Double) value).isNaN()) { + this.setText(value.toString()); + } + else if (column==2 || column==4 || column==6 || column==8) this.setText(fmtEcart.format((Double)value)); else this.setText(fmt.format((Double)value)); @@ -147,9 +160,14 @@ JTable tbResults=new JTable(); tbResults.setModel(new DischargeTableModel()); tbResults.setDefaultRenderer(Double.class,new DischargeCellRenderer()); + tbResults.getColumnModel().getColumn(0).setMaxWidth(60); + tbResults.getColumnModel().getColumn(2).setMaxWidth(70); + tbResults.getColumnModel().getColumn(4).setMaxWidth(70); + tbResults.getColumnModel().getColumn(6).setMaxWidth(70); + tbResults.getColumnModel().getColumn(8).setMaxWidth(70); JScrollPane spResults=new JScrollPane(); spResults.getViewport().add(tbResults); - spResults.setPreferredSize(new Dimension(700,200)); + spResults.setPreferredSize(new Dimension(850,200)); add(new JLabel(PivResource.getS("Liste des transects")),BorderLayout.NORTH); add(spResults, BorderLayout.CENTER); @@ -159,9 +177,10 @@ protected void computeMoyennes() { PivGlobalFlowResults globRes=new PivGlobalFlowResults(res_); - meanDisch_=globRes.getAverageScalarResult(ResultType.DISCHARGE); + meanDisch_=globRes.getAverageScalarResult(ResultType.FULL_DISCHARGE); meanArea_=globRes.getAverageScalarResult(ResultType.WETTED_AREA); meanMeanV_=globRes.getAverageScalarResult(ResultType.MEAN_VELOCITY); + meanMeasuredDisch_=globRes.getAverageScalarResult(ResultType.MEASURED_DISCHARGE); } @Override 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 2016-12-16 16:04:05 UTC (rev 9485) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportGaugingReportAction.java 2016-12-19 10:11:49 UTC (rev 9486) @@ -345,7 +345,7 @@ final PivOrthoParameters orthoParams = impl.getCurrentProject().getOrthoParameters(); final PivGlobalFlowResults globRes = new PivGlobalFlowResults(flowResults); - final Double meanDisch=globRes.getAverageScalarResult(ResultType.DISCHARGE); + final Double meanDisch=globRes.getAverageScalarResult(ResultType.FULL_DISCHARGE); final Double meanArea=globRes.getAverageScalarResult(ResultType.WETTED_AREA); final Double meanMeanV=globRes.getAverageScalarResult(ResultType.MEAN_VELOCITY); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2016-12-16 16:04:05 UTC (rev 9485) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivDischargeReader.java 2016-12-19 10:11:49 UTC (rev 9486) @@ -17,6 +17,7 @@ import org.fudaa.dodico.fortran.FileCharSimpleReaderAbstract; import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.metier.PivFlowResults; +import org.fudaa.fudaa.piv.metier.PivResultsI.ResultType; /** * Un lecteur pour les fichiers des r\xE9sultats de calcul de d\xE9bit. @@ -80,6 +81,7 @@ // 1ere ligne in_.readFields(); + // Le niveau d'eau res.setWaterElevation(in_.doubleField(0)); // Debit res.setDischarge(in_.doubleField(1)); @@ -87,6 +89,10 @@ res.setWettedArea(in_.doubleField(2)); // Vitesse moyenne res.setMeanVelocity(in_.doubleField(3)); + // D\xE9bit mesur\xE9 (Fudaa-LSPIV > 1.5.0) + if (in_.getNumberOfFields()>4) { + res.setValue(0, ResultType.MEASURED_DISCHARGE, in_.doubleField(4)); + } // Boucle jusque fin de fichier. Exception EOF si fin. while (true) { Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2016-12-16 16:04:05 UTC (rev 9485) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2016-12-19 10:11:49 UTC (rev 9486) @@ -19,6 +19,7 @@ import org.fudaa.fudaa.piv.PivVisuPanel; import org.fudaa.fudaa.piv.metier.PivFlowResults; import org.fudaa.fudaa.piv.metier.PivProject; +import org.fudaa.fudaa.piv.metier.PivResultsI.ResultType; import org.fudaa.fudaa.piv.metier.PivTransect; import org.fudaa.fudaa.piv.metier.PivTransectParams; @@ -252,6 +253,7 @@ Double discharge=res.getDischarge(); Double wettedArea=res.getWettedArea(); Double meanVelocity=res.getMeanVelocity(); + Double measuredDischarge=res.getValue(-1,ResultType.MEASURED_DISCHARGE); for (int idx : selIds) { res=prj_.getFlowResults()[idx]; @@ -263,6 +265,8 @@ wettedArea=null; if (meanVelocity != res.getMeanVelocity()) meanVelocity=null; + if (measuredDischarge != res.getValue(-1,ResultType.MEASURED_DISCHARGE)) + measuredDischarge=null; } if (waterElevation != null) @@ -273,6 +277,8 @@ _d.put(PivResource.getS("Aire mouill\xE9e (m\xB2)"), "" + wettedArea); if (meanVelocity != null) _d.put(PivResource.getS("Vitesse moyenne sur la section (m/s)"), "" + meanVelocity); + if (measuredDischarge != null) + _d.put(PivResource.getS("D\xE9bit mesur\xE9 (m\xB3/s)"), "" + measuredDischarge); } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java 2016-12-16 16:04:05 UTC (rev 9485) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivFlowResults.java 2016-12-19 10:11:49 UTC (rev 9486) @@ -19,6 +19,8 @@ protected double meanVelocity; /** Le niveau d'eau */ protected double waterElevation; + /** Le d\xE9bit mesur\xE9. Peut \xEAtre NaN si la mesure n'est pas calcul\xE9e (Fudaa-LSPIV < 1.5.0). */ + protected double measuredDischarge = Double.NaN; /** Les coordonn\xE9es X des points */ protected double[] x; /** Les coordonn\xE9es Y des points */ @@ -162,7 +164,7 @@ @Override public ResultType[] getResults() { - return new ResultType[]{ResultType.VX,ResultType.VY,ResultType.DISCHARGE, ResultType.WETTED_AREA, ResultType.MEAN_VELOCITY, ResultType.WATER_ELEVATION}; + return new ResultType[]{ResultType.VX,ResultType.VY,ResultType.FULL_DISCHARGE, ResultType.WETTED_AREA, ResultType.MEAN_VELOCITY, ResultType.WATER_ELEVATION, ResultType.MEASURED_DISCHARGE}; } @Override @@ -176,7 +178,7 @@ return getVx(_ind); else if (ResultType.VY.equals(_tpRes)) return getVy(_ind); - else if (ResultType.DISCHARGE.equals(_tpRes)) + else if (ResultType.FULL_DISCHARGE.equals(_tpRes)) return discharge; else if (ResultType.WETTED_AREA.equals(_tpRes)) return wettedArea; @@ -184,6 +186,8 @@ return meanVelocity; else if (ResultType.WATER_ELEVATION.equals(_tpRes)) return waterElevation; + else if (ResultType.MEASURED_DISCHARGE.equals(_tpRes)) + return measuredDischarge; else return -1; } @@ -194,7 +198,7 @@ return vy; else if (ResultType.VY.equals(_tpRes)) return vy; - else if (ResultType.DISCHARGE.equals(_tpRes)) + else if (ResultType.FULL_DISCHARGE.equals(_tpRes)) return new double[]{discharge}; else if (ResultType.WETTED_AREA.equals(_tpRes)) return new double[]{wettedArea}; @@ -202,6 +206,8 @@ return new double[]{meanVelocity}; else if (ResultType.WATER_ELEVATION.equals(_tpRes)) return new double[]{waterElevation}; + else if (ResultType.MEASURED_DISCHARGE.equals(_tpRes)) + return new double[]{measuredDischarge}; else return null; } @@ -211,14 +217,14 @@ if (!hasResult(_tpRes)) return; - if (_ind>=vx.length) + if (_tpRes.isVector() && _ind>=vx.length) return; if (ResultType.VX.equals(_tpRes)) vx[_ind] = _val; else if (ResultType.VY.equals(_tpRes)) vy[_ind] = _val; - else if (ResultType.DISCHARGE.equals(_tpRes)) + else if (ResultType.FULL_DISCHARGE.equals(_tpRes)) discharge = _val; else if (ResultType.WETTED_AREA.equals(_tpRes)) wettedArea = _val; @@ -226,5 +232,7 @@ meanVelocity = _val; else if (ResultType.WATER_ELEVATION.equals(_tpRes)) waterElevation = _val; + else if (ResultType.MEASURED_DISCHARGE.equals(_tpRes)) + measuredDischarge = _val; } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java 2016-12-16 16:04:05 UTC (rev 9485) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsI.java 2016-12-19 10:11:49 UTC (rev 9486) @@ -22,7 +22,10 @@ CORREL(true), OMEGA(true), DIVERG(true), - DISCHARGE(false), + /** D\xE9bit total */ + FULL_DISCHARGE(false), + /** D\xE9bit mesur\xE9 */ + MEASURED_DISCHARGE(false), WETTED_AREA(false), MEAN_VELOCITY(false), WATER_ELEVATION(false); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |