From: <bma...@us...> - 2011-12-04 18:53:59
|
Revision: 6783 http://fudaa.svn.sourceforge.net/fudaa/?rev=6783&view=rev Author: bmarchan Date: 2011-12-04 18:53:52 +0000 (Sun, 04 Dec 2011) Log Message: ----------- Refactor setImage() Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivAbstractImageModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransfImageModel.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2011-12-04 18:32:38 UTC (rev 6782) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2011-12-04 18:53:52 UTC (rev 6783) @@ -148,7 +148,7 @@ if (!enableEvents_) return; if (cqOriginalImg_!=null && cqOriginalImg_.getModelImage()!=null) { - cqOriginalImg_.getModelImage().setImage(cbImg_.getSelectedIndex()); + cqOriginalImg_.getModelImage().setSelectedImage(cbImg_.getSelectedIndex()); // Pour que le calque soit r\xE9affich\xE9. cqOriginalImg_.repaint(); } @@ -202,7 +202,7 @@ public void projectStateChanged(PivProject _prj, String _prop) { if("pgmImages".equals(_prop)) { majTools(); - mdlOriginalImage.setImage(cbImg_.getSelectedIndex()); + mdlOriginalImage.setSelectedImage(cbImg_.getSelectedIndex()); } else if("orthoPoints".equals(_prop)) { mdlOrthoPoints.update(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2011-12-04 18:32:38 UTC (rev 6782) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2011-12-04 18:53:52 UTC (rev 6783) @@ -396,7 +396,7 @@ private void setSelectedImage(int _ind) { if (cqRealImg_!=null && cqRealImg_.getModelImage()!=null) { - cqRealImg_.getModelImage().setImage(_ind); + cqRealImg_.getModelImage().setSelectedImage(_ind); // Pour que le calque soit r\xE9affich\xE9. cqRealImg_.repaint(); } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java 2011-12-04 18:32:38 UTC (rev 6782) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java 2011-12-04 18:53:52 UTC (rev 6783) @@ -195,7 +195,7 @@ if (!enableEvents_) return; if (cqTransfImage_!=null && cqTransfImage_.getModelImage()!=null) { - cqTransfImage_.getModelImage().setImage(cbImg_.getSelectedIndex()); + cqTransfImage_.getModelImage().setSelectedImage(cbImg_.getSelectedIndex()); // Pour que le calque soit r\xE9affich\xE9. cqTransfImage_.repaint(); } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivAbstractImageModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivAbstractImageModel.java 2011-12-04 18:32:38 UTC (rev 6782) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivAbstractImageModel.java 2011-12-04 18:53:52 UTC (rev 6783) @@ -11,7 +11,7 @@ /** * Un modele pour un calque image. * @author Bertrand Marchand (mar...@de...) - * @version $Id:$ + * @version $Id$ */ public abstract class PivAbstractImageModel extends ZModeleStatiqueImageRaster { @@ -21,9 +21,9 @@ public abstract PivProject getProject(); /** - * Definit l'image du projet a afficher. + * S\xE9lectionne l'image du projet a afficher. * @param _idx L'index de l'image dans la liste des images, -1 si aucune image \xE0 afficher. */ - public abstract void setImage(int _idx); + public abstract void setSelectedImage(int _idx); } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java 2011-12-04 18:32:38 UTC (rev 6782) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java 2011-12-04 18:53:52 UTC (rev 6783) @@ -47,7 +47,7 @@ * Met a jour le mod\xE8le en fonction de la premi\xE8re image reconditionn\xE9e. */ public void update() { - setImage(0); + setSelectedImage(0); } /** @@ -55,7 +55,7 @@ * @param _idx L'index de l'image dans le projet. */ @Override - public void setImage(int _idx) { + public void setSelectedImage(int _idx) { File[] srcFiles=prj_.getSrcImageFiles(); // Si l'indice d'image est bien dans les images disponibles Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java 2011-12-04 18:32:38 UTC (rev 6782) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivRealImageModel.java 2011-12-04 18:53:52 UTC (rev 6783) @@ -45,7 +45,7 @@ * Met a jour le mod\xE8le en fonction de la premi\xE8re image transform\xE9e. */ public void update() { - setImage(0); + setSelectedImage(0); } /** @@ -53,7 +53,7 @@ * @param _idx L'index de l'image dans le projet. */ @Override - public void setImage(int _idx) { + public void setSelectedImage(int _idx) { File[] imgFiles=prj_.getTransfImageFiles(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransfImageModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransfImageModel.java 2011-12-04 18:32:38 UTC (rev 6782) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransfImageModel.java 2011-12-04 18:53:52 UTC (rev 6783) @@ -45,7 +45,7 @@ * Met a jour le mod\xE8le en fonction de la premi\xE8re image transform\xE9e. */ public void update() { - setImage(0); + setSelectedImage(0); } /** @@ -53,7 +53,7 @@ * @param _idx L'index de l'image dans le projet. */ @Override - public void setImage(int _idx) { + public void setSelectedImage(int _idx) { File[] imgFiles=prj_.getTransfImageFiles(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2011-12-05 15:18:25
|
Revision: 6796 http://fudaa.svn.sourceforge.net/fudaa/?rev=6796&view=rev Author: bmarchan Date: 2011-12-05 15:18:14 +0000 (Mon, 05 Dec 2011) Log Message: ----------- Fix Linux : Liste des fichiers du projet dans un ordre alphab?\195?\169tique Modified Paths: -------------- 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/PivProject.java 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 2011-12-05 15:16:41 UTC (rev 6795) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2011-12-05 15:18:14 UTC (rev 6796) @@ -5,13 +5,11 @@ package org.fudaa.fudaa.piv.io; -import com.memoire.fu.FuLib; -import com.memoire.fu.FuLog; import java.io.File; -import java.io.FileFilter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; + import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluIOOperationSynthese; import org.fudaa.ctulu.CtuluLibFile; @@ -26,6 +24,9 @@ import org.fudaa.fudaa.piv.metier.PivProject; import org.fudaa.fudaa.piv.metier.PivVelResults; +import com.memoire.fu.FuLib; +import com.memoire.fu.FuLog; + /** * Une classe pour lancer les executables externes. Les exe sont sous la forme * d'un script ou directement d'un executable. La plupart des exes sont lanc\xE9s @@ -381,11 +382,7 @@ ret=writer.write(_prj.getComputeGrid(), gridFile, null); // Les images transform\xE9es - File[] imgOut=prjImgOut.listFiles(new FileFilter() { - public boolean accept(File _f) { - return _f.getPath().endsWith(".pgm"); - } - }); + File[] imgOut=_prj.getTransfImageFiles(); int prog=5; for (int i=0; i<imgOut.length-1; i++) { Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2011-12-05 15:16:41 UTC (rev 6795) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2011-12-05 15:18:14 UTC (rev 6796) @@ -47,7 +47,7 @@ import com.memoire.fu.FuLog; /** - * Le projet contenant toutes les donn\xE9es. Chauqe projet peut \xEAtre sauv\xE9/relu + * Le projet contenant toutes les donn\xE9es. Chaque projet peut \xEAtre sauv\xE9/relu * grace aux fichiers projets. * * @author Bertrand Marchand (mar...@de...) @@ -180,8 +180,8 @@ } /** - * Retourne le chemin des fichiers vitesses brutes. - * @return Le chemin des fichiers. + * Retourne le chemin des fichiers vitesses brutes, ordonn\xE9es par ordre alphab\xE9tique. + * @return Les chemins des fichiers */ public File[] getRawVelocityFiles() { File velRawDir=new File(rootPath,VEL_RAW_DIR); @@ -192,11 +192,14 @@ return _f.isFile() && (_f.getPath().endsWith(".dat")); } }); + // files n'est jamais null. + Arrays.sort(files); + return files; } /** - * Retourne le chemin des images sources. + * Retourne le chemin des images sources, dans l'ordre utilisateur. * @return Le chemin des images. */ public File[] getSrcImageFiles() { @@ -204,7 +207,8 @@ } /** - * @return Le chemins de images transformables uniquement parmis les images sources. + * @return Le chemins des images transformables uniquement parmis les images sources, dans + * l'ordre utilisateur. */ public File[] getTransformableImageFiles() { List<File> files = new ArrayList<File>(); @@ -567,8 +571,8 @@ } /** - * Retourne le chemin des fichiers images transform\xE9es - * @return Le chemin + * Retourne le chemin des fichiers images transform\xE9es, ordonn\xE9es par ordre alphab\xE9tique. + * @return Les chemins des fichiers. */ public File[] getTransfImageFiles() { File imgOutDir=new File(rootPath,IMG_TRANSF_DIR); @@ -579,6 +583,9 @@ return _f.isFile() && (_f.getPath().endsWith(".pgm")); } }); + // files n'est jamais null. + Arrays.sort(files); + return files; } @@ -793,13 +800,18 @@ } /** - * Charge les resultats de vitesses instantan\xE9es dans l'espace r\xE9el. + * Charge les resultats de vitesses instantan\xE9es dans l'espace r\xE9el, suivant l'ordre + * alphab\xE9tique des fichiers. + * * @param _prog L'interface de progression. * @return Les resultats ou <tt>null</tt> si aucun r\xE9sultat. */ public PivInstantVelResults[] loadInstantVelResults(ProgressionInterface _prog) { File[] instantVelFiles=new File(rootPath,VEL_REAL_DIR).listFiles(); + if (instantVelFiles!=null && instantVelFiles.length>0) { + Arrays.sort(instantVelFiles); + List<PivInstantVelResults> instantVel=new ArrayList<PivInstantVelResults>(); for (File f : instantVelFiles) { FileReadOperationAbstract reader=PivInstantVelFileFormat.getInstance().createReader(); @@ -819,9 +831,9 @@ public boolean[] loadUsedInstantVelResults(ProgressionInterface _prog) { boolean[] res; - File[] instantVelFiles=new File(rootPath,VEL_RAW_DIR).listFiles(); + File[] instantVelFiles=getRawVelocityFiles(); // Pas de r\xE9sultats instantan\xE9s - if (instantVelFiles==null || instantVelFiles.length==0) { + if (instantVelFiles.length==0) { res=new boolean[0]; return res; } @@ -941,10 +953,10 @@ */ public void saveUsedInstantVelResults() { - File[] instantVelFiles=new File(rootPath,VEL_RAW_DIR).listFiles(); + File[] instantVelFiles=getRawVelocityFiles(); // Pas de r\xE9sultats instantan\xE9s - if (instantVelFiles==null || instantVelFiles.length==0) return; - + if (instantVelFiles.length==0) return; + // Cr\xE9ation du fichier contenant la liste des fichiers piv.dat obtenus par calcul. PrintWriter out=null; try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2012-06-15 10:27:20
|
Revision: 7344 http://fudaa.svn.sourceforge.net/fudaa/?rev=7344&view=rev Author: bmarchan Date: 2012-06-15 10:27:09 +0000 (Fri, 15 Jun 2012) Log Message: ----------- Add : Tooltip diff?\195?\169rent du titre calque + chgt moyennation par moyenne + enregistrement des options d'affichage 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/PivOriginalView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.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/PivProject.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 2012-06-15 10:18:29 UTC (rev 7343) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2012-06-15 10:27:09 UTC (rev 7344) @@ -81,9 +81,9 @@ protected static BuInformationsSoftware isPIV_ = new BuInformationsSoftware(); static { isPIV_.name = "LSPIV"; - isPIV_.version = "1.2.1"; - isPIV_.date = "2011-12-15"; - isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CETMEF (c)1999-2011"; + isPIV_.version = "1.3.1-beta"; + isPIV_.date = "2012-06-15"; + isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CETMEF (c)1999-2012"; isPIV_.license = "GPL2"; isPIV_.languages = "en,fr"; isPIV_.authors=new String[]{"B.Marchand (DeltaCAD)"}; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2012-06-15 10:18:29 UTC (rev 7343) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2012-06-15 10:27:09 UTC (rev 7344) @@ -228,15 +228,17 @@ @Override public void restoreLayerProperties(Map<String, EbliUIProperties> _props) { - cqOrthoPoints_.initFrom(_props.get(cqOrthoPoints_.getName())); - cqOriginalImg_.initFrom(_props.get(cqOriginalImg_.getName())); + for (BCalqueAffichage cq : layers_) { + cq.initFrom(_props.get(cq.getName())); + } } @Override public Map<String, EbliUIProperties> saveLayerProperties() { HashMap<String, EbliUIProperties> props=new HashMap<String, EbliUIProperties>(); - props.put(cqOrthoPoints_.getName(),cqOrthoPoints_.saveUIProperties()); - props.put(cqOriginalImg_.getName(),cqOriginalImg_.saveUIProperties()); + for (BCalqueAffichage cq : layers_) { + props.put(cq.getName(),cq.saveUIProperties()); + } return props; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2012-06-15 10:18:29 UTC (rev 7343) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2012-06-15 10:27:09 UTC (rev 7344) @@ -205,7 +205,8 @@ return "m/s"; } }; - cqVelResults.setTitle(PivResource.getS("Vit. surf. moyennes")); + cqVelResults.setTitle(PivResource.getS("Vit. surf. moy.")); + cqVelResults.setLongTitle(PivResource.getS("Vitesse de surface moyenn\xE9e")); cqVelResults.setTitleModifiable(true); cqVelResults.setName("cqRealVel"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. @@ -225,7 +226,8 @@ return "m/s"; } }; - cqInstantVelResults_.setTitle(PivResource.getS("Vit. surf. instantan\xE9es")); + cqInstantVelResults_.setTitle(PivResource.getS("Vit. surf. inst.")); + cqInstantVelResults_.setLongTitle(PivResource.getS("Vitesse de surface instantan\xE9e")); cqInstantVelResults_.setTitleModifiable(true); cqInstantVelResults_.setName("cqInstantVel"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. @@ -245,7 +247,8 @@ return "m/s"; } }; - cqFlowResults.setTitle(PivResource.getS("Vit. moyennes sur vert.")); + cqFlowResults.setTitle(PivResource.getS("Vit. moy. prof.")); + cqFlowResults.setLongTitle(PivResource.getS("Vitesse moyenn\xE9e sur la profondeur")); cqFlowResults.setTitleModifiable(true); cqFlowResults.setName("cqRealFlow"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. @@ -491,23 +494,21 @@ @Override public void restoreLayerProperties(Map<String, EbliUIProperties> _props) { - cqFlowResults.initFrom(_props.get(cqFlowResults.getName())); - cqVelResults.initFrom(_props.get(cqVelResults.getName())); - cqRealOrthoPoints_.initFrom(_props.get(cqRealOrthoPoints_.getName())); + for (BCalqueAffichage cq : layers_) { + cq.initFrom(_props.get(cq.getName())); + } + // Special : Ce calque n'est pas dans la liste des calques. cqRealControlPoints_.initFrom(_props.get(cqRealControlPoints_.getName())); - cqRealImg_.initFrom(_props.get(cqRealImg_.getName())); - cqTransect_.initFrom(_props.get(cqTransect_.getName())); } @Override public Map<String, EbliUIProperties> saveLayerProperties() { HashMap<String, EbliUIProperties> props=new HashMap<String, EbliUIProperties>(); - props.put(cqFlowResults.getName(),cqFlowResults.saveUIProperties()); - props.put(cqVelResults.getName(),cqVelResults.saveUIProperties()); - props.put(cqRealOrthoPoints_.getName(),cqRealOrthoPoints_.saveUIProperties()); + for (BCalqueAffichage cq : layers_) { + props.put(cq.getName(),cq.saveUIProperties()); + } + // Special : Ce calque n'est pas dans la liste des calques. props.put(cqRealControlPoints_.getName(),cqRealControlPoints_.saveUIProperties()); - props.put(cqRealImg_.getName(),cqRealImg_.saveUIProperties()); - props.put(cqTransect_.getName(),cqTransect_.saveUIProperties()); return props; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java 2012-06-15 10:18:29 UTC (rev 7343) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java 2012-06-15 10:27:09 UTC (rev 7344) @@ -280,19 +280,17 @@ @Override public void restoreLayerProperties(Map<String, EbliUIProperties> _props) { - cqTransfImage_.initFrom(_props.get(cqTransfImage_.getName())); - cqGrille_.initFrom(_props.get(cqGrille_.getName())); - cqCntGrille_.initFrom(_props.get(cqCntGrille_.getName())); - cqIASA_.initFrom(_props.get(cqIASA_.getName())); + for (BCalqueAffichage cq : layers_) { + cq.initFrom(_props.get(cq.getName())); + } } @Override public Map<String, EbliUIProperties> saveLayerProperties() { HashMap<String, EbliUIProperties> props=new HashMap<String, EbliUIProperties>(); - props.put(cqTransfImage_.getName(),cqTransfImage_.saveUIProperties()); - props.put(cqGrille_.getName(),cqGrille_.saveUIProperties()); - props.put(cqCntGrille_.getName(),cqCntGrille_.saveUIProperties()); - props.put(cqIASA_.getName(),cqIASA_.saveUIProperties()); + for (BCalqueAffichage cq : layers_) { + props.put(cq.getName(),cq.saveUIProperties()); + } return props; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2012-06-15 10:18:29 UTC (rev 7343) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2012-06-15 10:27:09 UTC (rev 7344) @@ -23,7 +23,7 @@ import org.fudaa.fudaa.piv.io.PivExeLauncher; /** - * Une action pour lancer les filtres et moyennation sur les vitesses + * Une action pour lancer les filtres et moyenne sur les vitesses * instantan\xE9es. * * @author Bertrand Marchand (mar...@de...) @@ -38,7 +38,7 @@ * @param _impl L'implementation. */ public PivComputeAverageAction(PivImplementation _impl) { - super(PivResource.getS("Filtrage/moyennation des vitesses instantan\xE9es..."), null, "COMPUTE_AVERAGE"); + super(PivResource.getS("Filtrage/moyenne des vitesses instantan\xE9es..."), null, "COMPUTE_AVERAGE"); impl=_impl; setEnabled(false); @@ -73,7 +73,7 @@ impl.getCurrentProject().setUsedInstantVelResults(pn.getSelectedResults()); // La tache a ex\xE9cuter. - CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Filtrage/moyennation des vitesses instantan\xE9es")) { + CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Filtrage/moyenne des vitesses instantan\xE9es")) { public void act() { try { @@ -86,7 +86,7 @@ return; } - // Moyennation + // Moyenne PivExeLauncher.instance().launchAverageVelocities(ana, impl.getCurrentProject(), this); if (ana.containsErrorOrFatalError()) { impl.error(ana.getResume()); 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 2012-06-15 10:18:29 UTC (rev 7343) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2012-06-15 10:27:09 UTC (rev 7344) @@ -640,9 +640,9 @@ } /** - * Lance la moyennation des vitesses et leur restitution dans l'espace r\xE9el. Cette + * Lance la moyenne des vitesses et leur restitution dans l'espace r\xE9el. Cette * methode doit \xEAtre appel\xE9e juste apr\xE8s le filtrage des vitesses. - * La moyennation se fait dans le r\xE9pertoire projet. + * La moyenne se fait dans le r\xE9pertoire projet. * * @param _ana L'analyse pour la tache ex\xE9cut\xE9e. * @param _prj Le projet. @@ -660,7 +660,7 @@ File resFile=new File(prjOutputs,faverage); resFile.delete(); - String desc=PivResource.getS("Moyennation des vitesses..."); + String desc=PivResource.getS("Calcul des vitesses moyennes..."); FuLog.trace(desc); if (_task!=null) { _task.setDesc(desc); @@ -672,7 +672,7 @@ String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXES[5] + EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { - _ana.addError(PivResource.getS("Erreur de moyennation des vitesses:\n")+outs); + _ana.addError(PivResource.getS("Erreur de calcul des vitesses moyennes:\n")+outs); return false; } @@ -685,7 +685,7 @@ PivVelResults res=(PivVelResults)ret.getSource(); if (_task!=null && _task.isStopRequested()) { - _ana.addError(PivResource.getS("Moyennation interrompue")); + _ana.addError(PivResource.getS("Calcul interrompu")); return false; } @@ -695,7 +695,7 @@ if (_task!=null) _task.setProgression(100); - FuLog.trace(PivResource.getS("Moyennation ok.")); + FuLog.trace(PivResource.getS("Calcul des vitesses moyennes ok.")); } catch (IOException ex) { _ana.addError(ex.getMessage()); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-06-15 10:18:29 UTC (rev 7343) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-06-15 10:27:09 UTC (rev 7344) @@ -995,8 +995,8 @@ } /** - * Sauvegarde sur une liste les resultats instantan\xE9es utilis\xE9s pour le calcul de - * moyennation. + * Sauvegarde sur une liste les resultats instantan\xE9es utilis\xE9s pour le calcul des + * vitesses moyenn\xE9es. */ public void saveUsedInstantVelResults() { @@ -1257,7 +1257,7 @@ } /** - * Definit les resultats instantan\xE9s \xE0 utiliser pour le calcul de moyennation. + * Definit les resultats instantan\xE9s \xE0 utiliser pour le calcul des vitesses moyennes. * @param _usedVelResults */ public void setUsedInstantVelResults(boolean[] _usedVelResults) { @@ -1265,7 +1265,7 @@ } /** - * @return La liste des resultats instantan\xE9s utuilis\xE9s pour la moyennation. La valeur + * @return La liste des resultats instantan\xE9s utuilis\xE9s pour le calcul de vitesses . La valeur * a l'index du resultat est True si utilis\xE9. */ public boolean[] getUsedInstantVelResults() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2012-07-03 13:21:30
|
Revision: 7438 http://fudaa.svn.sourceforge.net/fudaa/?rev=7438&view=rev Author: bmarchan Date: 2012-07-03 13:21:19 +0000 (Tue, 03 Jul 2012) Log Message: ----------- Fix : Calcul impossible si les images caches ne sont pas cr?\195?\169?\195?\169es imm?\195?\169diatement + suppression exe repack Modified Paths: -------------- 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/PivProject.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/package.html Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/package.html =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/package.html (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/package.html 2012-07-03 13:21:19 UTC (rev 7438) @@ -0,0 +1,6 @@ +<html> +<body> +Contient les classes n\xE9cessaires \xE0 la lecture/\xE9criture de certains formats d'images, +comme le format PGM. +</body> +</html> Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/package.html ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native 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 2012-07-03 07:45:52 UTC (rev 7437) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2012-07-03 13:21:19 UTC (rev 7438) @@ -37,11 +37,23 @@ * @version $Id$ */ public class PivExeLauncher { + /** Les exe pouvant \xEAtre lanc\xE9s */ - private final static String[] EXES={ - "ortho_plan","transf_a","PIV","repack","verif_ortho", - "moy_ec","filter","bathy_compute","Q_compute","vel_transf"}; - private final static String[] CMDS={"repack"}; + private enum EXE { + ortho_plan, + transf_a, + PIV, + verif_ortho, + moy_ec, + filter, + bathy_compute, + Q_compute, + vel_transf + } + + /** Les scripts pouvant etre lanc\xE9s */ + private enum CMD { + } /** */ private static final String OUTPUT_DIR="outputs.dir"; @@ -109,15 +121,15 @@ public String[] getMissingExeOrCmdIn(File _exePath) { ArrayList<String> list=new ArrayList<String>(); - for (int i=0; i<EXES.length; i++) { - if (!new File(_exePath,EXES[i]+EXE_EXT).exists()) { - list.add(EXES[i]+EXE_EXT); + for (EXE exe : EXE.values()) { + if (!new File(_exePath,exe.toString()+EXE_EXT).exists()) { + list.add(exe.toString()+EXE_EXT); } } - for (int i=0; i<CMDS.length; i++) { - if (!new File(_exePath,CMDS[i]+CMD_EXT).exists()) { - list.add(CMDS[i]+CMD_EXT); + for (CMD cmd : CMD.values()) { + if (!new File(_exePath,cmd.toString()+CMD_EXT).exists()) { + list.add(cmd.toString()+CMD_EXT); } } return list.toArray(new String[0]); @@ -176,7 +188,7 @@ // Lancement try { - String outs=FuLib.runProgram(new String[]{exePath+File.separator+EXES[0]+EXE_EXT}, prjRoot); + String outs=FuLib.runProgram(new String[]{exePath+File.separator+EXE.ortho_plan+EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { _ana.addError(PivResource.getS("Erreur de calcul des coefficients :\n")+outs); return false; @@ -252,13 +264,18 @@ int maxIter=(_apercu?1:imgInp.length); for (int i = 0; i <maxIter ; i++) { -// String srcFileName = imgInp[i].getName(); - File cache=_prj.getCacheImageFile(imgInp[i]); try { - BufferedImage buffer = ImageIO.read(cache); - new PivPGMWriter().write(new File(prjImgInp, fimgInpExe.getName()), buffer); - // Attention : Le nom ne doit pas etre le m\xEAme que les images d\xE9ja stock\xE9es -// copyFile(prjImgInp, prjImgInp, srcFileName, fimgInpExe.getName()); + if (_prj.cacheExists(imgInp[i])) { + File cache = _prj.getCacheImageFile(imgInp[i]); + BufferedImage buffer = ImageIO.read(cache); + new PivPGMWriter().write(new File(prjImgInp, fimgInpExe.getName()), buffer); + } + else { + // Attention : Le nom ne doit pas etre le m\xEAme que les images d\xE9ja + // stock\xE9es + String srcFileName = imgInp[i].getName(); + copyFile(prjImgInp, prjImgInp, srcFileName, fimgInpExe.getName()); + } String desc = PivResource.getS("Transformation de l'image {0} sur {1}...", i + 1, maxIter); FuLog.trace(desc); @@ -267,7 +284,7 @@ _task.setProgression(prog); } - String outs = FuLib.runProgram(new String[]{exePath + File.separator + EXES[1] + EXE_EXT}, prjRoot); + String outs = FuLib.runProgram(new String[]{exePath + File.separator + EXE.transf_a + EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { _ana.addError(PivResource.getS("Erreur de transformation de l'image {0}:\n",i+1)+outs); return false; @@ -353,18 +370,26 @@ int prog=5; for (int i=0; i<imgOut.length-1; i++) { -// String srcFileName1=imgOut[i].getName(); -// copyFile(prjImgOut, prjImgOut, srcFileName1, "image1_transf.pgm"); -// String srcFileName2=imgOut[i+1].getName(); -// copyFile(prjImgOut, prjImgOut, srcFileName2, "image2_transf.pgm"); try { - File cache1=_prj.getCacheImageFile(imgOut[i]); - BufferedImage buffer1 = ImageIO.read(cache1); - new PivPGMWriter().write(new File(prjImgOut, "image1_transf.pgm"), buffer1); - File cache2=_prj.getCacheImageFile(imgOut[i+1]); - BufferedImage buffer2 = ImageIO.read(cache2); - new PivPGMWriter().write(new File(prjImgOut, "image2_transf.pgm"), buffer2); + if (_prj.cacheExists(imgOut[i])) { + File cache1=_prj.getCacheImageFile(imgOut[i]); + BufferedImage buffer1 = ImageIO.read(cache1); + new PivPGMWriter().write(new File(prjImgOut, "image1_transf.pgm"), buffer1); + } + else { + String srcFileName1=imgOut[i].getName(); + copyFile(prjImgOut, prjImgOut, srcFileName1, "image1_transf.pgm"); + } + if (_prj.cacheExists(imgOut[i+1])) { + File cache2 = _prj.getCacheImageFile(imgOut[i+1]); + BufferedImage buffer2 = ImageIO.read(cache2); + new PivPGMWriter().write(new File(prjImgOut, "image2_transf.pgm"), buffer2); + } + else { + String srcFileName2=imgOut[i+1].getName(); + copyFile(prjImgOut, prjImgOut, srcFileName2, "image2_transf.pgm"); + } String desc=PivResource.getS("Analyse du couple d'images {0} sur {1}...",i+1,imgOut.length-1); FuLog.trace(desc); @@ -373,7 +398,7 @@ _task.setProgression(prog); } - String outs=FuLib.runProgram(new String[]{exePath+File.separator+EXES[2]+EXE_EXT}, prjRoot); + String outs=FuLib.runProgram(new String[]{exePath+File.separator+EXE.PIV+EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { _ana.addError(PivResource.getS("Erreur d'analyse du couple d'images {0},{1}:\n",i+1,i+2)+outs); return false; @@ -411,72 +436,6 @@ } /** - * Lance le reconditionnement des images d'origine de pgm ligne a pgm matrice, - * et les place dans le r\xE9pertoire des images reconditionn\xE9es. - * - * @param _ana L'analyse pour la tache ex\xE9cut\xE9e. - * @param _prj Le projet. - * @param _task La tache en cours d'execution. - * @param _imgOrig Les fichiers d'origine \xE0 reconditionner. - * @return true : Tout s'est bien d\xE9roul\xE9. - */ - public boolean launchRepackingImg(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task, File[] _imgOrig) { - File prjRoot=_prj.getRoot(); - File prjImgInp=new File(prjRoot,IMG_PGM_DIR); - - // Nettoyage eventuel du repertoire des images reconditionnees. - prjImgInp.mkdir(); -// for (File f : prjImgInp.listFiles()) -// f.delete(); - - if (_task!=null) - _task.setProgression(10); - - int prog=0; - for (int i=0; i<_imgOrig.length; i++) { -// File dstImgInp=new File(prjImgInp,"image"+computeImgNumber(i+1)+".pgm"); - File dstImgInp=new File(prjImgInp,_imgOrig[i].getName()); - - String desc=PivResource.getS("Reconditionnement de l'image {0} sur {1}",(i+1),_imgOrig.length); - FuLog.trace(desc); - if (_task!=null) { - _task.setDesc(desc); - _task.setProgression(prog); - } - - try { - String outs = FuLib.runProgram(new String[]{exePath + File.separator + CMDS[0] + CMD_EXT, - _imgOrig[i].getPath(), dstImgInp.getPath()}, prjRoot); - if (!outs.trim().equals("")) { - _ana.addError(PivResource.getS("Erreur de reconditionnement:\n")+outs); - return false; - } - - if (_task!=null && _task.isStopRequested()) { - _ana.addError(PivResource.getS("Reconditionnement interrompu")); - return false; - } - } - catch (IOException ex) { - _ana.addError(ex.getMessage()); - return false; - } - prog=(i+1)*90/_imgOrig.length; - if (_task!=null) - _task.setProgression(prog); - } - - FuLog.trace(PivResource.getS("Reconditionnement ok.")); - - // On signale au projet que les images reconditionn\xE9es ont chang\xE9. -// _prj.setPgmImagesChanged(); - if (_task!=null) - _task.setProgression(100); - - return true; - } - - /** * Lance le controle du calcul de l'orthorectification par comparaison des * des points donn\xE9es et des points recalcul\xE9s. * Doit \xEAtre lanc\xE9 apr\xE8s le calcul des coefficients d'orthorectification. @@ -499,7 +458,7 @@ } try { - String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXES[4] + EXE_EXT}, prjRoot); + String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXE.verif_ortho + EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { _ana.addError(PivResource.getS("Erreur de v\xE9rification de l'orthorectification:\n")+outs); return false; @@ -588,7 +547,7 @@ _task.setProgression(30); - String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXES[6] + EXE_EXT}, prjRoot); + String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXE.filter + EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { _ana.addError(PivResource.getS("Erreur de filtrage des vitesses:\n")+outs); return false; @@ -644,7 +603,7 @@ try { // list_avg.dat deja cr\xE9\xE9 auparavant => Pas de cr\xE9ation - String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXES[5] + EXE_EXT}, prjRoot); + String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXE.moy_ec + EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { _ana.addError(PivResource.getS("Erreur de calcul des vitesses moyennes:\n")+outs); return false; @@ -715,7 +674,7 @@ } try { - String outs=FuLib.runProgram(new String[]{exePath + File.separator + EXES[7] + EXE_EXT}, prjRoot); + String outs=FuLib.runProgram(new String[]{exePath + File.separator + EXE.bathy_compute + EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { _ana.addError(PivResource.getS("Erreur de reconditionnement du transect:\n") + outs); return false; @@ -788,7 +747,7 @@ try { StringBuffer sbout=new StringBuffer(); StringBuffer sberr=new StringBuffer(); - String outs=FuLib.runProgram(new String[]{exePath + File.separator + EXES[8] + EXE_EXT}, prjRoot, sbout, sberr); + String outs=FuLib.runProgram(new String[]{exePath + File.separator + EXE.Q_compute + EXE_EXT}, prjRoot, sbout, sberr); if (!sberr.toString().trim().equals("")) { _ana.addError(PivResource.getS("Erreur de calcul du d\xE9bit:\n") + outs); return false; @@ -880,7 +839,7 @@ _task.setProgression(30); - String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXES[9] + EXE_EXT}, prjRoot); + String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXE.vel_transf + EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { _ana.addError(PivResource.getS("Erreur de transformation des vitesses instantan\xE9es:\n")+outs); return false; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-07-03 07:45:52 UTC (rev 7437) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-07-03 13:21:19 UTC (rev 7438) @@ -330,6 +330,16 @@ fireProjectStateChanged(bsrc ? "pgmImages":"transfImages"); return b; } + + /** + * Verifie si une image PGM est en cache ou non + * @param _file Le chemin du fichier PGM + * @return True si le fichier est d\xE9j\xE0 en cache. + */ + public boolean cacheExists(File _file) { + File fcache=getCacheImageFile(_file); + return (fcache.exists()); + } /** * Retourne le chemin du fichier cache pour un fichier donn\xE9. Les fichiers This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2012-07-05 15:04:33
|
Revision: 7458 http://fudaa.svn.sourceforge.net/fudaa/?rev=7458&view=rev Author: bmarchan Date: 2012-07-05 15:04:23 +0000 (Thu, 05 Jul 2012) Log Message: ----------- Fix : Repack des PGM par Java (necessaire si images pas mises en cache). Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMReader.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMWriter.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMReader.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMReader.java 2012-07-05 13:26:40 UTC (rev 7457) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMReader.java 2012-07-05 15:04:23 UTC (rev 7458) @@ -6,6 +6,8 @@ import java.io.IOException; import java.io.LineNumberReader; +import com.memoire.fu.FuLog; + /** * Une classe de lecture d'une image PGM. Cette classe ne respecte pas le standard IIO, mais * est beaucoup simple et rapide. @@ -28,6 +30,8 @@ * @throws IOException Si le format est incorrect. */ public BufferedImage read(File _srcFile) throws IOException { + FuLog.trace("Lecture du fichier "+_srcFile.getName()); + BufferedImage buf=null; LineNumberReader reader=new LineNumberReader(new FileReader(_srcFile)); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMWriter.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMWriter.java 2012-07-05 13:26:40 UTC (rev 7457) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMWriter.java 2012-07-05 15:04:23 UTC (rev 7458) @@ -6,6 +6,8 @@ import java.io.IOException; import java.io.PrintWriter; +import com.memoire.fu.FuLog; + /** * Une classe d'ecriture d'une image PGM. Cette classe ne respecte pas le standard IIO, mais * est beaucoup simple et rapide. @@ -23,6 +25,8 @@ * @throws IOException Si le fichier ne peut \xEAtre ecrit. */ public void write(File _srcFile, BufferedImage _img) throws IOException { + FuLog.trace("Ecriture du fichier "+_srcFile.getName()); + int width=_img.getWidth(); int height=_img.getHeight(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-07-05 13:26:40 UTC (rev 7457) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-07-05 15:04:23 UTC (rev 7458) @@ -31,6 +31,7 @@ import org.fudaa.fudaa.piv.PivPreferences; import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.imageio.PivPGMReader; +import org.fudaa.fudaa.piv.imageio.PivPGMWriter; import org.fudaa.fudaa.piv.io.PivAverageVelFileFormat; import org.fudaa.fudaa.piv.io.PivBathyFileFormat; import org.fudaa.fudaa.piv.io.PivDischargeFileFormat; @@ -577,27 +578,27 @@ closePgmCacheImageInputStream(); List<File> newFiles=new ArrayList<File>(); -// List<File> newpgm=new ArrayList<File>(); + List<File> newpgm=new ArrayList<File>(); // Traitement des fichiers .pgm, pour mise en cache. for (File f : _files) { File fimg=new File(imgInpDir,f.getName()); if (!srcFiles_.contains(f)) { - // Reconditionnement de l'image. -// if (f.getName().endsWith(".pgm")) { -// newpgm.add(f); -// } -// else { + // Reconditionnement de l'image, uniquement si le cache n'est pas automatique. + if (f.getName().endsWith(".pgm") && !PivPreferences.PIV.getBooleanProperty(PivPreferences.PIV_AUTO_CACHE,true)) { + newpgm.add(f); + } + else { // Copie du fichier localement au projet. CtuluLibFile.copyFile(f, fimg); -// } + } } newFiles.add(fimg); } - // Reconditionnement des pgm -// PivExeLauncher.instance().launchRepackingImg(_ana, this, _task, newpgm.toArray(new File[0])); + // Reconditionnement des pgm. Necessaire si une seule image est mise en cache. + repack(_ana, _task, newpgm.toArray(new File[0])); // Suppression des anciennes images sources for (File f : imgInpDir.listFiles(FLT_FILES)) { @@ -611,6 +612,58 @@ } /** + * Reconditionne les images d'origine de pgm ligne a pgm matrice, + * et les place dans le r\xE9pertoire des images reconditionn\xE9es. + * + * @param _ana L'analyse pour la tache ex\xE9cut\xE9e. + * @param _task La tache en cours d'execution. + * @param _imgOrig Les fichiers d'origine \xE0 reconditionner. + * @return true : Tout s'est bien d\xE9roul\xE9. + */ + public boolean repack(CtuluAnalyze _ana, CtuluTaskOperationGUI _task, File[] _imgOrig) { + File imgInpDir=new File(rootPath,IMG_PGM_DIR); + + if (_task!=null) + _task.setProgression(10); + + int prog=0; + for (int i=0; i<_imgOrig.length; i++) { + File dstImgInp=new File(imgInpDir,_imgOrig[i].getName()); + + String desc=PivResource.getS("Reconditionnement de l'image {0} sur {1}",(i+1),_imgOrig.length); + FuLog.trace(desc); + if (_task!=null) { + _task.setDesc(desc); + _task.setProgression(prog); + } + + try { + BufferedImage buf = new PivPGMReader().read(_imgOrig[i]); + new PivPGMWriter().write(dstImgInp, buf); + + if (_task!=null && _task.isStopRequested()) { + _ana.addError(PivResource.getS("Reconditionnement interrompu")); + return false; + } + } + catch (IOException ex) { + _ana.addError(ex.getMessage()); + return false; + } + prog=(i+1)*90/_imgOrig.length; + if (_task!=null) + _task.setProgression(prog); + } + + FuLog.trace(PivResource.getS("Reconditionnement ok.")); + + if (_task!=null) + _task.setProgression(100); + + return true; + } + + /** * Les images transform\xE9es ont-elles \xE9t\xE9 modifi\xE9es par le calcul ? * @return true : elles ont \xE9t\xE9 modifi\xE9es. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2012-11-09 13:36:50
|
Revision: 7864 http://fudaa.svn.sourceforge.net/fudaa/?rev=7864&view=rev Author: bmarchan Date: 2012-11-09 13:36:41 +0000 (Fri, 09 Nov 2012) Log Message: ----------- Add : Chemin des exe donn?\195?\169 sur ligne de commande Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExePanel.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/PivComputeAverageAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoVerifyGRPAction.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/PivProject.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExePanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExePanel.java 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExePanel.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -52,8 +52,7 @@ add(btExePath,BorderLayout.EAST); // add(pnExeDir); - String exePath=PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH); - tfExePath.setText(exePath); + tfExePath.setText(PivExeLauncher.instance().getExePath().getPath()); isDataValid(); // setErrorText(PivResource.getS("Le r\xE9pertoire des ex\xE9cutables n'a pas encore \xE9t\xE9 pr\xE9cis\xE9 ou n'est pas valide.")); @@ -88,7 +87,8 @@ * Fermeture du dialogue, et mise a jour du path. */ private void close() { - PivPreferences.PIV.putStringProperty(PivPreferences.PIV_EXE_PATH,tfExePath.getText().trim()); + PivExeLauncher.instance().setExePath(new File(tfExePath.getText().trim())); + PivPreferences.PIV.putStringProperty(PivPreferences.PIV_EXE_PATH,PivExeLauncher.instance().getExePath().getPath()); PivPreferences.PIV.writeIniFile(); } 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 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -81,8 +81,8 @@ protected static BuInformationsSoftware isPIV_ = new BuInformationsSoftware(); static { isPIV_.name = "LSPIV"; - isPIV_.version = "1.3.1"; - isPIV_.date = "2012-07-03"; + isPIV_.version = "1.3.2"; + isPIV_.date = "2012-11-08"; isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CETMEF (c)1999-2012"; isPIV_.license = "GPL2"; isPIV_.languages = "en,fr"; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -59,9 +59,6 @@ if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) { return; } - else { - PivExeLauncher.instance().setExePath(new File(PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH))); - } } PivSelectInstantVelResultsPanel pn=new PivSelectInstantVelResultsPanel(impl); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -63,9 +63,6 @@ if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) { return; } - else { - PivExeLauncher.instance().setExePath(new File(PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH))); - } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -56,9 +56,6 @@ if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) { return; } - else { - PivExeLauncher.instance().setExePath(new File(PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH))); - } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -52,9 +52,6 @@ if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) { return; } - else { - PivExeLauncher.instance().setExePath(new File(PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH))); - } } // La tache a ex\xE9cuter. Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoVerifyGRPAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoVerifyGRPAction.java 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoVerifyGRPAction.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -57,9 +57,6 @@ if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) { return; } - else { - PivExeLauncher.instance().setExePath(new File(PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH))); - } } CtuluAnalyze ana=new CtuluAnalyze(); 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 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -63,9 +63,6 @@ if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) { return; } - else { - PivExeLauncher.instance().setExePath(new File(PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH))); - } } // Selection des images 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 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -83,8 +83,15 @@ } public static PivExeLauncher instance() { + // Le chemin des exes peut \xEAtre donn\xE9 en propri\xE9t\xE9, auquel cas il est prioritaire sur + // celui r\xE9cup\xE9r\xE9 du fichier des pr\xE9f\xE9rences + String exeRep=System.getProperty(PivPreferences.PIV_EXE_PATH); + if (exeRep==null) { + exeRep=PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH); + } + if (instance_==null) - instance_=new PivExeLauncher(new File(PivPreferences.PIV.getStringProperty(PivPreferences.PIV_EXE_PATH))); + instance_=new PivExeLauncher(new File(exeRep)); return instance_; } @@ -96,6 +103,14 @@ public void setExePath(File _exePath) { exePath=_exePath; } + + /** + * Retourne le chemin du repertoire des exes. + * @return Le chemin. + */ + public File getExePath() { + return exePath; + } /** * Retourne vrai si tous les exe sont pr\xE9sents dans le repertoire sp\xE9cifi\xE9. @@ -204,6 +219,8 @@ FuLog.trace(PivResource.getS("Calcul des coefficients ok.")); } catch (IOException ex) { + _ana.addError(ex.getMessage()); + return false; } return true; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-11-09 08:19:19 UTC (rev 7863) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-11-09 13:36:41 UTC (rev 7864) @@ -1076,7 +1076,10 @@ PrintWriter out=null; try { out = new PrintWriter(new File(getOutputDir(),"list_avg.dat")); - for (int i=0; i<instantVelFiles.length; i++) { + // En principe, le nb de fichiers existants dans le repertoire devrait etre le meme + // que la taille du tableau usedInstantVelResults. Ce n'est pas toujours le cas, + // par exemple quand le calcul s'est mal pass\xE9. + for (int i=0; i<usedInstantVelResults.length; i++) { if (usedInstantVelResults[i]) out.println(instantVelFiles[i].getName()); } @@ -1298,7 +1301,7 @@ instantVelResults=_res; - usedInstantVelResults=new boolean[instantVelResults.length]; + usedInstantVelResults=new boolean[instantVelResults==null?0:instantVelResults.length]; Arrays.fill(usedInstantVelResults, true); isModified=true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2012-12-03 13:36:23
|
Revision: 8091 http://fudaa.svn.sourceforge.net/fudaa/?rev=8091&view=rev Author: bmarchan Date: 2012-12-03 13:36:11 +0000 (Mon, 03 Dec 2012) Log Message: ----------- Ajout de r?\195?\169sultats autres que vitesses Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelReader.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/layer/PivVelResultsModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResults.java Removed Paths: ------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivVelResults.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelReader.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelReader.java 2012-12-03 10:22:53 UTC (rev 8090) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivAverageVelReader.java 2012-12-03 13:36:11 UTC (rev 8091) @@ -17,7 +17,7 @@ import org.fudaa.dodico.fortran.FileOpReadCharSimpleAbstract; import org.fudaa.fudaa.piv.PivResource; -import org.fudaa.fudaa.piv.metier.PivVelResults; +import org.fudaa.fudaa.piv.metier.PivResults; /** * Un lecteur pour les fichiers des r\xE9sultats de vitesses moyenn\xE9es. @@ -42,7 +42,7 @@ * Lit les r\xE9sultats de vitesses et les retourne. * @return Les r\xE9sultats */ - protected PivVelResults internalRead() { + protected PivResults internalRead() { return readVelocities(); } @@ -55,8 +55,8 @@ * * @return les infos non bloquantes. */ - private synchronized PivVelResults readVelocities() { - PivVelResults res = new PivVelResults(); + private synchronized PivResults readVelocities() { + PivResults res = new PivResults(); List<Double> valAtts=new ArrayList<Double>(); if (super.in_ == null) { 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 2012-12-03 10:22:53 UTC (rev 8090) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2012-12-03 13:36:11 UTC (rev 8091) @@ -22,7 +22,7 @@ import org.fudaa.fudaa.piv.metier.PivInstantVelResults; import org.fudaa.fudaa.piv.metier.PivOrthoPoint; import org.fudaa.fudaa.piv.metier.PivProject; -import org.fudaa.fudaa.piv.metier.PivVelResults; +import org.fudaa.fudaa.piv.metier.PivResults; import com.memoire.fu.FuLib; import com.memoire.fu.FuLog; @@ -48,7 +48,9 @@ filter, bathy_compute, Q_compute, - vel_transf + vel_transf, + vel_scal, + moy_scal } /** Les scripts pouvant etre lanc\xE9s */ @@ -632,7 +634,7 @@ // R\xE9cup\xE9ration des r\xE9sultats du projet. FileReadOperationAbstract reader = PivAverageVelFileFormat.getInstance().createReader(); CtuluIOOperationSynthese ret=reader.read(resFile, _task); - PivVelResults res=(PivVelResults)ret.getSource(); + PivResults res=(PivResults)ret.getSource(); if (_task!=null && _task.isStopRequested()) { _ana.addError(PivResource.getS("Calcul interrompu")); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2012-12-03 10:22:53 UTC (rev 8090) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2012-12-03 13:36:11 UTC (rev 8091) @@ -11,7 +11,7 @@ import org.fudaa.ebli.palette.BPaletteInfo.InfoData; import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.metier.PivProject; -import org.fudaa.fudaa.piv.metier.PivVelResults; +import org.fudaa.fudaa.piv.metier.PivResults; /** * Un modele pour le trac\xE9 des vecteurs vitesses moyenn\xE9es. @@ -162,7 +162,7 @@ */ @Override public GrBoite getDomaine() { - PivVelResults res=prj_.getVelResults(); + PivResults res=prj_.getVelResults(); if (res==null) return null; GrBoite bt=new GrBoite(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-12-03 10:22:53 UTC (rev 8090) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-12-03 13:36:11 UTC (rev 8091) @@ -97,7 +97,7 @@ /** Un transect pour le calcul de d\xE9bits */ protected PivTransect transect; /** Les r\xE9sultats de vitesses moyennes */ - protected PivVelResults velResults; + protected PivResults velResults; /** Les r\xE9sultats des vitesses instantan\xE9es */ protected PivInstantVelResults[] instantVelResults; /** Les r\xE9sultats instantan\xE9s utilis\xE9s pour le calcul des vitesses moyennes. */ @@ -782,7 +782,7 @@ if (velFile.exists()) { FileReadOperationAbstract reader=PivAverageVelFileFormat.getInstance().createReader(); CtuluIOOperationSynthese ret=reader.read(velFile, _prog); - velResults=(PivVelResults)ret.getSource(); + velResults=(PivResults)ret.getSource(); } // Les r\xE9sultats de vitesses instantan\xE9es dans l'espace r\xE9el. @@ -1268,7 +1268,7 @@ * Retourne les r\xE9sultats. * @return Les r\xE9sultats, ou <tt>null</tt> s'il n'a pas \xE9t\xE9 d\xE9fini. */ - public PivVelResults getVelResults() { + public PivResults getVelResults() { return velResults; } @@ -1277,7 +1277,7 @@ * modifi\xE9. * @param _res Les r\xE9sultats. <tt>null</tt> est autoris\xE9. */ - public void setVelResults(PivVelResults _res) { + public void setVelResults(PivResults _res) { velResults=_res; isModified=true; fireProjectStateChanged("velResults"); Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResults.java (from rev 7861, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivVelResults.java) =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResults.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResults.java 2012-12-03 13:36:11 UTC (rev 8091) @@ -0,0 +1,63 @@ +package org.fudaa.fudaa.piv.metier; + +import org.fudaa.ctulu.gis.GISAttributeDouble; +import org.fudaa.ctulu.gis.GISAttributeInterface; +import org.fudaa.ctulu.gis.GISZoneCollectionPoint; +import org.fudaa.fudaa.piv.PivResource; + +/** + * Les r\xE9sultats aux points filtr\xE9s et moyenn\xE9s issus du calcul par PIV. + * Les valeurs sont stock\xE9es dans les attributs correspondants. + * + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivResults extends GISZoneCollectionPoint { + /** L'attribut vitesse suivant X */ + public final static GISAttributeDouble ATT_VX=new GISAttributeDouble(PivResource.getS("Vitesse X"),false); + /** L'attribut vitesse suivant Y */ + public final static GISAttributeDouble ATT_VY=new GISAttributeDouble(PivResource.getS("Vitesse Y"),false); + /** L'attribut norme de vitesse */ + public final static GISAttributeDouble ATT_NORME=new GISAttributeDouble(PivResource.getS("Norme vit."),false); + /** L'attribut coefficient de correlation */ + public final static GISAttributeDouble ATT_CORREL=new GISAttributeDouble(PivResource.getS("Coef. Correl."),false); + /** L'attribut rotationnel */ + public final static GISAttributeDouble ATT_OMEGA=new GISAttributeDouble(PivResource.getS("Omega"),false); + /** L'attribut de divergence */ + public final static GISAttributeDouble ATT_DIVERG=new GISAttributeDouble(PivResource.getS("Divergence"),false); + + /** + * Constructeur, avec les attributs necessaires \xE0 VX, VY. + */ + public PivResults() { + setAttributes(new GISAttributeInterface[]{ATT_VX,ATT_VY,ATT_NORME,ATT_CORREL,ATT_OMEGA,ATT_DIVERG}, null); + } + + /** + * Retourne la vitesse suivant X pour le point d'indice _ind. + * @param _ind L'indice du point dans le tableau des r\xE9sultats. + * @return La vitesse. + */ + public double getVx(int _ind) { + return (Double)getModel(ATT_VX).getObjectValueAt(_ind); + } + + /** + * Retourne la vitesse suivant Y pour le point d'indice _ind. + * @param _ind L'indice du point dans le tableau des r\xE9sultats. + * @return La vitesse. + */ + public double getVy(int _ind) { + return (Double)getModel(ATT_VY).getObjectValueAt(_ind); + } + + /** + * Retourne la valeur pour l'attribut donn\xE9 et le point d'indice _ind + * @param _att L'attribut + * @param _ind L'indice du point dans le tableau des r\xE9sultats. + * @return La valeur pour le point + */ + public double getResult(GISAttributeDouble _att, int _ind) { + return (Double)getModel(_att).getObjectValueAt(_ind); + } +} Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivVelResults.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivVelResults.java 2012-12-03 10:22:53 UTC (rev 8090) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivVelResults.java 2012-12-03 13:36:11 UTC (rev 8091) @@ -1,45 +0,0 @@ -package org.fudaa.fudaa.piv.metier; - -import org.fudaa.ctulu.gis.GISAttributeDouble; -import org.fudaa.ctulu.gis.GISAttributeInterface; -import org.fudaa.ctulu.gis.GISZoneCollectionPoint; -import org.fudaa.fudaa.piv.PivResource; - -/** - * Les r\xE9sultats de vitesses aux points filtr\xE9s et moyenn\xE9s issus du calcul par PIV. - * Les valeurs de vitesses sont stock\xE9es dans les attributs correspondants. - * - * @author Bertrand Marchand (mar...@de...) - * @version $Id:$ - */ -public class PivVelResults extends GISZoneCollectionPoint { - /** L'attribut vitesse suivant X */ - public final static GISAttributeDouble ATT_VX=new GISAttributeDouble(PivResource.getS("Vitesse X"),false); - /** L'attribut vitesse suivant Y */ - public final static GISAttributeDouble ATT_VY=new GISAttributeDouble(PivResource.getS("Vitesse Y"),false); - - /** - * Constructeur, avec les attributs necessaires \xE0 VX, VY. - */ - public PivVelResults() { - setAttributes(new GISAttributeInterface[]{ATT_VX,ATT_VY}, null); - } - - /** - * Retourne la vitesse suivant X pour le point d'indice _ind. - * @param _ind L'indice du point dans le tableau des r\xE9sultats. - * @return La vitesse. - */ - public double getVx(int _ind) { - return (Double)getModel(ATT_VX).getObjectValueAt(_ind); - } - - /** - * Retourne la vitesse suivant Y pour le point d'indice _ind. - * @param _ind L'indice du point dans le tableau des r\xE9sultats. - * @return La vitesse. - */ - public double getVy(int _ind) { - return (Double)getModel(ATT_VY).getObjectValueAt(_ind); - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2013-01-22 14:42:38
|
Revision: 8238 http://fudaa.svn.sourceforge.net/fudaa/?rev=8238&view=rev Author: bmarchan Date: 2013-01-22 14:42:29 +0000 (Tue, 22 Jan 2013) Log Message: ----------- Fix : Pb avec les calques results Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java Removed Paths: ------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivInstantVelResultsModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2013-01-22 14:41:07 UTC (rev 8237) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2013-01-22 14:42:29 UTC (rev 8238) @@ -47,13 +47,13 @@ import org.fudaa.fudaa.piv.layer.PivControlPointsModel; import org.fudaa.fudaa.piv.layer.PivFlowResultsModel; import org.fudaa.fudaa.piv.layer.PivImageRasterLayer; -import org.fudaa.fudaa.piv.layer.PivResultsModel; -import org.fudaa.fudaa.piv.layer.PivInstantVelResultsModel; +import org.fudaa.fudaa.piv.layer.PivVelResultsModel; import org.fudaa.fudaa.piv.layer.PivOrthoPointsModel; import org.fudaa.fudaa.piv.layer.PivRealImageModel; import org.fudaa.fudaa.piv.layer.PivResultsLayer; +import org.fudaa.fudaa.piv.layer.PivResultsModel; import org.fudaa.fudaa.piv.layer.PivTransectModel; -import org.fudaa.fudaa.piv.layer.PivVelResultsModel; +import org.fudaa.fudaa.piv.layer.PivVelResultsLayer; import org.fudaa.fudaa.piv.metier.PivProject; import org.fudaa.fudaa.piv.metier.PivProjectStateListener; import org.fudaa.fudaa.piv.metier.PivResultsI; @@ -93,9 +93,9 @@ /** L'affichage d'un transect */ ZCalqueLigneBriseeEditable cqTransect_; /** L'affichage des r\xE9sultats moyenn\xE9s */ - ZCalqueFleche cqVelResults; + PivVelResultsLayer cqVelResults; /** L'affichage des r\xE9sultats instantan\xE9s */ - ZCalqueFleche cqInstantVelResults_; + PivVelResultsLayer cqInstantVelResults_; /** L'affichage des r\xE9sultats de d\xE9bit */ ZCalqueFleche cqFlowResults; /** L'affichage des r\xE9sultats instantan\xE9s */ @@ -109,7 +109,7 @@ PivVelResultsModel mdlVelResults; PivTransectModel mdlTransect; PivFlowResultsModel mdlFlowResults; - PivInstantVelResultsModel mdlInstantVelResults; + PivVelResultsModel mdlInstantVelResults; PivResultsModel mdlInstantResults; PivResultsModel mdlAverageResults; @@ -219,12 +219,7 @@ cqRealImg_.setName("cqRealImg"); // Layer des vitesses resultantes. - cqVelResults = new ZCalqueFleche() { - @Override - protected String getFlecheUnit() { - return "m/s"; - } - }; + cqVelResults = new PivVelResultsLayer(); cqVelResults.setTitle(PivResource.getS("Vit. surf. moy.")); cqVelResults.setLongTitle(PivResource.getS("Vitesse de surface moyenn\xE9e")); cqVelResults.setTitleModifiable(true); @@ -240,12 +235,7 @@ }); // Layer des vitesses instantan\xE9es resultantes. - cqInstantVelResults_ = new ZCalqueFleche() { - @Override - protected String getFlecheUnit() { - return "m/s"; - } - }; + cqInstantVelResults_ = new PivVelResultsLayer(); cqInstantVelResults_.setTitle(PivResource.getS("Vit. surf. inst.")); cqInstantVelResults_.setLongTitle(PivResource.getS("Vitesse de surface instantan\xE9e")); cqInstantVelResults_.setTitleModifiable(true); @@ -335,15 +325,17 @@ mdlRealImage.setProjet(prj_); cqRealImg_.setModele(mdlRealImage); - mdlVelResults=new PivVelResultsModel(); - mdlVelResults.setProjet(prj_); - cqVelResults.setModele(mdlVelResults); - cqVelResults.setVisible(false); + if (prj_.getAverageResults()!=null) { + mdlVelResults=new PivVelResultsModel(new PivResultsI[]{prj_.getAverageResults()}); + cqVelResults.setModele(mdlVelResults); + cqVelResults.setVisible(false); + } - mdlInstantVelResults=new PivInstantVelResultsModel(); - mdlInstantVelResults.setProjet(prj_); - cqInstantVelResults_.setModele(mdlInstantVelResults); - cqInstantVelResults_.setVisible(false); + if (prj_.getInstantResults()!=null) { + mdlInstantVelResults=new PivVelResultsModel(prj_.getInstantResults()); + cqInstantVelResults_.setModele(mdlInstantVelResults); + cqInstantVelResults_.setVisible(false); + } mdlFlowResults=new PivFlowResultsModel(); mdlFlowResults.setProjet(prj_); @@ -455,7 +447,7 @@ private void setSelectedResult(int _ind) { if (cqInstantVelResults_!=null && cqInstantVelResults_.modeleDonnees()!=null) { - ((PivInstantVelResultsModel)cqInstantVelResults_.modeleDonnees()).setSelectedResult(_ind); + ((PivVelResultsModel)cqInstantVelResults_.modeleDonnees()).setSelectedResult(_ind); // Pour que le calque soit r\xE9affich\xE9. cqInstantVelResults_.repaint(); } @@ -593,17 +585,21 @@ if (_prj.getAverageResults()!=null) { mdlAverageResults=new PivResultsModel(new PivResultsI[]{prj_.getAverageResults()},null); cqAverageIso_.setModele(mdlAverageResults); + + mdlVelResults=new PivVelResultsModel(new PivResultsI[]{prj_.getAverageResults()}); + cqVelResults.setModele(mdlVelResults); } majTools(); - mdlVelResults.update(); } else if ("instantResults".equals(_prop)) { if (_prj.getInstantResults()!=null) { mdlInstantResults=new PivResultsModel(prj_.getInstantResults(),null); cqInstantIso_.setModele(mdlInstantResults); + + mdlInstantVelResults=new PivVelResultsModel(prj_.getInstantResults()); + cqInstantVelResults_.setModele(mdlInstantVelResults); } - mdlInstantVelResults.update(); majTools(); } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java 2013-01-22 14:41:07 UTC (rev 8237) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java 2013-01-22 14:42:29 UTC (rev 8238) @@ -35,7 +35,7 @@ * @param _impl L'implementation. */ public PivComputeLaunchAction(PivImplementation _impl) { - super(PivResource.getS("Calcul des vitesses instantan\xE9es"), null, "COMPUTE_PIV"); + super(PivResource.getS("Calcul des r\xE9sultats instantan\xE9s"), null, "COMPUTE_PIV"); impl=_impl; setEnabled(false); @@ -60,7 +60,7 @@ // La tache a ex\xE9cuter. - CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Calcul des champs de vitesses instantan\xE9es")) { + CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Calcul des r\xE9sultats instantan\xE9s")) { public void act() { try { Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivInstantVelResultsModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivInstantVelResultsModel.java 2013-01-22 14:41:07 UTC (rev 8237) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivInstantVelResultsModel.java 2013-01-22 14:42:29 UTC (rev 8238) @@ -1,219 +0,0 @@ -package org.fudaa.fudaa.piv.layer; - -import org.fudaa.ctulu.table.CtuluTable; -import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; -import org.fudaa.ebli.calque.ZCalqueFleche; -import org.fudaa.ebli.calque.ZModeleFleche; -import org.fudaa.ebli.geometrie.GrBoite; -import org.fudaa.ebli.geometrie.GrPoint; -import org.fudaa.ebli.geometrie.GrSegment; -import org.fudaa.ebli.palette.BPaletteInfo.InfoData; -import org.fudaa.fudaa.piv.PivResource; -import org.fudaa.fudaa.piv.metier.PivProject; -import org.fudaa.fudaa.piv.metier.PivResultsI; -import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE; - -import com.memoire.bu.BuTable; - -/** - * Un modele pour le trac\xE9 des vecteurs vitesses instantan\xE9s. - * - * @author Bertrand Marchand (mar...@de...) - * @version $Id$ - */ -public class PivInstantVelResultsModel implements ZModeleFleche { - /** Le projet. **/ - PivProject prj_; - /** L'index du r\xE9sultat instantan\xE9 s\xE9lectionn\xE9. */ - int iselres_=-1; - /** Le point, toujours le m\xEAme, pour retourner les coordonn\xE9es 3D d'un r\xE9sultat. */ - GrPoint ptCache_=new GrPoint(); - - /** - * Le constructeur. - */ - public PivInstantVelResultsModel() { - } - - /** - * Redefinit le projet, et remet a jour le modele. - * @param _prj Le projet courant. - */ - public void setProjet(PivProject _prj) { - prj_=_prj; - update(); - } - - /** - * D\xE9finit le r\xE9sultat instantan\xE9 selectionn\xE9. - * @param _ind L'index. Peut \xEAtre -1 si aucun r\xE9sultat s\xE9lectionn\xE9. - */ - public void setSelectedResult(int _ind) { - iselres_=_ind; - } - - /** - * Met a jour le mod\xE8le. Cette m\xE9thode est vide, le mod\xE8le se base directement - * sur le projet. - */ - public void update() { - if (prj_.getInstantResults()==null || prj_.getInstantResults().length-1<iselres_) - setSelectedResult(0); - } - - /** Non implement\xE9 */ - @Override - public boolean interpolate(GrSegment _seg, double _x, double _y) { - return false; - } - - /** - * Initialise le segment depuis les points d'indice _i et _i+1 - * @param _s Le segement. - * @param _i L'indice du premier point. - * @param _force Inutilis\xE9. - * @return Fix\xE9 \xE0 true. - */ - @Override - public boolean segment(GrSegment _s, int _i, boolean _force) { - _s.o_.x_=getX(_i); - _s.o_.y_=getY(_i); - _s.e_.x_=getX(_i)+getVx(_i); - _s.e_.y_=getY(_i)+getVy(_i); - - return true; - } - - /** - * Retourne la norme de la vitesse au point d'indice _i - * @param _i L'indice du point. - * @return La norme. - */ - @Override - public double getNorme(int _i) { - double vx=getVx(_i); - double vy=getVy(_i); - return Math.sqrt(vx*vx+vy*vy); - } - - /** - * Retourne la vitesse suivant X au point d'indice _i - * @param _i L'indice du point. - * @return La vitesse. - */ - @Override - public double getVx(int _i) { - if (iselres_==-1 || prj_.getInstantResults()==null) return 0; - return prj_.getInstantResults()[iselres_].getValue(_i,TYPE.VX); - } - - /** - * Retourne la vitesse suivant Y au point d'indice _i - * @param _i L'indice du point. - * @return La vitesse. - */ - @Override - public double getVy(int _i) { - if (iselres_==-1 || prj_.getInstantResults()==null) return 0; - return prj_.getInstantResults()[iselres_].getValue(_i,TYPE.VY); - } - - /** - * Retourne la coordonn\xE9e X au point d'indice _i - * @param _i L'indice du point. - * @return La coordonn\xE9e. - */ - @Override - public double getX(int _i) { - if (iselres_==-1 || prj_.getInstantResults()==null) return 0; - return prj_.getInstantResults()[iselres_].getX(_i); - } - - /** - * Retourne la coordonn\xE9e Y au point d'indice _i - * @param _i L'indice du point. - * @return La coordonn\xE9e. - */ - @Override - public double getY(int _i) { - if (iselres_==-1 || prj_.getInstantResults()==null) return 0; - return prj_.getInstantResults()[iselres_].getY(_i); - } - - /** Non implement\xE9 */ - @Override - public double getZ1(int _i) { - return 0; - } - - /** Non implement\xE9 */ - @Override - public double getZ2(int _i) { - return 0; - } - - @Override - public BuTable createValuesTable(ZCalqueAffichageDonneesInterface _layer) { - return new CtuluTable(new ZCalqueFleche.ValueTableModel(this)); - } - - @Override - public void fillWithInfo(InfoData _d, ZCalqueAffichageDonneesInterface _layer) { - final ZCalqueFleche.StringInfo info = new ZCalqueFleche.StringInfo(); - info.titleIfOne_ = PivResource.getS("Vit. instantan\xE9es: point n\xB0"); - info.title_ = PivResource.getS("Vit. instantan\xE9es"); - ZCalqueFleche.fillWithInfo(_d, _layer.getLayerSelection(), this, info); - } - - /** Non implement\xE9 */ - @Override - public boolean isValuesTableAvailable() { - return true; - } - - /** - * Retourne la boite englobante des points du mod\xE8le. - * @return La boite. - */ - @Override - public GrBoite getDomaine() { - PivResultsI[] res=prj_.getInstantResults(); - if (res==null) return null; - - GrBoite bt=new GrBoite(); - for (int i=0; i<res[0].getNbPoints(); i++) { - bt.ajuste(res[0].getX(i),res[0].getY(i),0); - } - return bt; - } - - /** - * Retourne le nombre de points du mod\xE8le. - * @return Le nombre de points. - */ - @Override - public int getNombre() { - if (prj_.getInstantResults()==null) return 0; - return prj_.getInstantResults()[0].getNbPoints(); - } - - /** Non implement\xE9 */ - @Override - public Object getObject(int _ind) { - return null; - } - - public GrPoint getVertexForObject(int _ind, int _idVertex) { - if (prj_.getInstantResults()==null) return null; - if (_ind>=prj_.getInstantResults()[0].getNbPoints()) return null; - - ptCache_.x_=prj_.getInstantResults()[0].getX(_ind); - ptCache_.y_=prj_.getInstantResults()[0].getY(_ind); - ptCache_.z_=0; - return ptCache_; - } - - @Override - public void prepare() { - } -} Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2013-01-22 14:41:07 UTC (rev 8237) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2013-01-22 14:42:29 UTC (rev 8238) @@ -19,6 +19,7 @@ import org.fudaa.ebli.trace.TraceLigneModel; import org.fudaa.fudaa.meshviewer.layer.MvElementLayer; import org.fudaa.fudaa.meshviewer.layer.MvIsoLayerQuickPainter; +import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE; /** * Un calque pour afficher des r\xE9sultats sous forme d'isocouleurs/isolignes. Ce calque @@ -229,4 +230,33 @@ palette.setSousTitre(modele().getCurrentVar().getName()); this.setPaletteCouleurPlages(palette); } + + @Override + public EbliUIProperties saveUIProperties() { + final EbliUIProperties res = super.saveUIProperties(); + + res.put(PivResultatsLayerConfigure.ISO_LINE_PAINTED, isTraceIsoLine()); + res.put(PivResultatsLayerConfigure.ISO_SURFACE_PAINTED, isTraceIsoSurface()); + res.put("iso.variable", modele()==null ? "":modele().getCurrentVar().toString()); + return res; + } + + @Override + public void initFrom(final EbliUIProperties _p) { + if (_p != null) { + if (_p.isDefined(PivResultatsLayerConfigure.ISO_LINE_PAINTED)) { + setTraceIsoLine(_p.getBoolean(PivResultatsLayerConfigure.ISO_LINE_PAINTED)); + } + if (_p.isDefined(PivResultatsLayerConfigure.ISO_SURFACE_PAINTED)) { + setTraceIsoSurface(_p.getBoolean(PivResultatsLayerConfigure.ISO_SURFACE_PAINTED)); + } + if (_p.isDefined("iso.variable")) { + if (modele()!=null) { + modele().setCurrentVar(TYPE.valueOf(_p.getString("iso.variable"))); + } + } + super.initFrom(_p); + } + } + } Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java 2013-01-22 14:42:29 UTC (rev 8238) @@ -0,0 +1,85 @@ +package org.fudaa.fudaa.piv.layer; + +import org.fudaa.ctulu.CtuluRange; +import org.fudaa.ebli.calque.ZCalqueFleche; +import org.fudaa.ebli.calque.ZModeleSegment; + +/** + * Un calque pour le trac\xE9 des vitesses. + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivVelResultsLayer extends ZCalqueFleche { + + @Override + protected String getFlecheUnit() { + return "m/s"; + } + + /** + * True : Les bornes de la palette peuvent \xEAtre d\xE9finies de mani\xE8re automatique pour tous + * les temps. + */ + @Override + public boolean isDonneesBoiteAvailable() { + return true; + } + + /** + * True : Les bornes de la palette peuvent \xEAtre d\xE9finies de mani\xE8re automatique pour le temps + * temps courant. + */ + @Override + public boolean isDonneesBoiteTimeAvailable() { + return true; + } + + /** + * Definition des bornes de la palette pour tous les pas de temps. + */ + @Override + public boolean getRange(final CtuluRange _b) { + PivVelResultsModel mdl=modeleDonnees(); + if (mdl==null) return false; + + // on initialise le min/max; + _b.setToNill(); + for (int tidx = mdl.getNbTime() - 1; tidx >= 0; tidx--) { + for (int i = mdl.getNombre() - 1; i >= 0; i--) { + _b.expandTo(mdl.getNorme(tidx, i)); + } + } + return true; + } + + /** + * Definition des bornes de la palette pour le temps courant. + */ + @Override + public boolean getTimeRange(final CtuluRange _b) { + PivVelResultsModel mdl=modeleDonnees(); + if (mdl==null) return false; + + // on initialise le min/max; + _b.setToNill(); + for (int i = mdl.getNombre() - 1; i >= 0; i--) { + _b.expandTo(mdl.getNorme(i)); + } + return true; + } + + @Override + public PivVelResultsModel modeleDonnees() { + return (PivVelResultsModel )modele_; + } + + @Override + public void setModele(ZModeleSegment _modele) { + if (!(_modele instanceof PivVelResultsModel)) + throw new IllegalArgumentException("Bad type argument"); + + super.setModele(_modele); + } + + +} Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2013-01-22 14:41:07 UTC (rev 8237) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2013-01-22 14:42:29 UTC (rev 8238) @@ -1,204 +0,0 @@ -package org.fudaa.fudaa.piv.layer; - -import org.fudaa.ctulu.table.CtuluTable; -import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; -import org.fudaa.ebli.calque.ZCalqueFleche; -import org.fudaa.ebli.calque.ZModeleFleche; -import org.fudaa.ebli.geometrie.GrBoite; -import org.fudaa.ebli.geometrie.GrPoint; -import org.fudaa.ebli.geometrie.GrSegment; -import org.fudaa.ebli.palette.BPaletteInfo.InfoData; -import org.fudaa.fudaa.piv.PivResource; -import org.fudaa.fudaa.piv.metier.PivProject; -import org.fudaa.fudaa.piv.metier.PivResultsI; -import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE; - -import com.memoire.bu.BuTable; - -/** - * Un modele pour le trac\xE9 des vecteurs vitesses moyenn\xE9es. - * - * @author Bertrand Marchand (mar...@de...) - * @version $Id$ - */ -public class PivVelResultsModel implements ZModeleFleche { - /** Le projet. **/ - PivProject prj_; - /** Le point, toujours le m\xEAme, pour retourner les coordonn\xE9es 3D d'un r\xE9sultat. */ - GrPoint ptCache_=new GrPoint(); - - /** - * Le constructeur. - */ - public PivVelResultsModel() { - } - - /** - * Redefinit le projet, et remet a jour le modele. - * @param _prj Le projet courant. - */ - public void setProjet(PivProject _prj) { - prj_=_prj; - update(); - } - - /** - * Met a jour le mod\xE8le. Cette m\xE9thode est vide, le mod\xE8le se base directement - * sur le projet. - */ - public void update() {} - - /** Non implement\xE9 */ - @Override - public boolean interpolate(GrSegment _seg, double _x, double _y) { - return false; - } - - /** - * Initialise le segment depuis les points d'indice _i et _i+1 - * @param _s Le segement. - * @param _i L'indice du premier point. - * @param _force Inutilis\xE9. - * @return Fix\xE9 \xE0 true. - */ - @Override - public boolean segment(GrSegment _s, int _i, boolean _force) { - _s.o_.x_=getX(_i); - _s.o_.y_=getY(_i); - _s.e_.x_=getX(_i)+getVx(_i); - _s.e_.y_=getY(_i)+getVy(_i); - - return true; - } - - /** - * Retourne la norme de la vitesse au point d'indice _i - * @param _i L'indice du point. - * @return La norme. - */ - @Override - public double getNorme(int _i) { - double vx=getVx(_i); - double vy=getVy(_i); - return Math.sqrt(vx*vx+vy*vy); - } - - /** - * Retourne la vitesse suivant X au point d'indice _i - * @param _i L'indice du point. - * @return La vitesse. - */ - @Override - public double getVx(int _i) { - if (prj_.getAverageResults()==null) return 0; - return prj_.getAverageResults().getValue(_i,TYPE.VX); - } - - /** - * Retourne la vitesse suivant Y au point d'indice _i - * @param _i L'indice du point. - * @return La vitesse. - */ - @Override - public double getVy(int _i) { - if (prj_.getAverageResults()==null) return 0; - return prj_.getAverageResults().getValue(_i,TYPE.VY); - } - - /** - * Retourne la coordonn\xE9e X au point d'indice _i - * @param _i L'indice du point. - * @return La coordonn\xE9e. - */ - @Override - public double getX(int _i) { - if (prj_.getAverageResults()==null) return 0; - return prj_.getAverageResults().getX(_i); - } - - /** - * Retourne la coordonn\xE9e Y au point d'indice _i - * @param _i L'indice du point. - * @return La coordonn\xE9e. - */ - @Override - public double getY(int _i) { - if (prj_.getAverageResults()==null) return 0; - return prj_.getAverageResults().getY(_i); - } - - /** Non implement\xE9 */ - @Override - public double getZ1(int _i) { - return 0; - } - - /** Non implement\xE9 */ - @Override - public double getZ2(int _i) { - return 0; - } - - @Override - public BuTable createValuesTable(ZCalqueAffichageDonneesInterface _layer) { - return new CtuluTable(new ZCalqueFleche.ValueTableModel(this)); - } - - @Override - public void fillWithInfo(InfoData _d, ZCalqueAffichageDonneesInterface _layer) { - final ZCalqueFleche.StringInfo info = new ZCalqueFleche.StringInfo(); - info.titleIfOne_ = PivResource.getS("R\xE9sultats: point n\xB0"); - info.title_ = PivResource.getS("R\xE9sultats"); - ZCalqueFleche.fillWithInfo(_d, _layer.getLayerSelection(), this, info); - } - - /** Non implement\xE9 */ - @Override - public boolean isValuesTableAvailable() { - return true; - } - - /** - * Retourne la boite englobante des points du mod\xE8le. - * @return La boite. - */ - @Override - public GrBoite getDomaine() { - PivResultsI res=prj_.getAverageResults(); - if (res==null) return null; - - GrBoite bt=new GrBoite(); - for (int i=0; i<res.getNbPoints(); i++) { - bt.ajuste(res.getX(i),res.getY(i),0); - } - return bt; - } - - /** - * Retourne le nombre de points du mod\xE8le. - * @return Le nombre de points. - */ - @Override - public int getNombre() { - if (prj_.getAverageResults()==null) return 0; - return prj_.getAverageResults().getNbPoints(); - } - - /** Non implement\xE9 */ - @Override - public Object getObject(int _ind) { - return null; - } - - public GrPoint getVertexForObject(int _ind, int _idVertex) { - if (prj_.getAverageResults()==null) return null; - if (_ind>=prj_.getAverageResults().getNbPoints()) return null; - - ptCache_.setCoordonnees(prj_.getAverageResults().getX(_ind),prj_.getAverageResults().getY(_ind),0.); - return ptCache_; - } - - @Override - public void prepare() { - } -} Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java (from rev 8233, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivInstantVelResultsModel.java) =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2013-01-22 14:42:29 UTC (rev 8238) @@ -0,0 +1,249 @@ +package org.fudaa.fudaa.piv.layer; + +import org.fudaa.ctulu.table.CtuluTable; +import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; +import org.fudaa.ebli.calque.ZCalqueFleche; +import org.fudaa.ebli.calque.ZModeleFleche; +import org.fudaa.ebli.geometrie.GrBoite; +import org.fudaa.ebli.geometrie.GrPoint; +import org.fudaa.ebli.geometrie.GrSegment; +import org.fudaa.ebli.palette.BPaletteInfo.InfoData; +import org.fudaa.fudaa.piv.PivResource; +import org.fudaa.fudaa.piv.metier.PivResultsI; +import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE; + +import com.memoire.bu.BuTable; + +/** + * Un modele pour le trac\xE9 des vecteurs vitesses. + * + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivVelResultsModel implements ZModeleFleche { + /** L'index du r\xE9sultat instantan\xE9 s\xE9lectionn\xE9. */ + int iselres_=0; + /** Le point, toujours le m\xEAme, pour retourner les coordonn\xE9es 3D d'un r\xE9sultat. */ + GrPoint ptCache_=new GrPoint(); + /** Les resultats */ + PivResultsI[] results_; + + /** + * Le constructeur. + */ + public PivVelResultsModel(PivResultsI[] _res) { + results_=_res; + } + + /** + * @return Le nombre de temps du mod\xE8le + */ + public int getNbTime() { + return results_==null ? 0 : results_.length; + } + + /** + * D\xE9finit le r\xE9sultat instantan\xE9 selectionn\xE9. + * @param _ind L'index. Peut \xEAtre -1 si aucun r\xE9sultat s\xE9lectionn\xE9. + */ + public void setSelectedResult(int _ind) { + iselres_=_ind; + } + + /** Non implement\xE9 */ + @Override + public boolean interpolate(GrSegment _seg, double _x, double _y) { + return false; + } + + /** + * Initialise le segment depuis les points d'indice _i et _i+1, pour + * le temps courant. + * @param _s Le segement. + * @param _i L'indice du premier point. + * @param _force Inutilis\xE9. + * @return Fix\xE9 \xE0 true. + */ + @Override + public boolean segment(GrSegment _s, int _i, boolean _force) { + _s.o_.x_=getX(_i); + _s.o_.y_=getY(_i); + _s.e_.x_=getX(_i)+getVx(_i); + _s.e_.y_=getY(_i)+getVy(_i); + + return true; + } + + /** + * Retourne la norme de la vitesse au point d'indice _i, pour le temps + * courant. + * @param _i L'indice du point. + * @return La norme. + */ + @Override + public double getNorme(int _i) { + double vx=getVx(_i); + double vy=getVy(_i); + return Math.sqrt(vx*vx+vy*vy); + } + + /** + * Retourne la norme de la vitesse au point d'indice _i, pour le temps + * donn\xE9. + * @param _tidx L'indice du temps + * @param _ipt L'indice du point. + * @return La norme. + */ + public double getNorme(int _tidx, int _ipt) { + double vx=getVx(_tidx, _ipt); + double vy=getVy(_tidx, _ipt); + return Math.sqrt(vx*vx+vy*vy); + } + + /** + * Retourne la vitesse suivant X au point d'indice _i pour le + * temps courant. + * @param _i L'indice du point. + * @return La vitesse. + */ + @Override + public double getVx(int _i) { + if (iselres_>=results_.length || results_[iselres_]==null) return 0; + return results_[iselres_].getValue(_i,TYPE.VX); + } + + /** + * Retourne la vitesse suivant X au point d'indice _i pour le + * temps donn\xE9. + * @param _tidx L'indice du temps + * @param _ipt L'indice du point. + * @return La vitesse. + */ + public double getVx(int _tidx, int _ipt) { + if (_tidx>=results_.length || results_[_tidx]==null) return 0; + return results_[_tidx].getValue(_ipt,TYPE.VX); + } + + /** + * Retourne la vitesse suivant Y au point d'indice _i pour le + * temps courant. + * @param _i L'indice du point. + * @return La vitesse. + */ + @Override + public double getVy(int _i) { + if (iselres_>=results_.length || results_[iselres_]==null) return 0; + return results_[iselres_].getValue(_i,TYPE.VY); + } + + /** + * Retourne la vitesse suivant Y au point d'indice _i pour le + * temps donn\xE9. + * @param _tidx L'indice du temps + * @param _ipt L'indice du point. + * @return La vitesse. + */ + public double getVy(int _tidx, int _ipt) { + if (_tidx>=results_.length || results_[_tidx]==null) return 0; + return results_[_tidx].getValue(_ipt,TYPE.VY); + } + + /** + * Retourne la coordonn\xE9e X au point d'indice _i pour le temps courant + * @param _i L'indice du point. + * @return La coordonn\xE9e. + */ + @Override + public double getX(int _i) { + if (iselres_>=results_.length || results_[iselres_]==null) return 0; + return results_[iselres_].getX(_i); + } + + /** + * Retourne la coordonn\xE9e Y au point d'indice _i pour le temps courant + * @param _i L'indice du point. + * @return La coordonn\xE9e. + */ + @Override + public double getY(int _i) { + if (iselres_>=results_.length || results_[iselres_]==null) return 0; + return results_[iselres_].getY(_i); + } + + /** Non implement\xE9 */ + @Override + public double getZ1(int _i) { + return 0; + } + + /** Non implement\xE9 */ + @Override + public double getZ2(int _i) { + return 0; + } + + @Override + public BuTable createValuesTable(ZCalqueAffichageDonneesInterface _layer) { + return new CtuluTable(new ZCalqueFleche.ValueTableModel(this)); + } + + @Override + public void fillWithInfo(InfoData _d, ZCalqueAffichageDonneesInterface _layer) { + final ZCalqueFleche.StringInfo info = new ZCalqueFleche.StringInfo(); + info.titleIfOne_ = PivResource.getS("Vit. instantan\xE9es: point n\xB0"); + info.title_ = PivResource.getS("Vit. instantan\xE9es"); + ZCalqueFleche.fillWithInfo(_d, _layer.getLayerSelection(), this, info); + } + + /** Non implement\xE9 */ + @Override + public boolean isValuesTableAvailable() { + return true; + } + + /** + * Retourne la boite englobante des points du mod\xE8le. + * @return La boite. + */ + @Override + public GrBoite getDomaine() { + if (results_==null) return null; + + GrBoite bt=new GrBoite(); + for (int i=0; i<results_[0].getNbPoints(); i++) { + bt.ajuste(results_[0].getX(i),results_[0].getY(i),0); + } + return bt; + } + + /** + * Retourne le nombre de points du mod\xE8le. + * @return Le nombre de points. + */ + @Override + public int getNombre() { + if (results_==null) return 0; + return results_[0].getNbPoints(); + } + + /** Non implement\xE9 */ + @Override + public Object getObject(int _ind) { + return null; + } + + @Override + public GrPoint getVertexForObject(int _ind, int _idVertex) { + if (results_==null) return null; + if (_ind>getNombre()) return null; + + ptCache_.x_=results_[0].getX(_ind); + ptCache_.y_=results_[0].getY(_ind); + ptCache_.z_=0; + return ptCache_; + } + + @Override + public void prepare() { + } +} Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2013-01-22 14:41:07 UTC (rev 8237) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2013-01-22 14:42:29 UTC (rev 8238) @@ -979,7 +979,7 @@ File scalFile=new File(getOutputDir(), "average_scal.out"); if (scalFile.exists()) { reader=PivAverageScalFileFormat.getInstance().createReader(); - ret=reader.read(velFile, _prog); + ret=reader.read(scalFile, _prog); lres.add((PivResultsI)ret.getSource()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2013-02-14 15:43:46
|
Revision: 8271 http://fudaa.svn.sourceforge.net/fudaa/?rev=8271&view=rev Author: bmarchan Date: 2013-02-14 15:43:35 +0000 (Thu, 14 Feb 2013) Log Message: ----------- Add : Relecture transect projete Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.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/layer/PivResultsLayer.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransect.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPFileFormat.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPReader.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2013-02-14 15:41:04 UTC (rev 8270) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -221,7 +221,7 @@ // Layer des vitesses resultantes. cqVelResults = new PivVelResultsLayer(); cqVelResults.setTitle(PivResource.getS("Vit. surf. moy.")); - cqVelResults.setLongTitle(PivResource.getS("Vitesse de surface moyenn\xE9e")); + cqVelResults.setLongTitle(PivResource.getS("Vitesses de surface moyenn\xE9es")); cqVelResults.setTitleModifiable(true); cqVelResults.setName("cqRealVel"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. @@ -237,7 +237,7 @@ // Layer des vitesses instantan\xE9es resultantes. cqInstantVelResults_ = new PivVelResultsLayer(); cqInstantVelResults_.setTitle(PivResource.getS("Vit. surf. inst.")); - cqInstantVelResults_.setLongTitle(PivResource.getS("Vitesse de surface instantan\xE9e")); + cqInstantVelResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es")); cqInstantVelResults_.setTitleModifiable(true); cqInstantVelResults_.setName("cqInstantVel"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. @@ -258,7 +258,7 @@ } }; cqFlowResults.setTitle(PivResource.getS("Vit. moy. prof.")); - cqFlowResults.setLongTitle(PivResource.getS("Vitesse moyenn\xE9e sur la profondeur")); + cqFlowResults.setLongTitle(PivResource.getS("Vitesses moyenn\xE9es sur la profondeur")); cqFlowResults.setTitleModifiable(true); cqFlowResults.setName("cqRealFlow"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. @@ -285,7 +285,7 @@ // Layer des iso couleurs instantan\xE9es cqInstantIso_ = new PivResultsLayer(); cqInstantIso_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY)); - cqInstantIso_.setTitle("R\xE9sultats instantan\xE9s"); + cqInstantIso_.setTitle(PivResource.getS("R\xE9sultats instantan\xE9s")); cqInstantIso_.setName("cqInstantResults"); cqInstantIso_.setDestructible(false); cqInstantIso_.setVisible(false); @@ -293,7 +293,7 @@ // Layer des iso couleurs instantan\xE9es cqAverageIso_ = new PivResultsLayer(); cqAverageIso_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY)); - cqAverageIso_.setTitle("R\xE9sultats moyenn\xE9s"); + cqAverageIso_.setTitle(PivResource.getS("R\xE9sultats moyenn\xE9s")); cqAverageIso_.setName("cqAveResults"); cqAverageIso_.setDestructible(false); cqAverageIso_.setVisible(false); @@ -584,21 +584,28 @@ else if("averageResults".equals(_prop)) { if (_prj.getAverageResults()!=null) { mdlAverageResults=new PivResultsModel(new PivResultsI[]{prj_.getAverageResults()},null); - cqAverageIso_.setModele(mdlAverageResults); - mdlVelResults=new PivVelResultsModel(new PivResultsI[]{prj_.getAverageResults()}); - cqVelResults.setModele(mdlVelResults); } + else { + mdlAverageResults=null; + mdlVelResults=null; + } + cqAverageIso_.setModele(mdlAverageResults); + cqVelResults.setModele(mdlVelResults); + majTools(); } else if ("instantResults".equals(_prop)) { if (_prj.getInstantResults()!=null) { mdlInstantResults=new PivResultsModel(prj_.getInstantResults(),null); - cqInstantIso_.setModele(mdlInstantResults); - mdlInstantVelResults=new PivVelResultsModel(prj_.getInstantResults()); - cqInstantVelResults_.setModele(mdlInstantVelResults); } + else { + mdlInstantResults=null; + mdlInstantVelResults=null; + } + cqInstantIso_.setModele(mdlInstantResults); + cqInstantVelResults_.setModele(mdlInstantVelResults); majTools(); } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2013-02-14 15:41:04 UTC (rev 8270) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -11,6 +11,7 @@ import java.io.File; import javax.swing.SwingUtilities; import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.ebli.commun.EbliActionSimple; @@ -22,7 +23,10 @@ import org.fudaa.fudaa.piv.PivProgressionPanel; import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.PivVisuPanel; +import org.fudaa.fudaa.piv.io.PivBathyPFileFormat; +import org.fudaa.fudaa.piv.io.PivDischargeFileFormat; import org.fudaa.fudaa.piv.io.PivExeLauncher; +import org.fudaa.fudaa.piv.metier.PivFlowResults; import org.fudaa.fudaa.piv.metier.PivOrthoParameters; import org.fudaa.fudaa.piv.metier.PivTransect; @@ -98,6 +102,14 @@ pnInfo.afficheModale(impl.getFrame(), PivResource.getS("Calcul termin\xE9"), CtuluDialog.OK_OPTION); impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW); impl.get2dFrame().getVisuPanel().setFlowLayerVisible(true); + + if (impl.question( + PivResource.getS("Modification du transect initial"), + PivResource.getS("Souhaitez vous remplacer le transect initial par celui calcul\xE9 ?"))) { + + PivTransect trans=impl.getCurrentProject().loadBathyPFile(null); + impl.getCurrentProject().setTransect(trans); + } } }); Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPFileFormat.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPFileFormat.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPFileFormat.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -0,0 +1,51 @@ +package org.fudaa.fudaa.piv.io; + +import org.fudaa.ctulu.fileformat.FileFormatUnique; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; +import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; +import org.fudaa.fudaa.piv.PivResource; + +/** + * La classe d\xE9crivant le format d'un fichier bathy_p.dat contenant + * un transect. + * + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivBathyPFileFormat extends FileFormatUnique { + + private PivBathyPFileFormat() { + super(1); + nom_ = PivResource.getS("PIV transect"); + description_ = PivResource.getS("Fichier contenant un transect"); + extensions_=new String[]{"dat"}; + } + static final PivBathyPFileFormat INSTANCE = new PivBathyPFileFormat(); + + /** + * Retourne le singleton pour instancier un reader ou un writer. + * @return Le singleton + */ + public static PivBathyPFileFormat getInstance() { + return INSTANCE; + } + + /** + * Cr\xE9ation d'un reader. + * @return Le reader + */ + @Override + public FileReadOperationAbstract createReader() { + return new PivBathyPReader(); + } + + /** + * Cr\xE9ation d'un writer. + * @return Le writer + */ + @Override + public FileWriteOperationAbstract createWriter() { + return null; + } + +} Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPFileFormat.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPReader.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPReader.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPReader.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -0,0 +1,121 @@ +/** + * @creation 2002-11-21 + * @modification $Date: 2007/05/04 13:47:27 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.fudaa.piv.io; + +import java.io.EOFException; +import java.io.File; +import java.io.IOException; + +import org.fudaa.ctulu.CtuluActivity; +import org.fudaa.dodico.fortran.FileOpReadCharSimpleAbstract; +import org.fudaa.ebli.geometrie.GrPolyligne; +import org.fudaa.fudaa.piv.PivResource; +import org.fudaa.fudaa.piv.metier.PivTransect; + +/** + * Un lecteur pour les fichiers de bathy_p.dat. + * + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivBathyPReader extends FileOpReadCharSimpleAbstract implements CtuluActivity { + + /** Drapeau d'interruption */ + boolean bstop_; + /** Nb d'octets du fichier a lire pour stat sur pourcentage effectu\xE9 */ + int nbOctets; + + /** + * Constructeur. + */ + public PivBathyPReader() { + } + + /** + * Lit les points et retourne le transect. + * @return Le transect + */ + @Override + protected PivTransect internalRead() { + return readParams(); + } + + @Override + protected void processFile(final File _f) { + nbOctets = (int) _f.length(); + } + + /** + * Utilise FortranReader ( donc un buffer). + * + * @return les infos non bloquantes. + */ + private synchronized PivTransect readParams() { + PivTransect ret=null; + GrPolyligne pl=new GrPolyligne(); + + if (super.in_ == null) { + analyze_.addErrorFromFile(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0); + return null; + } + + try { + int lu=0; + boolean afficheAvance = false; + if ((progress_ != null) && (nbOctets > 0)) { + afficheAvance = true; + progress_.setProgression(0); + } + int pourcentageEnCours = 0; + + in_.setJumpBlankLine(true); + + // On saute l'entete (6 lignes) + for (int i=0; i<6; i++) { + in_.readLine(); + } + + // Boucle jusque fin de fichier. Exception EOF si fin. + while (true) { + in_.readFields(); + pl.sommets_.ajoute(in_.doubleField(1),in_.doubleField(2),in_.doubleField(3)); + lu+=26; // Si le formattage en fortran + + if ((afficheAvance) && ((lu * 100 / nbOctets) >= (pourcentageEnCours + 20))) { + pourcentageEnCours += 20; + progress_.setProgression(pourcentageEnCours); + } + } + } + // Sortie normale + catch (final EOFException e) { + ret=new PivTransect(); + ret.setStraight(pl); + } + catch (final IOException e) { + analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber()); + } + catch (final NumberFormatException e) { + analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber()); + } + finally { + if (progress_ != null) { + progress_.setProgression(100); + } + return ret; + } + } + + /** + * Interruption asynchrone de l'activit\xE9 de lecture. + */ + @Override + public void stop() { + bstop_ = true; + } +} Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivBathyPReader.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native 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 2013-02-14 15:41:04 UTC (rev 8270) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -370,8 +370,10 @@ // On supprime le fichier des vitesses moyennes File resFile=new File(prjOutputs, faverage); resFile.delete(); - - _prj.setAverageResults(null); + // Et celui des scalaires moyens + faverage="average_scal.out"; + File resScalFile=new File(prjOutputs,faverage); + resScalFile.delete(); try { // Sauvegarde des donn\xE9es du projet. @@ -449,6 +451,11 @@ finally { new File(prjImgOut, "image1_transf.pgm").delete(); new File(prjImgOut, "image2_transf.pgm").delete(); + + if (_ana.containsErrorOrFatalError()) { + _prj.setInstantResults(null); + _prj.setAverageResults(null); + } } return true; @@ -903,7 +910,7 @@ FuLog.trace(PivResource.getS("Transformation ok.")); - desc=PivResource.getS("Calcul des r\xE9sultats instantan\xE9es..."); + desc=PivResource.getS("Calcul des r\xE9sultats instantan\xE9s..."); FuLog.trace(desc); if (_task!=null) { _task.setDesc(desc); @@ -934,6 +941,7 @@ } finally { _prj.setInstantResults(res); + _prj.setAverageResults(null); } return true; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2013-02-14 15:41:04 UTC (rev 8270) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsLayer.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -66,7 +66,7 @@ @Override public void setModele(ZModelePolygone _modele) { - if (!(_modele instanceof PivResultsModel)) + if (_modele!=null && !(_modele instanceof PivResultsModel)) throw new IllegalArgumentException("Bad type argument"); if (modele_!=null) { @@ -78,11 +78,16 @@ } initPalette(); - if (isoPainter==null) { - isoPainter = new MvIsoLayerQuickPainter(modele()); + if (_modele==null) { + isoPainter=null; } else { - isoPainter.setModel(modele()); + if (isoPainter==null) { + isoPainter = new MvIsoLayerQuickPainter(modele()); + } + else { + isoPainter.setModel(modele()); + } } } @@ -227,7 +232,7 @@ CtuluRange range = new CtuluRange(); this.getRange(range); palette.initPlages(10, range.min_, range.max_); - palette.setSousTitre(modele().getCurrentVar().getName()); + palette.setSousTitre(modele()==null ? null:modele().getCurrentVar().getName()); this.setPaletteCouleurPlages(palette); } @@ -237,7 +242,9 @@ res.put(PivResultatsLayerConfigure.ISO_LINE_PAINTED, isTraceIsoLine()); res.put(PivResultatsLayerConfigure.ISO_SURFACE_PAINTED, isTraceIsoSurface()); - res.put("iso.variable", modele()==null ? "":modele().getCurrentVar().toString()); + if (modele()!=null) + res.put("iso.variable", modele().getCurrentVar().toString()); + return res; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java 2013-02-14 15:41:04 UTC (rev 8270) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsLayer.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -3,6 +3,9 @@ import org.fudaa.ctulu.CtuluRange; import org.fudaa.ebli.calque.ZCalqueFleche; import org.fudaa.ebli.calque.ZModeleSegment; +import org.fudaa.ebli.palette.BPalettePlage; +import org.fudaa.ebli.palette.BPalettePlageAbstract; +import org.fudaa.ebli.palette.BPalettePlageInterface; /** * Un calque pour le trac\xE9 des vitesses. @@ -75,11 +78,26 @@ @Override public void setModele(ZModeleSegment _modele) { - if (!(_modele instanceof PivVelResultsModel)) + if (_modele!=null && !(_modele instanceof PivVelResultsModel)) throw new IllegalArgumentException("Bad type argument"); super.setModele(_modele); + + initPalette(); } - + /** + * Initialisation de la palette en fonction des bornes min/max des valeurs pour tous les + * pas de temps. + */ + private void initPalette() { + BPalettePlage palette=(BPalettePlage)getPaletteCouleur(); + // Pas de plages : On consid\xE8re que la palette n'est pas utilis\xE9e. + if (palette==null || palette.getNbPlages()==0) return; + + CtuluRange range = new CtuluRange(); + this.getRange(range); + palette.initPlages(10, range.min_, range.max_); + this.setPaletteCouleurPlages(palette); + } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2013-02-14 15:41:04 UTC (rev 8270) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -35,6 +35,7 @@ import org.fudaa.fudaa.piv.io.PivAverageScalFileFormat; import org.fudaa.fudaa.piv.io.PivAverageVelFileFormat; import org.fudaa.fudaa.piv.io.PivBathyFileFormat; +import org.fudaa.fudaa.piv.io.PivBathyPFileFormat; import org.fudaa.fudaa.piv.io.PivDischargeFileFormat; import org.fudaa.fudaa.piv.io.PivGRPFileFormat; import org.fudaa.fudaa.piv.io.PivGlobalXmlFileFormat; @@ -1043,6 +1044,18 @@ } /** + * Charge un fichier bathy_p.dat + * @param _prog L'interface de progression. + * @return Le transect lu. + * TODO devrait etre d\xE9l\xE9gu\xE9 dans une classe de lecture/ecriture des donn\xE9es. + */ + public PivTransect loadBathyPFile(ProgressionInterface _prog) { + File fbathyp=new File(getOutputDir(),"bathy_p.dat"); + FileReadOperationAbstract reader=PivBathyPFileFormat.getInstance().createReader(); + CtuluIOOperationSynthese ret=reader.read(fbathyp, _prog); + return (PivTransect)ret.getSource(); + } + /** * Sauve le projet sur le fichier projet. Les infos sont sauv\xE9es sur le * r\xE9pertoire temporaire, puis zip\xE9es. * @param _prjFile Le fichier de sauvegarde. Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransect.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransect.java 2013-02-14 15:41:04 UTC (rev 8270) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivTransect.java 2013-02-14 15:43:35 UTC (rev 8271) @@ -28,4 +28,23 @@ public void setStraight(GrPolyligne _transect) { this.transect = _transect; } + + /** + * Recr\xE9e un transect depuis les r\xE9sultats calcul\xE9s et le transect d'origine. Lors du calcul, + * les points sont r\xE9align\xE9s. La bathy et le nombre de points n'est pas modifi\xE9e. + * @param _res Les r\xE9sultats. + * @param _trans Le transect original, avec points non align\xE9s. + * @return Le transect recalcul\xE9. + */ + public static PivTransect buildFromAlignResults(PivFlowResults _res, PivTransect _trans) { + PivTransect trans=new PivTransect(); + + GrPolyligne pl=new GrPolyligne(); + for (int i=0; i<_res.getNombre(); i++) { + pl.sommets_.ajoute(_res.getX(i), _res.getY(i), _trans.getStraight().sommet(i).z_); + } + trans.transect=pl; + + return trans; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-01-27 14:52:30
|
Revision: 8995 http://sourceforge.net/p/fudaa/svn/8995 Author: bmarchan Date: 2015-01-27 14:52:27 +0000 (Tue, 27 Jan 2015) Log Message: ----------- Export des images sources et transform?\195?\169es 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/PivExportImageFilesPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportImagesAction.java Removed Paths: ------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportTranfFilesPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportTransfImagesAction.java Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportImageFilesPanel.java (from rev 8994, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportTranfFilesPanel.java) =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportImageFilesPanel.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportImageFilesPanel.java 2015-01-27 14:52:27 UTC (rev 8995) @@ -0,0 +1,232 @@ +/* + * @creation 18 d\xE9c. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.fudaa.piv; + +import java.awt.BorderLayout; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.io.File; +import java.util.List; + +import javax.swing.ButtonGroup; +import javax.swing.JComboBox; +import javax.swing.JFileChooser; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JRadioButton; + +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ctulu.gui.CtuluCellTextRenderer; +import org.fudaa.ctulu.gui.CtuluDialogPanel; +import org.fudaa.ctulu.gui.CtuluFileChooserPanel; +import org.fudaa.ctulu.gui.CtuluListEditorModel; +import org.fudaa.ctulu.gui.CtuluListEditorPanel; +import org.fudaa.ctulu.image.CtuluImageExport; + +import com.memoire.bu.BuVerticalLayout; + +/** + * Un panneau pour exporter les images transform\xE9es pgm ou autres vers un r\xE9pertoire choisi. + * + * @author mar...@de... + * @version $Id$ + */ +public class PivExportImageFilesPanel extends CtuluDialogPanel { + + private CtuluUI ui_; + /** Le repertoire d'export. */ + private CtuluFileChooserPanel fcDirExport_; + /** Le mod\xE8le pour la liste des images */ + private CtuluListEditorModel mdFiles_; + /** La liste des images */ + private CtuluListEditorPanel pnFiles_; + /** toutes les images */ + private JRadioButton rbAllFiles_; + /** Une selection des images */ + private JRadioButton rbSelectedImages_; + /** Format d'export */ + private JComboBox cbFormat_; + + /** + * Constructeur. + * @param _ui Le parent pour la boite de dialogue. + * @param _originalFormatSupported + */ + public PivExportImageFilesPanel(CtuluUI _ui) { + ui_=_ui; + + setLayout(new BuVerticalLayout(5, true, true)); + setHelpText(PivResource.getS("S\xE9lectionnez les images que vous souhaitez exporter, puis le format d'export.")); + + fcDirExport_=new CtuluFileChooserPanel(PivResource.getS("R\xE9pertoire destination")); + fcDirExport_.setFileSelectMode(JFileChooser.DIRECTORIES_ONLY); + fcDirExport_.setWriteMode(false); + JPanel pnDirExport=CtuluFileChooserPanel.buildPanel(fcDirExport_, PivResource.getS("R\xE9pertoire destination")); + + // Liste des images + mdFiles_=new CtuluListEditorModel(true) { + @Override + public boolean isCellEditable(int _rowIndex, int _columnIndex) { + return false; + } + @Override + public Object createNewObject() { + return null; + } + }; + + pnFiles_=new CtuluListEditorPanel(mdFiles_, false, false, false, false, false) { + @Override + public void actionAdd() { + } + }; + + pnFiles_.setValueListCellRenderer(new CtuluCellTextRenderer() { + @Override + public void setValue(Object _file) { + File f=(File)_file; + setText(f.getName()); + } + }); + + rbAllFiles_=new JRadioButton(PivResource.getS("Toutes les images")); + rbAllFiles_.addItemListener(new ItemListener() { + + @Override + public void itemStateChanged(ItemEvent e) { + pnFiles_.setAllEnabled(!rbAllFiles_.isSelected()); + } + }); + rbSelectedImages_=new JRadioButton(PivResource.getS("Les images s\xE9lectionn\xE9es")); + + ButtonGroup bg=new ButtonGroup(); + bg.add(rbAllFiles_); + bg.add(rbSelectedImages_); + + rbAllFiles_.setSelected(true); + + cbFormat_=new JComboBox(); + // 2 formats suppl\xE9mentaires + cbFormat_.addItem(PivResource.getS("<d'origine>")); + cbFormat_.addItem("pgm"); + List<String> exts=CtuluImageExport.FORMAT_LIST; + for (String ext : exts) { + cbFormat_.addItem(ext); + } + + JPanel pnFormat=new JPanel(); + pnFormat.setLayout(new BorderLayout(3,3)); + pnFormat.add(new JLabel(PivResource.getS("Format d'export")),BorderLayout.WEST); + pnFormat.add(cbFormat_,BorderLayout.CENTER); + + add(rbAllFiles_); + add(rbSelectedImages_); + add(pnFiles_); + add(pnFormat); + add(pnDirExport); + } + + @Override + public void setValue(Object _files) { + if (!(_files instanceof File[])) + throw new IllegalArgumentException("bad type parameter"); + setFiles((File[])_files); + } + + @Override + public File[] getValue() { + return getFiles(); + } + + /** + * D\xE9finit l'utilitaire \xE0 modifier. + * @param _tool L'utilitaire + */ + public void setFiles(File[] _files) { + if (_files==null) return; + + mdFiles_.setData(_files); + } + + /** + * @return Les fichiers image. + */ + public File[] getFiles() { + File[] files=new File[mdFiles_.getRowCount()]; + mdFiles_.getValues(files); + + return files; + } + + /** + * @return Les fichiers selectionn\xE9s de la liste, ou tous les fichiers si le bouton radio + * "toutes images" est activ\xE9. + */ + public File[] getSelectedFiles() { + if (rbAllFiles_.isSelected()) { + return getFiles(); + } + else { + int[] selind=pnFiles_.getTable().getSelectedRows(); + File[] files=new File[selind.length]; + for (int i=0; i<selind.length; i++) { + files[i]=(File)mdFiles_.getValueAt(selind[i]); + } + return files; + } + } + + /** + * @return Le repertoire destination + */ + public File getDestinationDir() { + return fcDirExport_.getFile(); + } + + /** + * @return Le format d'export. ORIGIN si le format d'origine est autoris\xE9. + */ + public String getFormat() { + if (cbFormat_.getSelectedIndex()==0) { + return "ORIGIN"; + } + return (String)cbFormat_.getSelectedItem(); + } + + @Override + public boolean isDataValid() { + if (getSelectedFiles().length==0) { + setErrorText(PivResource.getS("Pas d'image \xE0 transf\xE9rer ou aucune image s\xE9lectionn\xE9e")); + return false; + } + File dir=fcDirExport_.getFile(); + if (dir==null || !dir.exists() || !dir.canWrite()) { + setErrorText(PivResource.getS("Le r\xE9pertoire de destination n'est pas d\xE9fini ou est inaccessible")); + return false; + } + return true; + } + + @Override + public void apply() { + setErrorText(""); + super.apply(); + } + + @Override + public boolean cancel() { + setErrorText(""); + return super.cancel(); + } + + @Override + public boolean ok() { + setErrorText(""); + return super.ok(); + } +} Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportTranfFilesPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportTranfFilesPanel.java 2015-01-23 14:32:27 UTC (rev 8994) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivExportTranfFilesPanel.java 2015-01-27 14:52:27 UTC (rev 8995) @@ -1,137 +0,0 @@ -/* - * @creation 18 d\xE9c. 2008 - * @modification $Date:$ - * @license GNU General Public License 2 - * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail fud...@li... - */ -package org.fudaa.fudaa.piv; - -import java.io.File; - -import javax.swing.JFileChooser; -import javax.swing.JLabel; - -import org.fudaa.ctulu.CtuluUI; -import org.fudaa.ctulu.gui.CtuluCellTextRenderer; -import org.fudaa.ctulu.gui.CtuluDialogPanel; -import org.fudaa.ctulu.gui.CtuluFileChooser; -import org.fudaa.ctulu.gui.CtuluFileChooserPanel; -import org.fudaa.ctulu.gui.CtuluListEditorModel; -import org.fudaa.ctulu.gui.CtuluListEditorPanel; - -import com.memoire.bu.BuVerticalLayout; - -/** - * Un panneau pour exporter les images transform\xE9es pgm ou autres vers un r\xE9pertoire choisi. - * - * @author mar...@de... - * @version $Id$ - */ -public class PivExportTranfFilesPanel extends CtuluDialogPanel { - - private CtuluUI ui_; - /** Le repertoire racine du projet */ - private File prjRoot_; - /** Le repertoire d'export. */ - private CtuluFileChooserPanel fcDirExport_; - /** Le mod\xE8le pour la liste des images */ - private CtuluListEditorModel mdFiles_; - - /** - * Constructeur. - * @param _ui Le parent pour la boite de dialogue. - */ - public PivExportTranfFilesPanel(CtuluUI _ui) { - ui_=_ui; - - setLayout(new BuVerticalLayout(5, true, true)); - setHelpText(PivResource.getS("Selectionner les images que vous souhaitez exporter.")); - - fcDirExport_=new CtuluFileChooserPanel(); - fcDirExport_.setFileSelectMode(JFileChooser.DIRECTORIES_ONLY); - add(fcDirExport_); - - // Label images - add(new JLabel(PivResource.getS("Liste des images"),JLabel.LEFT)); - - // Liste des images - mdFiles_=new CtuluListEditorModel(true) { - @Override - public boolean isCellEditable(int _rowIndex, int _columnIndex) { - return false; - } - @Override - public Object createNewObject() { - return null; - } - }; - - CtuluListEditorPanel pnFiles=new CtuluListEditorPanel(mdFiles_, true, true, false) { - @Override - public void actionAdd() { - } - }; - - pnFiles.setValueListCellRenderer(new CtuluCellTextRenderer() { - @Override - public void setValue(Object _file) { - File f=(File)_file; - setText(f.getName()); - if (f.getPath().startsWith(prjRoot_.getPath())) { - setToolTipText(PivResource.getS("Dans le projet")); - } - else { - setToolTipText(f.getPath()); - } - } - }); - - add(pnFiles); - } - - @Override - public void setValue(Object _files) { - if (!(_files instanceof File[])) - throw new IllegalArgumentException("bad type parameter"); - setFiles((File[])_files); - } - - @Override - public File[] getValue() { - return getFiles(); - } - - /** - * Definit la racine du projet, pour savoir si un fichier fait d\xE9j\xE0 partie du projet. - * @param _root La racine du projet. - */ - public void setRootProject(File _root) { - prjRoot_=_root; - } - - /** - * D\xE9finit l'utilitaire \xE0 modifier. - * @param _tool L'utilitaire - */ - public void setFiles(File[] _files) { - if (_files==null) return; - - mdFiles_.setData(_files); - } - - /** - * @return Les fichiers image, comportant les anciens et nouveaux fichiers. - */ - public File[] getFiles() { - File[] files=new File[mdFiles_.getRowCount()]; - mdFiles_.getValues(files); - - return files; - } - - @Override - public boolean isDataValid() { - return true; - } -} 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 2015-01-23 14:32:27 UTC (rev 8994) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-01-27 14:52:27 UTC (rev 8995) @@ -42,7 +42,7 @@ import org.fudaa.fudaa.piv.action.PivComputeFlowAction; import org.fudaa.fudaa.piv.action.PivComputeLaunchAction; import org.fudaa.fudaa.piv.action.PivComputeParamAction; -import org.fudaa.fudaa.piv.action.PivExportTransfImagesAction; +import org.fudaa.fudaa.piv.action.PivExportImagesAction; import org.fudaa.fudaa.piv.action.PivFlowParamAction; import org.fudaa.fudaa.piv.action.PivImportGRPAction; import org.fudaa.fudaa.piv.action.PivImportGridAction; @@ -222,6 +222,7 @@ setEnabledForAction("SHOW_VELOCITIES_RESULTS", bprjOpen && project.getAverageResults()!=null); setEnabledForAction("SHOW_FLOW_RESULTS", bprjOpen && project.getFlowResults()!=null); setEnabledForAction("EXPORT_TRANSF_IMAGES", bprjOpen && bprjHasTransfImg); + setEnabledForAction("EXPORT_SRC_IMAGES", bprjOpen && bprjHasSrcImg); refreshTitle(); } @@ -818,7 +819,8 @@ super.initExportImageToClipborad(itExportImageToClip); mnExport.add(itExportImageToClip); mnExport.addSeparator(); - mnExport.add(new PivExportTransfImagesAction(this)); + mnExport.add(new PivExportImagesAction(this,true)); + mnExport.add(new PivExportImagesAction(this,false)); } /** Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportImagesAction.java (from rev 8994, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportTransfImagesAction.java) =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportImagesAction.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportImagesAction.java 2015-01-27 14:52:27 UTC (rev 8995) @@ -0,0 +1,169 @@ +/* + * @creation 3 juil. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.fudaa.piv.action; + +import java.awt.event.ActionEvent; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +import javax.imageio.ImageIO; + +import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.gui.CtuluDialog; +import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; +import org.fudaa.ctulu.image.CtuluImageExport; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.fudaa.piv.PivExportImageFilesPanel; +import org.fudaa.fudaa.piv.PivImplementation; +import org.fudaa.fudaa.piv.PivProgressionPanel; +import org.fudaa.fudaa.piv.PivResource; +import org.fudaa.fudaa.piv.imageio.PivPGMWriter; + +import com.memoire.fu.FuLog; + +/** + * Une action pour eporter les images transform\xE9es ou sources + * + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivExportImagesAction extends EbliActionSimple { + PivImplementation impl; + PivExportImageFilesPanel pnExportImages; + CtuluDialog diProgress_; + boolean exportSrc_; + + static final String TXTEXPORTERSRC=PivResource.getS("Exporter les images sources"); + static final String TXTEXPORTERTRANSF=PivResource.getS("Exporter les images transform\xE9es"); + static final String TXTEXPORTSRC=PivResource.getS("Export des images sources"); + static final String TXTEXPORTTRANSF=PivResource.getS("Export des images transform\xE9es"); + + /** + * Constructeur. + * @param _impl L'implementation. + */ + public PivExportImagesAction(PivImplementation _impl, boolean _exportSrc) { + super((_exportSrc ? TXTEXPORTERSRC:TXTEXPORTERTRANSF)+"...", null, _exportSrc ? "EXPORT_TRANSF_IMAGES":"EXPORT_SRC_IMAGES"); + exportSrc_=_exportSrc; + + impl=_impl; + setEnabled(false); + } + + /** + * Exporte les images transform\xE9es au format pgm. + * @param _e L'evenement pour l'action. + */ + @Override + public void actionPerformed(final ActionEvent _e) { + if (!isValide()) { + return; + } + + // Selection des images + if (pnExportImages==null) + pnExportImages = new PivExportImageFilesPanel(impl); + + if (exportSrc_) { + pnExportImages.setFiles(impl.getCurrentProject().getSrcImageFiles()); + } + else { + pnExportImages.setFiles(impl.getCurrentProject().getTransfImageFiles()); + } + if (!pnExportImages.afficheModaleOk(impl.getFrame(), (exportSrc_ ? TXTEXPORTERSRC:TXTEXPORTERTRANSF), CtuluDialog.OK_CANCEL_OPTION)) { + return; + } + + // Export des images, eventuellement dans un autre format. + CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, (exportSrc_ ? TXTEXPORTSRC:TXTEXPORTTRANSF)) { + + @Override + public void act() { + try { + this.setDesc((exportSrc_ ? TXTEXPORTSRC:TXTEXPORTTRANSF)); + this.setProgression(0); + + File[] exportImgFiles=pnExportImages.getSelectedFiles(); + File destinationDir=pnExportImages.getDestinationDir(); + // Correspond aux extensions + String format=pnExportImages.getFormat(); + + for (int i=0; i<exportImgFiles.length; i++) { + File cacheFile=impl.getCurrentProject().getCacheImageFile(exportImgFiles[i]); + // Chaque image dans sont format d'origine + if (format.equals("ORIGIN")) { + File destFile=new File(destinationDir,exportImgFiles[i].getName()); + String ext=CtuluLibFile.getExtension(exportImgFiles[i].getName()); + + if (exportImgFiles.equals(cacheFile)) { + CtuluLibFile.copyFile(cacheFile, destFile); + } + else { + BufferedImage img = ImageIO.read(cacheFile); + if (ext.equals("pgm")) { + new PivPGMWriter().write(destFile, img); + } + else { + CtuluImageExport.export(img, destFile, ext, impl); + } + } + } + else { + File destFile=CtuluLibFile.changeExtension(new File(destinationDir,exportImgFiles[i].getName()),format); + + // Le format d'export est le m\xEAme que le format de stockage + if (format.equals(CtuluLibFile.getExtension(cacheFile.getName()))) { + CtuluLibFile.copyFile(cacheFile, destFile); + } + // Sinon, transfert du format de stockage vers format d'export. + else { + BufferedImage img = ImageIO.read(cacheFile); + if (format.equals("pgm")) { + new PivPGMWriter().write(destFile, img); + } + else { + CtuluImageExport.export(img, destFile, format, impl); + } + } + } + setProgression(((i+1)*100)/exportImgFiles.length); + if (this.isStopRequested()) return; + } + } + catch (IOException e) { + FuLog.error("Erreur lors de l'export des images"); + } + finally { + diProgress_.dispose(); + } + } + }; + + PivProgressionPanel pnProgress_=new PivProgressionPanel(r); + diProgress_ = pnProgress_.createDialog(impl.getParentComponent()); + diProgress_.setOption(CtuluDialog.ZERO_OPTION); + diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE); + diProgress_.setTitle(r.getName()); + + r.start(); + diProgress_.afficheDialogModal(); + } + + /** + * @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement. + */ + public boolean isValide() { + return true; + } + + @Override + public String getEnableCondition() { + return PivResource.getS("Les images doivent exister"); + } +} Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportTransfImagesAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportTransfImagesAction.java 2015-01-23 14:32:27 UTC (rev 8994) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivExportTransfImagesAction.java 2015-01-27 14:52:27 UTC (rev 8995) @@ -1,126 +0,0 @@ -/* - * @creation 3 juil. 2008 - * @modification $Date:$ - * @license GNU General Public License 2 - * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail fud...@li... - */ -package org.fudaa.fudaa.piv.action; - -import java.awt.event.ActionEvent; -import java.io.File; - -import org.fudaa.ctulu.CtuluAnalyze; -import org.fudaa.ctulu.gui.CtuluDialog; -import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; -import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.fudaa.piv.PivExePanel; -import org.fudaa.fudaa.piv.PivExportTranfFilesPanel; -import org.fudaa.fudaa.piv.PivImplementation; -import org.fudaa.fudaa.piv.PivManageOriginalFilesPanel; -import org.fudaa.fudaa.piv.PivPreferences; -import org.fudaa.fudaa.piv.PivProgressionPanel; -import org.fudaa.fudaa.piv.PivResource; -import org.fudaa.fudaa.piv.PivVisuPanel; -import org.fudaa.fudaa.piv.io.PivExeLauncher; - -/** - * Une action pour eporter les images transform\xE9es. - * - * @author Bertrand Marchand (mar...@de...) - * @version $Id$ - */ -public class PivExportTransfImagesAction extends EbliActionSimple { - PivImplementation impl; - PivExportTranfFilesPanel pnExportImages; - CtuluDialog diProgress_; - - /** - * Constructeur. - * @param _impl L'implementation. - */ - public PivExportTransfImagesAction(PivImplementation _impl) { - super(PivResource.getS("Export des images transform\xE9es..."), null, "EXPORT_TRANSF_IMAGES"); - - impl=_impl; - setEnabled(false); - } - - /** - * Exporte les images transform\xE9es au format pgm. - * @param _e L'evenement pour l'action. - */ - @Override - public void actionPerformed(final ActionEvent _e) { - if (!isValide()) { - return; - } - -// if (!PivExeLauncher.instance().areExeOK()) { -// PivExePanel pnExe = new PivExePanel(); -// -// // TODO BM : Verifier que les nouvelles images sont compatibles avec les donn\xE9es d'ortho ou message. -// -// if (!pnExe.afficheModaleOk(impl.getFrame(), PivResource.getS("R\xE9pertoire contenant les executables"))) { -// return; -// } -// } - - // Selection des images - if (pnExportImages==null) - pnExportImages = new PivExportTranfFilesPanel(impl); - pnExportImages.setRootProject(impl.getCurrentProject().getRoot()); - pnExportImages.setFiles(impl.getCurrentProject().getTransfImageFiles()); - if (!pnExportImages.afficheModaleOk(impl.getFrame(), PivResource.getS("Export des images"), CtuluDialog.OK_CANCEL_OPTION)) { - return; - } - - final File[] exportImgFiles=pnExportImages.getFiles(); - -// // Le reconditionnement des images. -// CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Traitement des images sources")) { -// -// @Override -// public void act() { -// try { -// CtuluAnalyze ana=new CtuluAnalyze(); -// ana.setDesc(getName()); -// impl.getCurrentProject().setSrcImagesFiles(exportImgFiles, this, ana); -// -// if (ana.containsErrorOrFatalError()) { -// impl.error(ana.getResume()); -// return; -// } -// -// } -// finally { -// diProgress_.dispose(); -// } -// -// impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_ORIGINAL_VIEW); -//// impl.message(PivResource.getS("{0} images ont \xE9t\xE9 reconditionn\xE9es avec succ\xE8s",impl.getCurrentProject().getSrcImageFiles().length)); -// } -// }; -// -// PivProgressionPanel pnProgress_=new PivProgressionPanel(r); -// diProgress_ = pnProgress_.createDialog(impl.getParentComponent()); -// diProgress_.setOption(CtuluDialog.ZERO_OPTION); -// diProgress_.setDefaultCloseOperation(CtuluDialog.DO_NOTHING_ON_CLOSE); -// diProgress_.setTitle(r.getName()); -// -// r.start(); -// diProgress_.afficheDialogModal(); - } - - /** - * @return true Si toutes les donn\xE9es sont pr\xE9sentes pour un lancement. - */ - public boolean isValide() { - return true; - } - - @Override - public String getEnableCondition() { - return PivResource.getS("Les images transform\xE9es doivent exister"); - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-09 11:29:44
|
Revision: 9011 http://sourceforge.net/p/fudaa/svn/9011 Author: bmarchan Date: 2015-02-09 11:29:41 +0000 (Mon, 09 Feb 2015) Log Message: ----------- Modification des panneaux de parametres calcul 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/PivImplementation.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivResource.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java Removed Paths: ------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivSelectInstantResultsPanel.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 2015-02-06 18:09:42 UTC (rev 9010) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivComputeParamPanel.java 2015-02-09 11:29:41 UTC (rev 9011) @@ -99,9 +99,6 @@ pnIASize.setBorder(javax.swing.BorderFactory.createTitledBorder(PivResource.getS("Aire d'interrogation (pix)"))); lbIASize.setText(PivResource.getS("Taille de l'aire:")); pnSA.setBorder(javax.swing.BorderFactory.createTitledBorder(PivResource.getS("Aire de recherche (pix)"))); - pnCorr.setBorder(javax.swing.BorderFactory.createTitledBorder(PivResource.getS("Corr\xE9lation"))); - pnNormeVit.setBorder(javax.swing.BorderFactory.createTitledBorder(PivResource.getS("Limites de la norme de vitesse (m/s)"))); - pnTransVit.setBorder(javax.swing.BorderFactory.createTitledBorder(PivResource.getS("Limites de la vitesse v transversale (m/s)"))); lbTemps.setText(PivResource.getS("Intervalle de temps (s):")); lbPosition.setText(PivResource.getS("Position du centre")); @@ -121,12 +118,6 @@ tfSip.setText("" + _params.getSip()); tfSjm.setText("" + _params.getSjm()); tfSjp.setText("" + _params.getSjp()); - tfMinCorr.setText("" + _params.getMinCorrelation()); - tfMaxCorr.setText("" + _params.getMaxCorrelation()); - tfMinNormeVit.setText("" + _params.getSmin()); - tfMaxNormeVit.setText("" + _params.getSmax()); - tfMinTransVit.setText("" + _params.getVmin()); - tfMaxTransVit.setText("" + _params.getVmax()); tfTemps.setText("" + _params.getTimeInterval()); if (_params.getIACenterPosition()!=null) { setCenterPosition(_params.getIACenterPosition()); @@ -158,12 +149,6 @@ _params.setSjm(Integer.parseInt(tfSjm.getText().trim())); _params.setSip(Integer.parseInt(tfSip.getText().trim())); _params.setSjp(Integer.parseInt(tfSjp.getText().trim())); - _params.setMinCorrelation(Double.parseDouble(tfMinCorr.getText().trim())); - _params.setMaxCorrelation(Double.parseDouble(tfMaxCorr.getText().trim())); - _params.setSmin(Double.parseDouble(tfMinNormeVit.getText().trim())); - _params.setSmax(Double.parseDouble(tfMaxNormeVit.getText().trim())); - _params.setVmin(Double.parseDouble(tfMinTransVit.getText().trim())); - _params.setVmax(Double.parseDouble(tfMaxTransVit.getText().trim())); _params.setTimeInterval(Double.parseDouble(tfTemps.getText().trim())); } @@ -231,27 +216,6 @@ } /** - * 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. - */ - private 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. @@ -289,12 +253,6 @@ isPositiveInteger(tfSip.getText(),PivResource.getS("Sip")) && isPositiveInteger(tfSjm.getText(),PivResource.getS("Sjm")) && isPositiveInteger(tfSjp.getText(),PivResource.getS("Sjp")) && - isReal(tfMinCorr.getText(),PivResource.getS("Min correlation")) && - isReal(tfMaxCorr.getText(),PivResource.getS("Max correlation")) && - isReal(tfMinNormeVit.getText(),PivResource.getS("Min norme de vitesse")) && - isReal(tfMaxNormeVit.getText(),PivResource.getS("Max norme de vitesse")) && - isReal(tfMinTransVit.getText(),PivResource.getS("Min vitesse transversale")) && - isReal(tfMaxTransVit.getText(),PivResource.getS("Max vitesse transversale")) && isStrictPositiveReal(tfTemps.getText(),PivResource.getS("Intervalle de temps")); if (!bok) return false; @@ -327,21 +285,6 @@ tfSjp = new javax.swing.JTextField(); lbSjm = new javax.swing.JLabel(); tfSjm = new javax.swing.JTextField(); - pnCorr = new javax.swing.JPanel(); - lbMinCorr = new javax.swing.JLabel(); - tfMinCorr = new javax.swing.JTextField(); - lbMaxCorr = new javax.swing.JLabel(); - tfMaxCorr = new javax.swing.JTextField(); - pnNormeVit = new javax.swing.JPanel(); - lbMinNormeVit = new javax.swing.JLabel(); - tfMinNormeVit = new javax.swing.JTextField(); - lbMaxNormeVit = new javax.swing.JLabel(); - tfMaxNormeVit = new javax.swing.JTextField(); - pnTransVit = new javax.swing.JPanel(); - lbMinTransVit = new javax.swing.JLabel(); - tfMinTransVit = new javax.swing.JTextField(); - lbMaxTransVit = new javax.swing.JLabel(); - tfMaxTransVit = new javax.swing.JTextField(); lbTemps = new javax.swing.JLabel(); tfTemps = new javax.swing.JTextField(); @@ -456,152 +399,44 @@ ); pnSA.setLayout(gl_pnSA); - pnCorr.setBorder(javax.swing.BorderFactory.createTitledBorder("Correlation")); - - lbMinCorr.setText("Min:"); - - lbMaxCorr.setText("Max:"); - - javax.swing.GroupLayout gl_pnCorr = new javax.swing.GroupLayout(pnCorr); - pnCorr.setLayout(gl_pnCorr); - gl_pnCorr.setHorizontalGroup( - gl_pnCorr.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(gl_pnCorr.createSequentialGroup() - .addComponent(lbMinCorr) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(tfMinCorr, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(lbMaxCorr) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tfMaxCorr, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE)) - ); - gl_pnCorr.setVerticalGroup( - gl_pnCorr.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(gl_pnCorr.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lbMinCorr) - .addComponent(tfMinCorr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lbMaxCorr) - .addComponent(tfMaxCorr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - ); - - pnNormeVit.setBorder(javax.swing.BorderFactory.createTitledBorder("Limits of the normal velocity (m/s)")); - - lbMinNormeVit.setText("Min:"); - - lbMaxNormeVit.setText("Max:"); - - javax.swing.GroupLayout gl_pnNormeVit = new javax.swing.GroupLayout(pnNormeVit); - pnNormeVit.setLayout(gl_pnNormeVit); - gl_pnNormeVit.setHorizontalGroup( - gl_pnNormeVit.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(gl_pnNormeVit.createSequentialGroup() - .addComponent(lbMinNormeVit) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(tfMinNormeVit, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(lbMaxNormeVit) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tfMaxNormeVit, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE)) - ); - gl_pnNormeVit.setVerticalGroup( - gl_pnNormeVit.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(gl_pnNormeVit.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lbMinNormeVit) - .addComponent(tfMinNormeVit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lbMaxNormeVit) - .addComponent(tfMaxNormeVit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - ); - - pnTransVit.setBorder(javax.swing.BorderFactory.createTitledBorder("Limits of the v transverse velocity (m/s)")); - - lbMinTransVit.setText("Min:"); - - lbMaxTransVit.setText("Max:"); - - javax.swing.GroupLayout gl_pnTransVit = new javax.swing.GroupLayout(pnTransVit); - pnTransVit.setLayout(gl_pnTransVit); - gl_pnTransVit.setHorizontalGroup( - gl_pnTransVit.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(gl_pnTransVit.createSequentialGroup() - .addComponent(lbMinTransVit) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(tfMinTransVit, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(lbMaxTransVit) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tfMaxTransVit, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE)) - ); - gl_pnTransVit.setVerticalGroup( - gl_pnTransVit.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(gl_pnTransVit.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lbMinTransVit) - .addComponent(tfMinTransVit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lbMaxTransVit) - .addComponent(tfMaxTransVit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - ); - lbTemps.setText("Time interval (s):"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); layout.setHorizontalGroup( layout.createParallelGroup(Alignment.LEADING) + .addComponent(pnSA, GroupLayout.DEFAULT_SIZE, 459, Short.MAX_VALUE) + .addComponent(pnIASize, GroupLayout.DEFAULT_SIZE, 459, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addComponent(lbTemps) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(tfTemps, GroupLayout.PREFERRED_SIZE, 90, GroupLayout.PREFERRED_SIZE) - .addGap(241)) - .addComponent(pnTransVit, 0, 448, Short.MAX_VALUE) - .addComponent(pnNormeVit, 0, 448, Short.MAX_VALUE) - .addComponent(pnCorr, GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE) - .addComponent(pnSA, GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE) - .addComponent(pnIASize, GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(Alignment.LEADING) - .addGroup(Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createSequentialGroup() .addComponent(pnIASize, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(pnSA, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(pnCorr, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(pnNormeVit, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(pnTransVit, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(Alignment.BASELINE) .addComponent(lbTemps) .addComponent(tfTemps, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addContainerGap(0, Short.MAX_VALUE)) + .addContainerGap(14, Short.MAX_VALUE)) ); this.setLayout(layout); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel lbIASize; - private javax.swing.JLabel lbMaxCorr; - private javax.swing.JLabel lbMaxNormeVit; - private javax.swing.JLabel lbMaxTransVit; - private javax.swing.JLabel lbMinCorr; - private javax.swing.JLabel lbMinNormeVit; - private javax.swing.JLabel lbMinTransVit; private javax.swing.JLabel lbSim; private javax.swing.JLabel lbSip; private javax.swing.JLabel lbSjm; private javax.swing.JLabel lbSjp; private javax.swing.JLabel lbTemps; - private javax.swing.JPanel pnCorr; private javax.swing.JPanel pnIASize; - private javax.swing.JPanel pnNormeVit; private javax.swing.JPanel pnSA; - private javax.swing.JPanel pnTransVit; private javax.swing.JTextField tfIASize; - private javax.swing.JTextField tfMaxCorr; - private javax.swing.JTextField tfMaxNormeVit; - private javax.swing.JTextField tfMaxTransVit; - private javax.swing.JTextField tfMinCorr; - private javax.swing.JTextField tfMinNormeVit; - private javax.swing.JTextField tfMinTransVit; private javax.swing.JTextField tfSim; private javax.swing.JTextField tfSip; private javax.swing.JTextField tfSjm; Copied: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java (from rev 9001, trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivSelectInstantResultsPanel.java) =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2015-02-09 11:29:41 UTC (rev 9011) @@ -0,0 +1,392 @@ +/* + * @creation 18 d\xE9c. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.fudaa.piv; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.BorderFactory; +import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTabbedPane; +import javax.swing.JTextField; + +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ctulu.gui.CtuluDialogPanel; +import org.fudaa.ctulu.gui.CtuluListEditorModel; +import org.fudaa.ctulu.gui.CtuluListEditorPanel; +import org.fudaa.fudaa.piv.metier.PivComputeParameters; + +import com.memoire.bu.BuLib; +import com.memoire.bu.BuVerticalLayout; + +/** + * Un panneau pour filtrer les r\xE9sultats instantan\xE9s utilis\xE9s pour faire le calcul de moyenne. + * Les resultats filtr\xE9s et selectionn\xE9s sont sauv\xE9s dans le projet. + * + * @author mar...@de... + * @version $Id$ + */ +public class PivFilterInstantResultsPanel extends CtuluDialogPanel { + + /** Le mod\xE8le pour la liste des resultats */ + private CtuluListEditorModel mdResults_; + /** La liste des r\xE9sultats dans l'ordre */ + private CtuluListEditorPanel pnListResults_; + private JTextField tfNormalMinLimit_; + private JTextField tfNormalMaxLimit_; + private JCheckBox cbVelFlt_; + private JTextField tfVyMinLimit_; + private JTextField tfVyMaxLimit_; + private JCheckBox cbCorrelFlt_; + private JTextField tfCorrelMinLimit_; + private JTextField tfCorrelMaxLimit_; + + /** + * Constructeur. + * @param _ui Le parent pour la boite de dialogue. + */ + public PivFilterInstantResultsPanel(CtuluUI _ui) { + + JTabbedPane tp=new JTabbedPane(); + + // Filtre pour la vitesse + + JPanel pnVelocity=new JPanel(); + pnVelocity.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3)); + pnVelocity.setLayout(new BuVerticalLayout(3, true, false)); + + cbVelFlt_ = new JCheckBox(PivResource.getS("Filtrer les vitesses")); + cbVelFlt_.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + boolean b=cbVelFlt_.isSelected(); + tfNormalMinLimit_.setEnabled(b); + tfNormalMaxLimit_.setEnabled(b); + tfVyMinLimit_.setEnabled(b); + tfVyMaxLimit_.setEnabled(b); + } + }); + pnVelocity.add(cbVelFlt_); + + JPanel pnNormalLimits=new JPanel(); + pnNormalLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la norme de vitesse (m/s)"))); + pnNormalLimits.setLayout(new BuVerticalLayout(3,true,false)); + + JPanel pn=new JPanel(); + pn.setLayout(new BorderLayout(3,3)); + JLabel lbNormalMinLimit=new JLabel(PivResource.getS("Min:")); + pn.add(lbNormalMinLimit, BorderLayout.WEST); + tfNormalMinLimit_ = new JTextField(); + pn.add(tfNormalMinLimit_, BorderLayout.CENTER); + pnNormalLimits.add(pn); + + pn=new JPanel(); + pn.setLayout(new BorderLayout(3,3)); + JLabel lbNormalMaxLimit=new JLabel(PivResource.getS("Max:")); + pn.add(lbNormalMaxLimit, BorderLayout.WEST); + tfNormalMaxLimit_ = new JTextField(); + pn.add(tfNormalMaxLimit_, BorderLayout.CENTER); + pnNormalLimits.add(pn); + pnVelocity.add(pnNormalLimits); + + JPanel pnVyLimits=new JPanel(); + pnVyLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Limites de la vitesse v transversale (m/s)"))); + pnVyLimits.setLayout(new BuVerticalLayout(3,true,false)); + + pn=new JPanel(); + pn.setLayout(new BorderLayout(3,3)); + JLabel lbVyMinLimit=new JLabel(PivResource.getS("Min:")); + pn.add(lbVyMinLimit, BorderLayout.WEST); + tfVyMinLimit_ = new JTextField(); + pn.add(tfVyMinLimit_, BorderLayout.CENTER); + pnVyLimits.add(pn); + + pn=new JPanel(); + pn.setLayout(new BorderLayout(3,3)); + JLabel lbVyMaxLimit=new JLabel(PivResource.getS("Max:")); + pn.add(lbVyMaxLimit, BorderLayout.WEST); + tfVyMaxLimit_ = new JTextField(); + pn.add(tfVyMaxLimit_, BorderLayout.CENTER); + pnVyLimits.add(pn); + pnVelocity.add(pnVyLimits); + tp.addTab(PivResource.getS("Vitesse"), pnVelocity); + + BuLib.giveSameWidth(lbNormalMinLimit, lbNormalMaxLimit, lbVyMinLimit, lbVyMaxLimit); + + // Filtre pour la correlation + + JPanel pnCorrel=new JPanel(); + pnCorrel.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3)); + pnCorrel.setLayout(new BuVerticalLayout(3, true, false)); + + cbCorrelFlt_ = new JCheckBox(PivResource.getS("Filtrer les corr\xE9lations")); + cbCorrelFlt_.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + boolean b=cbCorrelFlt_.isSelected(); + tfCorrelMinLimit_.setEnabled(b); + tfCorrelMaxLimit_.setEnabled(b); + } + }); + pnCorrel.add(cbCorrelFlt_); + + JPanel pnCorrelLimits=new JPanel(); + pnCorrelLimits.setBorder(BorderFactory.createTitledBorder(PivResource.getS("Corr\xE9lation"))); + pnCorrelLimits.setLayout(new BuVerticalLayout(3,true,false)); + + pn=new JPanel(); + pn.setLayout(new BorderLayout(3,3)); + JLabel lbCorrelMinLimit=new JLabel(PivResource.getS("Min:")); + pn.add(lbCorrelMinLimit, BorderLayout.WEST); + tfCorrelMinLimit_ = new JTextField(); + pn.add(tfCorrelMinLimit_, BorderLayout.CENTER); + pnCorrelLimits.add(pn); + + pn=new JPanel(); + pn.setLayout(new BorderLayout(3,3)); + JLabel lbCorrelMaxLimit=new JLabel(PivResource.getS("Max:")); + pn.add(lbCorrelMaxLimit, BorderLayout.WEST); + tfCorrelMaxLimit_ = new JTextField(); + pn.add(tfCorrelMaxLimit_, BorderLayout.CENTER); + pnCorrelLimits.add(pn); + pnCorrel.add(pnCorrelLimits); + tp.addTab(PivResource.getS("Corr\xE9lation"), pnCorrel); + + BuLib.giveSameWidth(lbCorrelMinLimit, lbCorrelMaxLimit); + + // Moyenne + + JPanel pnAverage=new JPanel(); + pnAverage.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3)); + pnAverage.setLayout(new BuVerticalLayout(3, true, true)); + + // Label r\xE9sultats + pnAverage.add(new JLabel(PivResource.getS("Liste des r\xE9sultats instantan\xE9s"),JLabel.LEFT)); + + // Liste des r\xE9sultats + mdResults_=new CtuluListEditorModel(false) { + @Override + public boolean isCellEditable(int _rowIndex, int _columnIndex) { + return false; + } + @Override + public Object createNewObject() { + return null; + } + }; + + pnListResults_ = new CtuluListEditorPanel(mdResults_, false, false, false, false, false); + pnAverage.setPreferredSize(new Dimension(300,200)); + pnAverage.add(pnListResults_); + tp.addTab(PivResource.getS("Moyenne"), pnAverage); + + setLayout(new BorderLayout()); + add(tp,BorderLayout.CENTER); + } + + @Override + public void setValue(Object _usedResults) { + if (!(_usedResults instanceof boolean[])) + throw new IllegalArgumentException("bad type parameter"); + setSelectedResults((boolean[])_usedResults); + + cbVelFlt_.setSelected(false); + } + + @Override + public boolean[] getValue() { + return getSelectedResults(); + } + + /** + * Definit les valeurs pour les filtres + * @param _params Les param\xE8tres du calcul, contenant les valeurs de filtres. + */ + public void setFilterValues(PivComputeParameters _params) { + if (_params==null) return; + + if (_params.getMinCorrelation()==PivResource.FORTRAN_DOUBLE_MIN) { + cbCorrelFlt_.setSelected(false); + } + else { + cbCorrelFlt_.setSelected(true); + tfCorrelMinLimit_.setText(""+_params.getMinCorrelation()); + tfCorrelMaxLimit_.setText(""+_params.getMaxCorrelation()); + } + + if (_params.getSmin()==PivResource.FORTRAN_DOUBLE_MIN) { + cbVelFlt_.setSelected(false); + } + else { + cbVelFlt_.setSelected(true); + tfNormalMinLimit_.setText(""+_params.getSmin()); + tfNormalMaxLimit_.setText(""+_params.getSmax()); + tfVyMinLimit_.setText(""+_params.getVmin()); + tfVyMaxLimit_.setText(""+_params.getVmax()); + } + } + + /** + * Recupere les valeurs pour les filtres. _params contient d\xE9j\xE0 des valeurs, seules les valeurs pour + * les filtres sont initialis\xE9es. + * @param _params Les param\xE8tres du calcul. + */ + public void retrieveFilterValues(PivComputeParameters _params) { + if (_params==null) return; + + if (cbCorrelFlt_.isSelected()) { + _params.setMinCorrelation(Double.parseDouble(tfCorrelMinLimit_.getText())); + _params.setMaxCorrelation(Double.parseDouble(tfCorrelMaxLimit_.getText())); + } + else { + _params.setMinCorrelation(PivResource.FORTRAN_DOUBLE_MIN); + _params.setMaxCorrelation(PivResource.FORTRAN_DOUBLE_MAX); + } + + if (cbVelFlt_.isSelected()) { + _params.setSmin(Double.parseDouble(tfNormalMinLimit_.getText())); + _params.setSmax(Double.parseDouble(tfNormalMaxLimit_.getText())); + _params.setVmin(Double.parseDouble(tfVyMinLimit_.getText())); + _params.setVmax(Double.parseDouble(tfVyMaxLimit_.getText())); + } + else { + _params.setSmin(PivResource.FORTRAN_DOUBLE_MIN); + _params.setSmax(PivResource.FORTRAN_DOUBLE_MAX); + _params.setVmin(PivResource.FORTRAN_DOUBLE_MIN); + _params.setVmax(PivResource.FORTRAN_DOUBLE_MAX); + } + } + + + /** + * D\xE9finit les resultats s\xE9lectionn\xE9s pour la moyenne. + * @param _tool L'utilitaire + */ + public void setSelectedResults(boolean[] _usedResults) { + if (_usedResults==null) return; + + String[] values=new String[_usedResults.length]; + for (int i=0; i<_usedResults.length; i++) { + values[i]=PivResource.getS("R\xE9sultat : {0}", (i+1)); + } + + mdResults_.setData(values); + + for (int i=0; i<_usedResults.length; i++) { + if (_usedResults[i]) + pnListResults_.getTable().getSelectionModel().addSelectionInterval(i, i); + } + + } + + /** + * @return Les r\xE9sultats selectionn\xE9s. + */ + public boolean[] getSelectedResults() { + boolean[] idSels=new boolean[mdResults_.getRowCount()]; + int[] sel=pnListResults_.getTable().getSelectedRows(); + for (int i : sel) { + idSels[i]=true; + } + + return idSels; + } + + /** + * 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. + */ + private 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; + } + + @Override + public boolean isDataValid() { + boolean bok= + !cbVelFlt_.isSelected() || ( + isReal(tfNormalMinLimit_.getText(),PivResource.getS("Min norme de vitesse")) && + isReal(tfNormalMaxLimit_.getText(),PivResource.getS("Max norme de vitesse")) && + isReal(tfVyMinLimit_.getText(),PivResource.getS("Min vitesse transversale")) && + isReal(tfVyMaxLimit_.getText(),PivResource.getS("Max vitesse transversale"))); + if (!bok) return false; + + double min; + double max; + + if (cbVelFlt_.isSelected()) { + min=Double.parseDouble(tfNormalMinLimit_.getText()); + if (min<=PivResource.FORTRAN_DOUBLE_MIN) { + setErrorText(PivResource.getS("{0}: Doit \xEAtre sup\xE9rieur \xE0 {1}", + PivResource.getS("Min norme de vitesse"), PivResource.FORTRAN_DOUBLE_MIN)); + return false; + } + max=Double.parseDouble(tfNormalMaxLimit_.getText()); + if (max>=PivResource.FORTRAN_DOUBLE_MAX) { + setErrorText(PivResource.getS("{0}: Doit \xEAtre inf\xE9rieur \xE0 {1}", + PivResource.getS("Max norme de vitesse"), PivResource.FORTRAN_DOUBLE_MAX)); + return false; + } + min=Double.parseDouble(tfVyMinLimit_.getText()); + if (min<=PivResource.FORTRAN_DOUBLE_MIN) { + setErrorText(PivResource.getS("{0}: Doit \xEAtre sup\xE9rieur \xE0 {1}", + PivResource.getS("Min vitesse transversale"), PivResource.FORTRAN_DOUBLE_MIN)); + return false; + } + max=Double.parseDouble(tfVyMaxLimit_.getText()); + if (max>=PivResource.FORTRAN_DOUBLE_MAX) { + setErrorText(PivResource.getS("{0}: Doit \xEAtre inf\xE9rieur \xE0 {1}", + PivResource.getS("Max vitesse transversale"), PivResource.FORTRAN_DOUBLE_MAX)); + return false; + } + } + + bok= + !cbCorrelFlt_.isSelected() || ( + isReal(tfCorrelMinLimit_.getText(),PivResource.getS("Min corr\xE9lation")) && + isReal(tfCorrelMaxLimit_.getText(),PivResource.getS("Max corr\xE9lation"))); + if (!bok) return false; + + if (cbCorrelFlt_.isSelected()) { + min=Double.parseDouble(tfCorrelMinLimit_.getText()); + if (min <= PivResource.FORTRAN_DOUBLE_MIN) { + setErrorText(PivResource.getS("{0}: Doit \xEAtre sup\xE9rieur \xE0 {1}", + PivResource.getS("Min corr\xE9lation"), PivResource.FORTRAN_DOUBLE_MIN)); + return false; + } + max=Double.parseDouble(tfCorrelMaxLimit_.getText()); + if (max >= PivResource.FORTRAN_DOUBLE_MAX) { + setErrorText(PivResource.getS("{0}: Doit \xEAtre inf\xE9rieur \xE0 {1}", + PivResource.getS("Max corr\xE9lation"), PivResource.FORTRAN_DOUBLE_MAX)); + return false; + } + } + + if (pnListResults_.getTable().getSelectedRowCount()==0) { + setErrorText(PivResource.getS("Vous devez s\xE9lectionner 1 r\xE9sultat au moins pour la moyenne")); + return false; + } + return true; + } +} 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 2015-02-06 18:09:42 UTC (rev 9010) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-02-09 11:29:41 UTC (rev 9011) @@ -780,11 +780,11 @@ mn.add(sm); mn.add(new PivComputeLaunchAction(this)); - mn.addSeparator(PivResource.getS("R\xE9sultats")); + mn.addSeparator(PivResource.getS("Post-traitement")); mn.add(new PivComputeAverageAction(this)); mn.add(get2dFrame().getVisuPanel().getShowVelocitiesAction().buildMenuItem(EbliComponentFactory.INSTANCE)); - mn.addSeparator(PivResource.getS("Post-traitement")); + mn.addSeparator(PivResource.getS("D\xE9bit")); mn.add(new PivFlowParamAction(this)); sm=new BuMenu(PivResource.getS("Transect"),"mnGRP"); bt=get2dFrame().getVisuPanel().getNewTransectAction().buildMenuItem(EbliComponentFactory.INSTANCE); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivResource.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivResource.java 2015-02-06 18:09:42 UTC (rev 9010) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivResource.java 2015-02-09 11:29:41 UTC (rev 9011) @@ -21,6 +21,11 @@ */ public final class PivResource extends FudaaResource { + /** Valeur min pour un double support\xE9e par FORTRAN */ + public final static double FORTRAN_DOUBLE_MIN=-1.e30; + /** Valeur max pour un double support\xE9e par FORTRAN */ + public final static double FORTRAN_DOUBLE_MAX=1.e30; + /** * Singleton, utilis\xE9 pour la r\xE9cup\xE9ration des icones propres \xE0 Fudaa-Piv. */ Deleted: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivSelectInstantResultsPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivSelectInstantResultsPanel.java 2015-02-06 18:09:42 UTC (rev 9010) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivSelectInstantResultsPanel.java 2015-02-09 11:29:41 UTC (rev 9011) @@ -1,119 +0,0 @@ -/* - * @creation 18 d\xE9c. 2008 - * @modification $Date:$ - * @license GNU General Public License 2 - * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail fud...@li... - */ -package org.fudaa.fudaa.piv; - -import java.awt.Dimension; - -import javax.swing.JLabel; - -import org.fudaa.ctulu.CtuluUI; -import org.fudaa.ctulu.gui.CtuluDialogPanel; -import org.fudaa.ctulu.gui.CtuluListEditorModel; -import org.fudaa.ctulu.gui.CtuluListEditorPanel; - -import com.memoire.bu.BuVerticalLayout; - -/** - * Un panneau pour s\xE9lectionner les r\xE9sultats instantan\xE9s utilis\xE9s pour faire le calcul de moyenne. - * Les resultats selectionn\xE9s sont sauv\xE9s dans le projet. - * - * @author mar...@de... - * @version $Id$ - */ -public class PivSelectInstantResultsPanel extends CtuluDialogPanel { - - /** Le mod\xE8le pour la liste des resultats */ - private CtuluListEditorModel mdResults_; - /** La liste des r\xE9sultats dans l'ordre */ - private CtuluListEditorPanel pnResults_; - - /** - * Constructeur. - * @param _ui Le parent pour la boite de dialogue. - */ - public PivSelectInstantResultsPanel(CtuluUI _ui) { - - setLayout(new BuVerticalLayout(5, true, true)); - - // Label r\xE9sultats - add(new JLabel(PivResource.getS("Liste des r\xE9sultats"),JLabel.LEFT)); - - // Liste des r\xE9sultats - mdResults_=new CtuluListEditorModel(false) { - @Override - public boolean isCellEditable(int _rowIndex, int _columnIndex) { - return false; - } - @Override - public Object createNewObject() { - return null; - } - }; - - pnResults_ = new CtuluListEditorPanel(mdResults_, false, false, false, false, false); - - setPreferredSize(new Dimension(300,200)); - - add(pnResults_); - } - - @Override - public void setValue(Object _usedResults) { - if (!(_usedResults instanceof boolean[])) - throw new IllegalArgumentException("bad type parameter"); - setSelectedResults((boolean[])_usedResults); - } - - @Override - public boolean[] getValue() { - return getSelectedResults(); - } - - /** - * D\xE9finit les resultats s\xE9lectionn\xE9s. - * @param _tool L'utilitaire - */ - public void setSelectedResults(boolean[] _usedResults) { - if (_usedResults==null) return; - - String[] values=new String[_usedResults.length]; - for (int i=0; i<_usedResults.length; i++) { - values[i]=PivResource.getS("R\xE9sultat : {0}", (i+1)); - } - - mdResults_.setData(values); - - for (int i=0; i<_usedResults.length; i++) { - if (_usedResults[i]) - pnResults_.getTable().getSelectionModel().addSelectionInterval(i, i); - } - - } - - /** - * @return Les r\xE9sultats selectionn\xE9s. - */ - public boolean[] getSelectedResults() { - boolean[] idSels=new boolean[mdResults_.getRowCount()]; - int[] sel=pnResults_.getTable().getSelectedRows(); - for (int i : sel) { - idSels[i]=true; - } - - return idSels; - } - - @Override - public boolean isDataValid() { - if (pnResults_.getTable().getSelectedRowCount()==0) { - setErrorText(PivResource.getS("Vous devez s\xE9lectionner 1 r\xE9sultat au moins")); - return false; - } - return true; - } -} Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2015-02-06 18:09:42 UTC (rev 9010) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2015-02-09 11:29:41 UTC (rev 9011) @@ -17,9 +17,10 @@ import org.fudaa.fudaa.piv.PivImplementation; import org.fudaa.fudaa.piv.PivProgressionPanel; import org.fudaa.fudaa.piv.PivResource; -import org.fudaa.fudaa.piv.PivSelectInstantResultsPanel; +import org.fudaa.fudaa.piv.PivFilterInstantResultsPanel; import org.fudaa.fudaa.piv.PivVisuPanel; import org.fudaa.fudaa.piv.io.PivExeLauncher; +import org.fudaa.fudaa.piv.metier.PivComputeParameters; /** * Une action pour lancer les filtres et moyenne sur les r\xE9sultats @@ -60,13 +61,19 @@ } } - PivSelectInstantResultsPanel pn=new PivSelectInstantResultsPanel(impl); + PivFilterInstantResultsPanel pn=new PivFilterInstantResultsPanel(impl); pn.setSelectedResults(impl.getCurrentProject().getUsedInstantResults()); - if (!pn.afficheModaleOk(impl.getFrame(), PivResource.getS("S\xE9lection des r\xE9sultats instantan\xE9s"), CtuluDialog.OK_CANCEL_OPTION)) { + pn.setFilterValues(impl.getCurrentProject().getComputeParameters()); + if (!pn.afficheModaleOk(impl.getFrame(), PivResource.getS("Filtrage/moyenne des r\xE9sultats instantan\xE9s"), CtuluDialog.OK_CANCEL_OPTION)) { return; } impl.getCurrentProject().setUsedInstantResults(pn.getSelectedResults()); + PivComputeParameters params=impl.getCurrentProject().getComputeParameters(); + if (params==null) + params=new PivComputeParameters(); + pn.retrieveFilterValues(params); + impl.getCurrentProject().setComputeParameters(params); // La tache a ex\xE9cuter. CtuluTaskOperationGUI r=new CtuluTaskOperationGUI(impl, PivResource.getS("Filtrage/moyenne des r\xE9sultats instantan\xE9s")) { 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 2015-02-06 18:09:42 UTC (rev 9010) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivComputeParameters.java 2015-02-09 11:29:41 UTC (rev 9011) @@ -1,6 +1,7 @@ package org.fudaa.fudaa.piv.metier; import org.fudaa.ebli.geometrie.GrPoint; +import org.fudaa.fudaa.piv.PivResource; /** * Les parametres pour le calcul des vitesses par PIV. @@ -24,17 +25,17 @@ /** La position suivant j et i du centre de l'aire. */ protected GrPoint ptCenter; /** La correlation minimale */ - protected double minCorrelation=0; + protected double minCorrelation=PivResource.FORTRAN_DOUBLE_MIN; /** La correlation maximale */ - protected double maxCorrelation=1; + protected double maxCorrelation=PivResource.FORTRAN_DOUBLE_MAX; /** Valeur min des normes de vitesse */ - protected double smin; + protected double smin=PivResource.FORTRAN_DOUBLE_MIN; /** Valeur max des normes de vitesse */ - protected double smax=1000000; + protected double smax=PivResource.FORTRAN_DOUBLE_MAX; /** Valeur min des vitesses transversales */ - protected double vmin=-1000000; + protected double vmin=PivResource.FORTRAN_DOUBLE_MIN; /** Valeur max des vitesses transversales */ - protected double vmax=1000000; + protected double vmax=PivResource.FORTRAN_DOUBLE_MAX; public PivComputeParameters() { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-12 13:49:54
|
Revision: 9012 http://sourceforge.net/p/fudaa/svn/9012 Author: bmarchan Date: 2015-02-12 13:49:51 +0000 (Thu, 12 Feb 2015) Log Message: ----------- R?\195?\169cup?\195?\169ration des r?\195?\169sultats instantan?\195?\169s filtr?\195?\169s et affichage dans de nouveaux calques Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOriginalViewAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.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/layer/PivOriginalImageModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredFileFormat.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -40,8 +40,8 @@ * @author Bertrand Marchand (mar...@de...) */ public class PivOriginalView implements PivViewI, PivProjectStateListener { - /** Le nom de la vue en espace image reconditionn\xE9e */ - public static final String TITLE=PivResource.getS("Espace image reconditionn\xE9e"); + /** Le nom de la vue en espace image source */ + public static final String TITLE=PivResource.getS("Espace image source"); /** La d\xE9finition de coordonn\xE9e pour X */ private static final EbliCoordinateDefinition DEF_COOR_I=new EbliCoordinateDefinition("I", new EbliFormatter(NonSI.PIXEL)); @@ -92,7 +92,7 @@ } /** - * Construction des calques pour l'espace reconditionn\xE9. + * Construction des calques pour l'espace image source. */ private void buildLayers() { layers_.clear(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -92,12 +92,16 @@ PivImageRasterLayer cqRealImg_; /** L'affichage d'un transect */ ZCalqueLigneBriseeEditable cqTransect_; - /** L'affichage des r\xE9sultats moyenn\xE9s */ + /** L'affichage des vitesses moyenn\xE9es */ PivVelResultsLayer cqVelResults; - /** L'affichage des r\xE9sultats instantan\xE9s */ + /** L'affichage des vitesses instantan\xE9es */ PivVelResultsLayer cqInstantVelResults_; + /** L'affichage des vitesses filtr\xE9es instantan\xE9es */ + PivVelResultsLayer cqInstantVelFltResults_; /** L'affichage des r\xE9sultats de d\xE9bit */ ZCalqueFleche cqFlowResults; + /** L'affichage des r\xE9sultats instantan\xE9s filtr\xE9s */ + PivResultsLayer cqInstantFltIso_; /** L'affichage des r\xE9sultats instantan\xE9s */ PivResultsLayer cqInstantIso_; /** L'affichage des r\xE9sultats moyenn\xE9s */ @@ -110,7 +114,9 @@ PivTransectModel mdlTransect; PivFlowResultsModel mdlFlowResults; PivVelResultsModel mdlInstantVelResults; + PivVelResultsModel mdlInstantVelFltResults; PivResultsModel mdlInstantResults; + PivResultsModel mdlInstantFltResults; PivResultsModel mdlAverageResults; /** @@ -181,7 +187,7 @@ } /** - * Construction des calques pour l'espace reconditionn\xE9. + * Construction des calques. */ private void buildLayers() { layers_.clear(); @@ -218,7 +224,7 @@ cqRealImg_.setTitle(PivResource.getS("Image transform\xE9e")); cqRealImg_.setName("cqRealImg"); - // Layer des vitesses resultantes. + // Layer des vitesses moyennes. cqVelResults = new PivVelResultsLayer(); cqVelResults.setTitle(PivResource.getS("Vit. surf. moy.")); cqVelResults.setLongTitle(PivResource.getS("Vitesses de surface moyenn\xE9es")); @@ -226,6 +232,7 @@ cqVelResults.setName("cqRealVel"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. cqVelResults.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.RED)); + cqVelResults.setVisible(false); cqVelResults.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if ("visible".equals(evt.getPropertyName())) { @@ -234,7 +241,7 @@ } }); - // Layer des vitesses instantan\xE9es resultantes. + // Layer des vitesses instantan\xE9es non filtr\xE9es. cqInstantVelResults_ = new PivVelResultsLayer(); cqInstantVelResults_.setTitle(PivResource.getS("Vit. surf. inst.")); cqInstantVelResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es")); @@ -242,14 +249,32 @@ cqInstantVelResults_.setName("cqInstantVel"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. cqInstantVelResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.ORANGE)); - cqInstantVelResults_.addPropertyChangeListener(new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent evt) { - if ("visible".equals(evt.getPropertyName())) { + cqInstantVelResults_.setVisible(false); +// cqInstantVelResults_.addPropertyChangeListener(new PropertyChangeListener() { +// public void propertyChange(PropertyChangeEvent evt) { +// if ("visible".equals(evt.getPropertyName())) { // pnLayers_.getShowVelocitiesAction().setSelected((Boolean)evt.getNewValue()); - } - } - }); +// } +// } +// }); + // Layer des vitesses instantan\xE9es filtr\xE9es. + cqInstantVelFltResults_ = new PivVelResultsLayer(); + cqInstantVelFltResults_.setTitle(PivResource.getS("Vit. surf. inst. filtr\xE9es")); + cqInstantVelFltResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es filtr\xE9es")); + cqInstantVelFltResults_.setTitleModifiable(true); + cqInstantVelFltResults_.setName("cqInstantVelFlt"); + // Donne la couleur des fl\xE8ches si pas de palette de couleurs. + cqInstantVelFltResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.GREEN.darker())); + cqInstantVelFltResults_.setVisible(false); +// cqInstantVelFltResults_.addPropertyChangeListener(new PropertyChangeListener() { +// public void propertyChange(PropertyChangeEvent evt) { +// if ("visible".equals(evt.getPropertyName())) { +// pnLayers_.getShowVelocitiesAction().setSelected((Boolean)evt.getNewValue()); +// } +// } +// }); + // Layer des d\xE9bits. cqFlowResults = new ZCalqueFleche() { @Override @@ -282,6 +307,14 @@ cqTransect_.setEditor(pnLayers_.getEditor()); getNewTransectAction().setTransectLayer(cqTransect_); + // Layer des iso couleurs instantan\xE9es filtr\xE9es + cqInstantFltIso_ = new PivResultsLayer(); + cqInstantFltIso_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY)); + cqInstantFltIso_.setTitle(PivResource.getS("R\xE9sultats inst. filtr\xE9s")); + cqInstantFltIso_.setName("cqInstantFltResults"); + cqInstantFltIso_.setDestructible(false); + cqInstantFltIso_.setVisible(false); + // Layer des iso couleurs instantan\xE9es cqInstantIso_ = new PivResultsLayer(); cqInstantIso_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY)); @@ -298,12 +331,14 @@ cqAverageIso_.setDestructible(false); cqAverageIso_.setVisible(false); + layers_.add(cqTransect_); + layers_.add(cqRealOrthoPoints_); layers_.add(cqVelResults); + layers_.add(cqInstantVelFltResults_); layers_.add(cqInstantVelResults_); layers_.add(cqFlowResults); - layers_.add(cqTransect_); - layers_.add(cqRealOrthoPoints_); layers_.add(cqAverageIso_); + layers_.add(cqInstantFltIso_); layers_.add(cqInstantIso_); layers_.add(cqRealImg_); } @@ -326,7 +361,7 @@ cqRealImg_.setModele(mdlRealImage); if (prj_.getAverageResults()!=null) { - mdlVelResults=new PivVelResultsModel(new PivResultsI[]{prj_.getAverageResults()}); + mdlVelResults=new PivVelResultsModel(prj_.getAverageResults()); cqVelResults.setModele(mdlVelResults); cqVelResults.setVisible(false); } @@ -336,6 +371,12 @@ cqInstantVelResults_.setModele(mdlInstantVelResults); cqInstantVelResults_.setVisible(false); } + + if (prj_.getInstantFilteredResults()!=null) { + mdlInstantVelFltResults=new PivVelResultsModel(prj_.getInstantFilteredResults()); + cqInstantVelFltResults_.setModele(mdlInstantVelFltResults); + cqInstantVelFltResults_.setVisible(false); + } mdlFlowResults=new PivFlowResultsModel(); mdlFlowResults.setProjet(prj_); @@ -351,6 +392,11 @@ cqInstantIso_.setModele(mdlInstantResults); } + if (prj_.getInstantFilteredResults()!=null) { + mdlInstantFltResults=new PivResultsModel(prj_.getInstantFilteredResults(),null); + cqInstantFltIso_.setModele(mdlInstantFltResults); + } + if (prj_.getAverageResults()!=null) { mdlAverageResults=new PivResultsModel(new PivResultsI[]{prj_.getAverageResults()}, null); cqAverageIso_.setModele(mdlAverageResults); @@ -417,14 +463,14 @@ // Le bouton de lock entre images et vitesses instantann\xE9es. btLock_ = new BuTransparentToggleButton(PivResource.PIV.getIcon("non-lie-horizontal"), PivResource.PIV.getIcon("lie-horizontal")); btLock_.setBorder(BorderFactory.createEmptyBorder(5, 3, 5, 3)); - btLock_.setToolTipText(PivResource.getS("Lie/d\xE9lie l'image et les vitesses")); + btLock_.setToolTipText(PivResource.getS("Lie/d\xE9lie l'image et le r\xE9sultat instantan\xE9")); btLock_.setEnabled(false); // La liste d\xE9roulante des r\xE9sultats. cbVel_ = new BuComboBox(); cbVel_.setPreferredSize(new Dimension(180, cbVel_.getPreferredSize().height)); cbVel_.setMaximumSize(cbVel_.getPreferredSize()); - cbVel_.setToolTipText(PivResource.getS("Affiche les vitesses instantan\xE9es s\xE9lectionn\xE9es")); + cbVel_.setToolTipText(PivResource.getS("Affiche le r\xE9sultat instantan\xE9 s\xE9lectionn\xE9")); cbVel_.setEnabled(false); cbVel_.addItemListener(new ItemListener() { @@ -447,14 +493,23 @@ private void setSelectedResult(int _ind) { if (cqInstantVelResults_!=null && cqInstantVelResults_.modeleDonnees()!=null) { - ((PivVelResultsModel)cqInstantVelResults_.modeleDonnees()).setSelectedResult(_ind); + cqInstantVelResults_.modeleDonnees().setSelectedResult(_ind); // Pour que le calque soit r\xE9affich\xE9. cqInstantVelResults_.repaint(); } + if (cqInstantVelFltResults_!=null && cqInstantVelFltResults_.modeleDonnees()!=null) { + cqInstantVelFltResults_.modeleDonnees().setSelectedResult(_ind); + // Pour que le calque soit r\xE9affich\xE9. + cqInstantVelFltResults_.repaint(); + } if (cqInstantIso_!=null && cqInstantIso_.modeleDonnees()!=null) { cqInstantIso_.modele().setCurrentTimeIdx(_ind); cqInstantIso_.repaint(); } + if (cqInstantFltIso_!=null && cqInstantFltIso_.modeleDonnees()!=null) { + cqInstantFltIso_.modele().setCurrentTimeIdx(_ind); + cqInstantFltIso_.repaint(); + } } private void setSelectedImage(int _ind) { @@ -478,6 +533,12 @@ cqInstantIso_.repaint(); } } + else if (cq==cqInstantFltIso_) { + if (cqInstantFltIso_.modele()!=null) { + cqInstantFltIso_.modele().setCurrentVar(_var); + cqInstantFltIso_.repaint(); + } + } else if (cq==cqAverageIso_) { if (cqAverageIso_.modele()!=null) { cqAverageIso_.modele().setCurrentVar(_var); @@ -521,7 +582,7 @@ cbImg_.setEnabled(imgs.length > 0); } - // La liste des vitesses instantan\xE9es + // La liste des r\xE9sultats instantan\xE9s PivResultsI[] instantRes=prj_.getInstantResults(); if (instantRes != null) { for (int i = 0; i < instantRes.length; i++) { @@ -561,6 +622,10 @@ cbVar_.setEnabled(true); cbVar_.setSelectedItem(cqInstantIso_.modele().getCurrentVar()); } + else if (cq==cqInstantFltIso_ && cqInstantFltIso_.modele()!=null) { + cbVar_.setEnabled(true); + cbVar_.setSelectedItem(cqInstantFltIso_.modele().getCurrentVar()); + } else { cbVar_.setEnabled(false); } @@ -609,6 +674,20 @@ majTools(); } + else if ("instantFilteredResults".equals(_prop)) { + if (_prj.getInstantFilteredResults()!=null) { + mdlInstantFltResults=new PivResultsModel(prj_.getInstantFilteredResults(),null); + mdlInstantVelFltResults=new PivVelResultsModel(prj_.getInstantFilteredResults()); + } + else { + mdlInstantResults=null; + mdlInstantVelFltResults=null; + } + cqInstantFltIso_.setModele(mdlInstantFltResults); + cqInstantVelFltResults_.setModele(mdlInstantVelFltResults); + + majTools(); + } pnLayers_.getVueCalque().repaint(); } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -83,7 +83,7 @@ CtuluAnalyze ana=new CtuluAnalyze(); // Filtrage - PivExeLauncher.instance().launchFilterVelocities(ana, impl.getCurrentProject(),this); + PivExeLauncher.instance().launchFilterInstantResultats(ana, impl.getCurrentProject(),this); if (ana.containsErrorOrFatalError()) { impl.error(ana.getResume()); return; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -85,6 +85,6 @@ @Override public String getEnableCondition() { - return PivResource.getS("Il doit exister au moins une image reconditionn\xE9e"); + return PivResource.getS("Il doit exister au moins une image source"); } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOriginalViewAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOriginalViewAction.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOriginalViewAction.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -48,7 +48,7 @@ return false; } if (!impl.getCurrentProject().hasSrcImages()) { - impl.error(PivResource.getS("Erreur"), PivResource.getS("Le projet doit contenir au moins 1 image reconditionn\xE9e")); + impl.error(PivResource.getS("Erreur"), PivResource.getS("Le projet doit contenir au moins 1 image source")); return false; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoGRPAction.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -239,7 +239,7 @@ @Override public String getEnableCondition() { - return PivResource.getS("Il doit exister au moins une image reconditionn\xE9e"); + return PivResource.getS("Il doit exister au moins une image source"); } /** Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoParamAction.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -35,7 +35,7 @@ } public String getEnableCondition() { - return PivResource.getS("Il doit exister au moins une image reconditionn\xE9e"); + return PivResource.getS("Il doit exister au moins une image source"); } /** 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 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -439,7 +439,7 @@ // On renomme le fichier new File(prjVelRaw,"piv.dat").renameTo(new File(prjVelRaw,"piv"+computeImgNumber(i+1)+".dat")); - prog=(i+1)*90/(imgOut.length-1); + prog=(i+1)*90/(imgOut.length-1)+5; if (_task!=null) _task.setProgression(prog); } @@ -529,17 +529,15 @@ } /** - * Lance le filtrage des vitesses et leur restitution dans l'espace r\xE9el, en tenant compte des resultats - * instantan\xE9s s\xE9lectionn\xE9s. + * Lance le filtrage des r\xE9sultats et leur restitution dans l'espace r\xE9el. * Le filtrage est fait dans le r\xE9pertoire projet. * * @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 #launchPiv */ - public boolean launchFilterVelocities(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchFilterInstantResultats(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjOutputs=new File(prjRoot,OUTPUT_DIR); File prjVelFlt=new File(prjRoot,VEL_FILTER_DIR); @@ -548,16 +546,18 @@ prjVelFlt.mkdir(); for (File f : prjVelFlt.listFiles()) f.delete(); - String desc=PivResource.getS("Filtrage des vitesses..."); + String desc=PivResource.getS("Filtrage des r\xE9sultats..."); FuLog.trace(desc); if (_task!=null) { _task.setDesc(desc); _task.setProgression(0); } + PivResultsI[] res=null; + try { // Cr\xE9ation du fichier contenant la liste des fichiers piv.dat obtenus par calcul. - _prj.saveUsedInstantResults(); + _prj.saveInstantResultsList(true); // PIV_param.dat File paramFile=new File(prjOutputs, "PIV_param.dat"); @@ -576,7 +576,7 @@ String outs = FuLib.runProgram(new String[]{exePath+File.separator+EXE.filter + EXE_EXT}, prjRoot); if (!outs.trim().equals("")) { - _ana.addError(PivResource.getS("Erreur de filtrage des vitesses:\n")+outs); + _ana.addError(PivResource.getS("Erreur de filtrage des r\xE9sultats:\n")+outs); return false; } @@ -588,12 +588,16 @@ _task.setProgression(80); FuLog.trace(PivResource.getS("Filtrage ok.")); + + // Chargement des r\xE9sultats + res=_prj.loadFilteredInstantResults(_task); } catch (IOException ex) { _ana.addError(ex.getMessage()); return false; } finally { + _prj.setInstantFilteredResults(res); } return true; Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredFileFormat.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredFileFormat.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredFileFormat.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -0,0 +1,49 @@ +package org.fudaa.fudaa.piv.io; + +import org.fudaa.ctulu.fileformat.FileFormatUnique; +import org.fudaa.ctulu.fileformat.FileReadOperationAbstract; +import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; +import org.fudaa.fudaa.piv.PivResource; + +/** + * La classe d\xE9crivant le format d'un fichier pivxxxx.dat contenant les + * r\xE9sultats instantan\xE9es filtr\xE9s en espace r\xE9el. + * + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivInstantFilteredFileFormat extends FileFormatUnique { + + private PivInstantFilteredFileFormat() { + super(1); + nom_ = PivResource.getS("PIV instant filtered real results"); + description_ = PivResource.getS("Fichier contenant les r\xE9sultats instantan\xE9s filtr\xE9s r\xE9els"); + extensions_=new String[]{"dat"}; + } + static final PivInstantFilteredFileFormat INSTANCE = new PivInstantFilteredFileFormat(); + + /** + * Retourne le singleton pour instancier un reader ou un writer. + * @return Le singleton + */ + public static PivInstantFilteredFileFormat getInstance() { + return INSTANCE; + } + + /** + * Cr\xE9ation d'un reader. + * @return Le reader + */ + public FileReadOperationAbstract createReader() { + return new PivInstantFilteredReader(); + } + + /** + * Cr\xE9ation d'un writer. + * @return Le writer + */ + public FileWriteOperationAbstract createWriter() { + return null; + } + +} Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredFileFormat.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -0,0 +1,123 @@ +/** + * @creation 2002-11-21 + * @modification $Date: 2007/05/04 13:47:27 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.fudaa.piv.io; + +import java.io.EOFException; +import java.io.File; +import java.io.IOException; + +import org.fudaa.ctulu.CtuluActivity; +import org.fudaa.dodico.fortran.FileOpReadCharSimpleAbstract; +import org.fudaa.fudaa.piv.PivResource; +import org.fudaa.fudaa.piv.metier.PivResultsDefault; +import org.fudaa.fudaa.piv.metier.PivResultsI.TYPE; + +/** + * Un lecteur pour les fichiers des r\xE9sultats instantan\xE9es filtr\xE9s en espace r\xE9el. + * + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivInstantFilteredReader extends FileOpReadCharSimpleAbstract implements CtuluActivity { + + /** Drapeau d'interruption */ + boolean bstop_; + /** Nb d'octets du fichier a lire pour stat sur pourcentage effectu\xE9 */ + int nbOctets; + + /** + * Le constructeur. + */ + public PivInstantFilteredReader() { + } + + /** + * Lit les r\xE9sultats de vitesses et les retourne. + * @return Les r\xE9sultats + */ + protected PivResultsDefault internalRead() { + return readVelocities(); + } + + protected void processFile(final File _f) { + nbOctets = (int) _f.length(); + } + + /** + * Utilise FortranReader ( donc un buffer). + * + * @return les infos non bloquantes. + */ + private synchronized PivResultsDefault readVelocities() { + // TODO Bertrand : A verifier + PivResultsDefault res = new PivResultsDefault(new TYPE[]{TYPE.VX,TYPE.VY,TYPE.CORREL,TYPE.NORME,TYPE.OMEGA,TYPE.DIVERG}); + + if (super.in_ == null) { + analyze_.addErrorFromFile(PivResource.getS("Flux d'entr\xE9e non trouv\xE9"), 0); + return null; + } + + try { + int lu=0; + boolean afficheAvance = false; + if ((progress_ != null) && (nbOctets > 0)) { + afficheAvance = true; + progress_.setProgression(0); + } + int pourcentageEnCours = 0; + + in_.setJumpBlankLine(true); + + // Boucle jusque fin de fichier. Exception EOF si fin. + while (true) { + in_.readFields(); + + double[] vals=new double[res.getResults().length]; + for (int i=0; i<3/*vals.length*/; i++) { + vals[i]=in_.doubleField(i+2); + } + // Norme + vals[3]=Math.sqrt(vals[0]*vals[0]+vals[1]*vals[1]); + // Les autres + for (int i=4; i<vals.length; i++) { + vals[i]=i; + } + res.addPoint(in_.doubleField(0), in_.doubleField(1), vals); + + lu+=26; // Si le formattage en fortran + + if ((afficheAvance) && ((lu * 100 / nbOctets) >= (pourcentageEnCours + 20))) { + pourcentageEnCours += 20; + progress_.setProgression(pourcentageEnCours); + } + } + } + // Sortie normale + catch (final EOFException e) { + } + catch (final IOException e) { + analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber()); + } + catch (final NumberFormatException e) { + analyze_.addErrorFromFile(PivResource.getS("Une erreur de lecture s'est produite"), in_.getLineNumber()); + } + + if (progress_ != null) { + progress_.setProgression(100); + } + + return res; + } + + /** + * Interruption asynchrone de l'activit\xE9 de lecture. + */ + public void stop() { + bstop_ = true; + } +} Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivInstantFilteredReader.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property 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/layer/PivOriginalImageModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOriginalImageModel.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -13,7 +13,7 @@ import org.fudaa.fudaa.piv.metier.PivProject; /** - * Un modele pour l'image reconditionn\xE9e. + * Un modele pour l'image source. * * @author Bertrand Marchand (mar...@de...) * @version $Id$ Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivOrthoPointsModel.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -22,7 +22,7 @@ /** * Un modele pour les points d'orthorectification, soit dans l'espace d'image - * reconditionn\xE9e, soit dans l'espace r\xE9el. + * source, soit dans l'espace r\xE9el. * * @author Bertrand Marchand (mar...@de...) * @version $Id$ @@ -68,7 +68,7 @@ /** * Construction du mod\xE8le. - * @param _type Le mod\xE8le est d\xE9fini soit dans l'espace d'image reconditionn\xE9e + * @param _type Le mod\xE8le est d\xE9fini soit dans l'espace d'image source * {@linkplain PivVisuPanel#MODE_ORIGINAL_VIEW}, soit dans l'espace r\xE9el * {@linkplain PivVisuPanel#MODE_REAL_VIEW}. */ Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivVelResultsModel.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -31,7 +31,7 @@ /** * Le constructeur. */ - public PivVelResultsModel(PivResultsI[] _res) { + public PivVelResultsModel(PivResultsI... _res) { results_=_res; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-02-09 11:29:41 UTC (rev 9011) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-02-12 13:49:51 UTC (rev 9012) @@ -45,6 +45,7 @@ import org.fudaa.fudaa.piv.io.PivGridParamFileFormat; import org.fudaa.fudaa.piv.io.PivHFileFormat; import org.fudaa.fudaa.piv.io.PivImgRefFileFormat; +import org.fudaa.fudaa.piv.io.PivInstantFilteredFileFormat; import org.fudaa.fudaa.piv.io.PivInstantScalFileFormat; import org.fudaa.fudaa.piv.io.PivInstantVelFileFormat; import org.fudaa.fudaa.piv.io.PivParamFileFormat; @@ -61,7 +62,7 @@ public class PivProject implements PivProjectStateI { /** Le repertoire projet des fichiers de donn\xE9es */ public static final String OUTPUT_DIR="outputs.dir"; - /** Le r\xE9pertoire projet des images reconditionn\xE9es */ + /** Le r\xE9pertoire projet des images sources */ public static final String IMG_PGM_DIR="img_pgm"; /** Le r\xE9pertoire projet des images transform\xE9es */ public static final String IMG_TRANSF_DIR="img_transf"; @@ -71,6 +72,8 @@ public static final String VEL_REAL_DIR="vel_real"; /** Le r\xE9pertoire des scalaires instantan\xE9s */ public static final String VEL_SCAL_DIR="vel_scal"; + /** Le r\xE9pertoire des vitesses instantan\xE9es filtr\xE9es. */ + public static final String VEL_FILTER_DIR="vel_filter"; public static final FileFilter FLT_FILES=new FileFilter() { @Override @@ -105,6 +108,8 @@ protected PivResultsI averageResults; /** Les r\xE9sultats instantan\xE9s */ protected PivResultsI[] instantResults; + /** Les r\xE9sultats instantan\xE9s filtr\xE9s */ + protected PivResultsI[] instantFilteredResults; /** Les r\xE9sultats instantan\xE9s utilis\xE9s pour le calcul des vitesses moyennes. */ protected boolean[] usedInstantResults; /** Les r\xE9sultats de d\xE9bit calcul\xE9 */ @@ -113,7 +118,7 @@ protected Dimension imgTransfSize=null; /** True : Les images transform\xE9es ont \xE9t\xE9 modifi\xE9es */ protected boolean areTransfImagesChanged=true; - /** La taille des images reconditionn\xE9es */ + /** La taille des images sources */ protected Dimension imgPgmSize=null; /** True : Les images d'origine ont \xE9t\xE9 modifi\xE9es */ protected boolean areSrcImagesChanged=true; @@ -122,7 +127,7 @@ protected HashSet<PivProjectStateListener> listeners=new HashSet<PivProjectStateListener>(); /** L'etat modifi\xE9 ou non du projet */ protected boolean isModified=false; - /** L'input stream pour l'image cache reconditionn\xE9e */ + /** L'input stream pour l'image cache source */ ImageInputStream cachePgmInputStream_; /** L'input stream pour l'image cache transform\xE9e */ ImageInputStream cacheTransfInputStream_; @@ -171,8 +176,8 @@ } /** - * Le projet contient-il au moins une image reconditionn\xE9e ? - * @return true si le projet contient au moins 1 image reconditionn\xE9e. + * Le projet contient-il au moins une image source ? + * @return true si le projet contient au moins 1 image source. */ public boolean hasSrcImages() { return getSrcImageFiles().length>0; @@ -778,11 +783,12 @@ // Les r\xE9sultats moyennes averageResults=loadAverageResults(_prog); - // Les r\xE9sultats instantan\xE9es dans l'espace r\xE9el. + // Les r\xE9sultats instantan\xE9s instantResults=loadInstantResults(_prog); - + // Les r\xE9sultats instantan\xE9s filtr\xE9s + instantFilteredResults=loadFilteredInstantResults(_prog); // Et ceux utilis\xE9s pour le calcul de moyenne - usedInstantResults=loadUsedInstantResults(_prog); + usedInstantResults=loadInstantResultsList(_prog); // Les param\xE8tres globaux PivGlobalXmlFileFormat.Param paramXml=loadGlobalData(_prog); @@ -946,6 +952,31 @@ } /** + * Charge les resultats instantan\xE9s filtr\xE9s dans l'espace r\xE9el, suivant l'ordre + * alphab\xE9tique des fichiers. + * + * @param _prog L'interface de progression. + * @return Les resultats ou <tt>null</tt> si aucun r\xE9sultat. + */ + public PivResultsI[] loadFilteredInstantResults(ProgressionInterface _prog) { + File[] instantFltFiles=new File(rootPath,VEL_FILTER_DIR).listFiles(); + + if (instantFltFiles!=null && instantFltFiles.length>0) { + Arrays.sort(instantFltFiles); + + PivResultsI[] instantRes=new PivResultsI[instantFltFiles.length]; + for (int i=0; i<instantFltFiles.length; i++) { + + FileReadOperationAbstract reader=PivInstantFilteredFileFormat.getInstance().createReader(); + CtuluIOOperationSynthese ret=reader.read(instantFltFiles[i], _prog); + instantRes[i]=(PivResultsI)ret.getSource(); + } + return instantRes; + } + return null; + } + + /** * Charge les resultats moyenn\xE9s dans l'espace r\xE9el. * * @param _prog L'interface de progression. @@ -977,7 +1008,7 @@ * @param _prog L'interface de progression. * @return L'utilisation du resultat si l'index correspondant est true. */ - public boolean[] loadUsedInstantResults(ProgressionInterface _prog) { + public boolean[] loadInstantResultsList(ProgressionInterface _prog) { boolean[] res; File[] instantVelFiles=getRawVelocityFiles(); @@ -1099,7 +1130,7 @@ } // Les resultats utilis\xE9s pour le calcul de vitesse moyenne. - saveUsedInstantResults(); + saveInstantResultsList(false); // Les donn\xE9es globales saveGlobalData(); @@ -1109,10 +1140,11 @@ } /** - * Sauvegarde sur une liste les resultats instantan\xE9es utilis\xE9s pour le calcul des + * Sauvegarde sur une liste les resultats instantan\xE9s utilis\xE9s pour le calcul des * resultats moyenn\xE9s. + * @param _all Tous les r\xE9sultats sont list\xE9s, sinon seulement ceux pour le calcul de moyenne. */ - public void saveUsedInstantResults() { + public void saveInstantResultsList(boolean _all) { File[] instantVelFiles=getRawVelocityFiles(); // Pas de r\xE9sultats instantan\xE9s @@ -1126,7 +1158,7 @@ // que la taille du tableau usedInstantResults. Ce n'est pas toujours le cas, // par exemple quand le calcul s'est mal pass\xE9. for (int i=0; i<usedInstantResults.length; i++) { - if (usedInstantResults[i]) + if (_all || usedInstantResults[i]) out.println(instantVelFiles[i].getName()); } } @@ -1330,6 +1362,28 @@ } /** + * Retourne les r\xE9sultats instantan\xE9s filtr\xE9s. + * @return Les r\xE9sultats, ou <tt>null</tt> s'ils n'ont pas \xE9t\xE9 d\xE9finis. + */ + public PivResultsI[] getInstantFilteredResults() { + return instantFilteredResults; + } + + /** + * Definit les r\xE9sultats instantan\xE9s filtr\xE9s de calcul, et notifie que le projet a \xE9t\xE9 + * modifi\xE9. + * @param _res Les r\xE9sultats. <tt>null</tt> est autoris\xE9. + */ + public void setInstantFilteredResults(PivResultsI[] _res) { + if (CtuluLibArray.isEquals(instantFilteredResults, _res)) return; + + instantFilteredResults=_res; + + isModified=true; + fireProjectStateChanged("instantFilteredResults"); + } + + /** * Retourne les r\xE9sultats instantan\xE9s. * @return Les r\xE9sultats, ou <tt>null</tt> s'ils n'ont pas \xE9t\xE9 d\xE9finis. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-16 11:08:46
|
Revision: 9020 http://sourceforge.net/p/fudaa/svn/9020 Author: bmarchan Date: 2015-02-16 11:08:44 +0000 (Mon, 16 Feb 2015) Log Message: ----------- Gestion interactive de la constitution des points de grille 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/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeGridDefinitionAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.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 2015-02-13 14:07:57 UTC (rev 9019) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-02-16 11:08:44 UTC (rev 9020) @@ -770,7 +770,7 @@ mn.addSeparator(PivResource.getS("Analyse LSPIV")); mn.add(new PivComputeParamAction(this)); - sm=new BuMenu(PivResource.getS("Grille"),"mnGRP"); + sm=new BuMenu(PivResource.getS("Points de grille"),"mnGRP"); bt=get2dFrame().getVisuPanel().getComputeGridDefinitionAction().buildMenuItem(EbliComponentFactory.INSTANCE); bt.setText(PivResource.getS("D\xE9finir...")); sm.add(bt); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-13 14:07:57 UTC (rev 9019) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-16 11:08:44 UTC (rev 9020) @@ -682,7 +682,7 @@ mdlInstantVelFltResults=new PivVelResultsModel(prj_.getInstantFilteredResults()); } else { - mdlInstantResults=null; + mdlInstantFltResults=null; mdlInstantVelFltResults=null; } cqInstantFltIso_.setModele(mdlInstantFltResults); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java 2015-02-13 14:07:57 UTC (rev 9019) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransfView.java 2015-02-16 11:08:44 UTC (rev 9020) @@ -257,7 +257,10 @@ mdlCntGrid.update(); } else if("computeGrid".equals(_prop)) { - cqGrille_.setModele(new ZModelePointEditable(prj_.getComputeGrid())); + if (prj_.getComputeGrid()==null) + cqGrille_.setModele(new ZModelePointEditable()); + else + cqGrille_.setModele(new ZModelePointEditable(prj_.getComputeGrid())); } pnLayers_.getVueCalque().repaint(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeGridDefinitionAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeGridDefinitionAction.java 2015-02-13 14:07:57 UTC (rev 9019) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeGridDefinitionAction.java 2015-02-16 11:08:44 UTC (rev 9020) @@ -148,7 +148,7 @@ * @param _pn Le panneau des calques. */ public PivComputeGridDefinitionAction(PivVisuPanel _pn) { - super(PivResource.getS("D\xE9finition de la grille..."), null, "DEFINE_GRID"); + super(PivResource.getS("D\xE9finition des points de grille..."), null, "DEFINE_GRID"); pnCalques_=_pn; controller_=new EditionController(); setCalqueInteraction(_pn.getEditionLayer()); @@ -170,20 +170,15 @@ public void changeAction() { if (isSelected()) pnCalques_.setViewMode(PivVisuPanel.MODE_TRANSF_VIEW); + pnCalques_.getProject().setComputeCntGrid(null); - // Modification du contour : On le supprime au pr\xE9alable, et affichage de la palette. - if (pnCalques_.getProject().getComputeCntGrid()==null || + if (pnCalques_.getProject().getComputeGrid()==null || pnCalques_.getCtuluUI().question( - PivResource.getS("Modification du contour de grille"), - PivResource.getS("Voulez-vous au pr\xE9alable modifier le contour de grille ?"))) { - pnCalques_.getProject().setComputeCntGrid(null); + PivResource.getS("D\xE9finition des points de grille"), + PivResource.getS("Des points de grille existent d\xE9j\xE0.\nVoulez-vous les supprimer avant ajout des nouveaux ?"))) { + pnCalques_.getProject().setComputeGrid(null); + } super.changeAction(); - } - // Pas de modification du contour. - else { - setSelected(false); - showPanelParameters(); - } } @@ -234,16 +229,33 @@ */ public void showPanelParameters() { final PivCntGrid params=pnCalques_.getProject().getComputeCntGrid(); + final PivGrid oldGrid=pnCalques_.getProject().getComputeGrid(); PivComputeGridDefinitionPanel pn=new PivComputeGridDefinitionPanel() { @Override public void apply() { retrieveParams(params); PivGrid grid=PivGrid.computeFromShape(params.getContour(), params.getNbXPoints(), params.getNbYPoints()); - pnCalques_.getProject().setComputeCntGrid(params); + grid.merge(oldGrid); pnCalques_.getProject().setComputeGrid(grid); + } + + @Override + public boolean cancel() { + pnCalques_.getProject().setComputeGrid(oldGrid); + pnCalques_.getProject().setComputeCntGrid(null); + return super.cancel(); + } + + @Override + public boolean ok() { + pnCalques_.getProject().setComputeCntGrid(null); + return super.ok(); + } + + }; pn.setParams(params); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java 2015-02-13 14:07:57 UTC (rev 9019) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java 2015-02-16 11:08:44 UTC (rev 9020) @@ -36,7 +36,7 @@ * @param _impl L'implementation. */ public PivImportGridAction(PivImplementation _impl) { - super(PivResource.getS("Import d'une grille..."), null, "IMPORT_GRID"); + super(PivResource.getS("Import des points de grille..."), null, "IMPORT_GRID"); impl=_impl; setEnabled(false); @@ -55,9 +55,9 @@ boolean keepPreviousGrid=false; if (impl.getCurrentProject().getComputeGrid()!=null) { - keepPreviousGrid=impl.question( - PivResource.getS("Import d'une grille"), - PivResource.getS("Une grille existe d\xE9j\xE0.\nVoulez vous ajouter les points de la nouvelle grille \xE0 la pr\xE9c\xE9dente ?")); + keepPreviousGrid=!impl.question( + PivResource.getS("Import des points de grille"), + PivResource.getS("Des points de grille existent d\xE9j\xE0.\nVoulez-vous les supprimer avant import des nouveaux ?")); } // Selection du fichier 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 2015-02-13 14:07:57 UTC (rev 9019) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2015-02-16 11:08:44 UTC (rev 9020) @@ -449,7 +449,6 @@ if (_ana.containsErrorOrFatalError()) { _prj.setInstantResults(null); - _prj.setAverageResults(null); } } @@ -931,7 +930,6 @@ } finally { _prj.setInstantResults(res); - _prj.setAverageResults(null); } return true; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-02-13 14:07:57 UTC (rev 9019) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-02-16 11:08:44 UTC (rev 9020) @@ -1388,6 +1388,10 @@ isModified=true; fireProjectStateChanged("instantResults"); + + // Les r\xE9sultats instantan\xE9s ont chang\xE9, les autres r\xE9sultats sont r\xE9initialis\xE9s + setInstantFilteredResults(null); + setAverageResults(null); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-16 11:45:48
|
Revision: 9021 http://sourceforge.net/p/fudaa/svn/9021 Author: bmarchan Date: 2015-02-16 11:45:46 +0000 (Mon, 16 Feb 2015) Log Message: ----------- Chgt CtuluAnalyse par CtuluLog Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoVerifyGRPAction.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/io/PivGRPReader.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java 2015-02-16 11:08:44 UTC (rev 9020) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoParamPanel.java 2015-02-16 11:45:46 UTC (rev 9021) @@ -1,10 +1,11 @@ package org.fudaa.fudaa.piv; +import java.awt.Dimension; import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluDialogPanel; -import java.awt.Dimension; -import java.awt.event.ActionListener; -import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.fudaa.piv.io.PivExeLauncher; import org.fudaa.fudaa.piv.metier.PivOrthoParameters; import org.fudaa.fudaa.piv.metier.PivOrthoPoint; @@ -189,15 +190,15 @@ impl_.getCurrentProject().setOrthoParameters(params); - CtuluAnalyze ana=new CtuluAnalyze(); + CtuluLog ana=new CtuluLog(); ana.setDesc(PivResource.getS("Pr\xE9visualisation des images transform\xE9es")); PivExeLauncher.instance().launchOrthoPlan(ana, impl_.getCurrentProject(),null); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl_.error(ana.getResume()); return; } PivExeLauncher.instance().launchTransfImg(ana, impl_.getCurrentProject(),true,null); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl_.error(ana.getResume()); return; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java 2015-02-16 11:08:44 UTC (rev 9020) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoLaunchAction.java 2015-02-16 11:45:46 UTC (rev 9021) @@ -8,14 +8,13 @@ package org.fudaa.fudaa.piv.action; import java.awt.event.ActionEvent; -import java.io.File; -import org.fudaa.ctulu.CtuluAnalyze; + +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.piv.PivExePanel; import org.fudaa.fudaa.piv.PivImplementation; -import org.fudaa.fudaa.piv.PivPreferences; import org.fudaa.fudaa.piv.PivProgressionPanel; import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.io.PivExeLauncher; @@ -59,15 +58,15 @@ public void act() { try { - CtuluAnalyze ana=new CtuluAnalyze(); + CtuluLog ana=new CtuluLog(); ana.setDesc(getName()); PivExeLauncher.instance().launchOrthoPlan(ana, impl.getCurrentProject(), this); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } PivExeLauncher.instance().launchTransfImg(ana, impl.getCurrentProject(), false, this); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoVerifyGRPAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoVerifyGRPAction.java 2015-02-16 11:08:44 UTC (rev 9020) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivOrthoVerifyGRPAction.java 2015-02-16 11:45:46 UTC (rev 9021) @@ -8,14 +8,13 @@ package org.fudaa.fudaa.piv.action; import java.awt.event.ActionEvent; -import java.io.File; -import org.fudaa.ctulu.CtuluAnalyze; + +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.fudaa.piv.PivOrthoVerifyGRPPanel; import org.fudaa.fudaa.piv.PivExePanel; import org.fudaa.fudaa.piv.PivImplementation; -import org.fudaa.fudaa.piv.PivPreferences; +import org.fudaa.fudaa.piv.PivOrthoVerifyGRPPanel; import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.PivVisuPanel; import org.fudaa.fudaa.piv.io.PivExeLauncher; @@ -59,15 +58,15 @@ } } - CtuluAnalyze ana=new CtuluAnalyze(); + CtuluLog ana=new CtuluLog(); ana.setDesc(PivResource.getS("V\xE9rification des points d'orthorectification")); PivExeLauncher.instance().launchOrthoPlan(ana, impl.getCurrentProject(),null); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } PivExeLauncher.instance().launchVerifOrtho(ana, impl.getCurrentProject(),null); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } 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 2015-02-16 11:08:44 UTC (rev 9020) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2015-02-16 11:45:46 UTC (rev 9021) @@ -12,6 +12,7 @@ import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluIOResult; import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.fudaa.piv.PivPreferences; @@ -185,7 +186,7 @@ * @param _task La tache en cours d'execution. * @return true : Tout s'est bien d\xE9roul\xE9. */ - public boolean launchOrthoPlan(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchOrthoPlan(CtuluLog _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjOutputs=new File(prjRoot,OUTPUT_DIR); @@ -237,7 +238,7 @@ * r\xE9el. * @return true : Tout s'est bien d\xE9roul\xE9. */ - public boolean launchTransfImg(CtuluAnalyze _ana, PivProject _prj, boolean _apercu, CtuluTaskOperationGUI _task) { + public boolean launchTransfImg(CtuluLog _ana, PivProject _prj, boolean _apercu, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjImgInp=new File(prjRoot,IMG_PGM_DIR); File prjImgOut=new File(prjRoot,IMG_TRANSF_DIR); @@ -466,7 +467,7 @@ * @return true : Tout s'est bien d\xE9roul\xE9. * @see #launchOrthoPlan */ - public boolean launchVerifOrtho(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchVerifOrtho(CtuluLog _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjOutputs=new File(prjRoot,OUTPUT_DIR); @@ -491,7 +492,7 @@ // R\xE9cup\xE9ration des donn\xE9es du projet. File grpFile = new File(prjOutputs, "GRP_test_ortho.dat"); - CtuluIOResult<PivOrthoPoint[]> ret = new PivGRPReader().read(grpFile, null); + CtuluIOResult<PivOrthoPoint[]> ret = new PivGRPReader(true).read(grpFile, null); PivOrthoPoint[] computePts=ret.getSource(); // On conserve les points d'origine, on ne modifie que les points recalcul\xE9s Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGRPReader.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGRPReader.java 2015-02-16 11:08:44 UTC (rev 9020) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivGRPReader.java 2015-02-16 11:45:46 UTC (rev 9021) @@ -35,6 +35,14 @@ */ public PivGRPReader() { } + + /** + * Le constructeur, avec le param\xE8etre d\xE9finissant si le format est \xE9tendu ou non. + * @param _extendFormat True : Le format est etendu. + */ + public PivGRPReader(boolean _extendFormat) { + bextFormat_=_extendFormat; + } /** * Definit si le fichier est au format etendu. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-16 13:13:04
|
Revision: 9022 http://sourceforge.net/p/fudaa/svn/9022 Author: bmarchan Date: 2015-02-16 13:13:02 +0000 (Mon, 16 Feb 2015) Log Message: ----------- On rend le calque image invisible au moment de v?\195?\169rifier les points GRP Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java 2015-02-16 11:45:46 UTC (rev 9021) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOrthoVerifyGRPPanel.java 2015-02-16 13:13:02 UTC (rev 9022) @@ -25,6 +25,7 @@ public class PivOrthoVerifyGRPPanel extends CtuluDialogPanel { PivOrthoPoint[] pts_; PivImplementation impl_; + boolean bImgVisible_; /** * Une classe pour le modele de la table affichant les valeurs r\xE9elles et @@ -118,6 +119,11 @@ public PivOrthoVerifyGRPPanel(PivImplementation _impl) { impl_=_impl; pts_=_impl.getCurrentProject().getOrthoPoints(); + + // On efface le calque image, l'image qu'elle contient n'est pas forcement pertinente. + bImgVisible_=impl_.get2dFrame().getVisuPanel().isImageLayerVisible(); + impl_.get2dFrame().getVisuPanel().setImageLayerVisible(false); + customize(); } @@ -139,6 +145,7 @@ @Override public void apply() { impl_.get2dFrame().getVisuPanel().setControlPointsLayerVisible(false); + impl_.get2dFrame().getVisuPanel().setImageLayerVisible(bImgVisible_); } /** @@ -148,6 +155,7 @@ @Override public boolean cancel() { impl_.get2dFrame().getVisuPanel().setControlPointsLayerVisible(false); + impl_.get2dFrame().getVisuPanel().setImageLayerVisible(bImgVisible_); return super.cancel(); } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-16 11:45:46 UTC (rev 9021) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-16 13:13:02 UTC (rev 9022) @@ -762,6 +762,22 @@ public void setFlowLayerVisible(boolean _b) { cqFlowResults.setVisible(_b); } + + /** + * Rend visible le calque image. + * @param _b True : Le calque est visible. + */ + public void setImageLayerVisible(boolean _b) { + cqRealImg_.setVisible(_b); + } + + /** + * Retourne la visibilit\xE9 du calque image. + * @return True : Le calque est visible. + */ + public boolean isImageLayerVisible() { + return cqRealImg_.isVisible(); + } public ZCalqueLigneBriseeEditable getTransectLayer() { return cqTransect_; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-02-16 11:45:46 UTC (rev 9021) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-02-16 13:13:02 UTC (rev 9022) @@ -381,6 +381,22 @@ } /** + * Rend visible le calque image. + * @param _b True : Le calque est visible. + */ + public void setImageLayerVisible(boolean _b) { + getRealView().setImageLayerVisible(_b); + } + + /** + * Retourne la visibilit\xE9 du calque image. + * @return True : Le calque est visible. + */ + public boolean isImageLayerVisible() { + return getRealView().isImageLayerVisible(); + } + + /** * Retourne le mode de vue. * @return Le mode de vue parmi {@link #MODE_ORIGINAL_VIEW}, * {@link #MODE_REAL_VIEW}, {@link #MODE_TRANSF_VIEW} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-16 13:18:17
|
Revision: 9023 http://sourceforge.net/p/fudaa/svn/9023 Author: bmarchan Date: 2015-02-16 13:18:14 +0000 (Mon, 16 Feb 2015) Log Message: ----------- ReChgt CtuluAnalyse par CtuluLog Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2015-02-16 13:13:02 UTC (rev 9022) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeAverageAction.java 2015-02-16 13:18:14 UTC (rev 9023) @@ -9,15 +9,15 @@ import java.awt.event.ActionEvent; -import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.piv.PivExePanel; +import org.fudaa.fudaa.piv.PivFilterInstantResultsPanel; import org.fudaa.fudaa.piv.PivImplementation; import org.fudaa.fudaa.piv.PivProgressionPanel; import org.fudaa.fudaa.piv.PivResource; -import org.fudaa.fudaa.piv.PivFilterInstantResultsPanel; import org.fudaa.fudaa.piv.PivVisuPanel; import org.fudaa.fudaa.piv.io.PivExeLauncher; import org.fudaa.fudaa.piv.metier.PivComputeParameters; @@ -80,18 +80,18 @@ public void act() { try { - CtuluAnalyze ana=new CtuluAnalyze(); + CtuluLog ana=new CtuluLog(); // Filtrage PivExeLauncher.instance().launchFilterInstantResultats(ana, impl.getCurrentProject(),this); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } // Moyenne PivExeLauncher.instance().launchAverageResults(ana, impl.getCurrentProject(), this); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2015-02-16 13:13:02 UTC (rev 9022) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeFlowAction.java 2015-02-16 13:18:14 UTC (rev 9023) @@ -11,7 +11,7 @@ import javax.swing.SwingUtilities; -import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.ebli.commun.EbliActionSimple; @@ -72,16 +72,16 @@ @Override public void act() { try { - CtuluAnalyze ana=new CtuluAnalyze(); + CtuluLog ana=new CtuluLog(); ana.setDesc(this.getName()); PivExeLauncher.instance().launchBathyCompute(ana, impl.getCurrentProject(), this); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } PivExeLauncher.instance().launchQCompute(ana, impl.getCurrentProject(), this); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java 2015-02-16 13:13:02 UTC (rev 9022) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivComputeLaunchAction.java 2015-02-16 13:18:14 UTC (rev 9023) @@ -8,17 +8,15 @@ package org.fudaa.fudaa.piv.action; import java.awt.event.ActionEvent; -import java.io.File; import javax.swing.SwingUtilities; -import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.piv.PivExePanel; import org.fudaa.fudaa.piv.PivImplementation; -import org.fudaa.fudaa.piv.PivPreferences; import org.fudaa.fudaa.piv.PivProgressionPanel; import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.PivVisuPanel; @@ -68,16 +66,16 @@ public void act() { try { - CtuluAnalyze ana=new CtuluAnalyze(); + CtuluLog ana=new CtuluLog(); ana.setDesc(this.getName()); PivExeLauncher.instance().launchPiv(ana, impl.getCurrentProject(), this); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } PivExeLauncher.instance().launchInstantResults(ana, impl.getCurrentProject(), this); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } 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 2015-02-16 13:13:02 UTC (rev 9022) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/io/PivExeLauncher.java 2015-02-16 13:18:14 UTC (rev 9023) @@ -9,11 +9,9 @@ import javax.imageio.ImageIO; -import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluIOResult; import org.fudaa.ctulu.CtuluLibFile; import org.fudaa.ctulu.CtuluLog; -import org.fudaa.ctulu.fileformat.FileWriteOperationAbstract; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.fudaa.piv.PivPreferences; import org.fudaa.fudaa.piv.PivResource; @@ -351,7 +349,7 @@ * @param _task La tache en cours d'execution. * @return true : Tout s'est bien d\xE9roul\xE9. */ - public boolean launchPiv(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchPiv(CtuluLog _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjImgOut=new File(prjRoot,IMG_TRANSF_DIR); File prjOutputs=new File(prjRoot,OUTPUT_DIR); @@ -448,7 +446,7 @@ new File(prjImgOut, "image1_transf.pgm").delete(); new File(prjImgOut, "image2_transf.pgm").delete(); - if (_ana.containsErrorOrFatalError()) { + if (_ana.containsErrorOrSevereError()) { _prj.setInstantResults(null); } } @@ -530,7 +528,7 @@ * @param _task La tache en cours d'execution. * @return true : Tout s'est bien d\xE9roul\xE9. */ - public boolean launchFilterInstantResultats(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchFilterInstantResultats(CtuluLog _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjOutputs=new File(prjRoot,OUTPUT_DIR); File prjVelFlt=new File(prjRoot,VEL_FILTER_DIR); @@ -605,7 +603,7 @@ * @return true : Tout s'est bien d\xE9roul\xE9. * @see #launchFilterVelocities */ - public boolean launchAverageResults(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchAverageResults(CtuluLog _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjOutputs=new File(prjRoot,OUTPUT_DIR); @@ -694,7 +692,7 @@ * @param _task La tache en cours d'execution. * @return true : Tout s'est bien d\xE9roul\xE9. */ - public boolean launchBathyCompute(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchBathyCompute(CtuluLog _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjOutputs=new File(prjRoot,OUTPUT_DIR); @@ -755,7 +753,7 @@ * @param _task La tache en cours d'execution. * @return true : Tout s'est bien d\xE9roul\xE9. */ - public boolean launchQCompute(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchQCompute(CtuluLog _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjOutputs=new File(prjRoot,OUTPUT_DIR); @@ -838,7 +836,7 @@ * @return true : Tout s'est bien d\xE9roul\xE9. * @see #launchPiv */ - public boolean launchInstantResults(CtuluAnalyze _ana, PivProject _prj, CtuluTaskOperationGUI _task) { + public boolean launchInstantResults(CtuluLog _ana, PivProject _prj, CtuluTaskOperationGUI _task) { File prjRoot=_prj.getRoot(); File prjVelReal=new File(prjRoot, VEL_REAL_DIR); File prjVelScal=new File(prjRoot, VEL_SCAL_DIR); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-16 14:03:24
|
Revision: 9024 http://sourceforge.net/p/fudaa/svn/9024 Author: bmarchan Date: 2015-02-16 14:03:12 +0000 (Mon, 16 Feb 2015) Log Message: ----------- Nettoyage Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivAutoCacheAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsDefault.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-02-16 13:18:14 UTC (rev 9023) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivOriginalView.java 2015-02-16 14:03:12 UTC (rev 9024) @@ -24,7 +24,6 @@ import org.fudaa.ebli.commun.EbliUIProperties; import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; -import org.fudaa.fudaa.piv.action.PivNewTransectAction; import org.fudaa.fudaa.piv.action.PivOriginalViewAction; import org.fudaa.fudaa.piv.action.PivOrthoGRPAction; import org.fudaa.fudaa.piv.layer.PivImageRasterLayer; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivAutoCacheAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivAutoCacheAction.java 2015-02-16 13:18:14 UTC (rev 9023) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivAutoCacheAction.java 2015-02-16 14:03:12 UTC (rev 9024) @@ -7,7 +7,6 @@ */ package org.fudaa.fudaa.piv.action; -import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.ebli.commun.EbliActionChangeState; @@ -54,8 +53,6 @@ public void act() { try { - CtuluAnalyze ana=new CtuluAnalyze(); - ana.setDesc(getName()); impl.getCurrentProject().rebuiltAllCacheImagesIfNeeded(this); } finally { 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 2015-02-16 13:18:14 UTC (rev 9023) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivSelectImagesAction.java 2015-02-16 14:03:12 UTC (rev 9024) @@ -10,7 +10,7 @@ import java.awt.event.ActionEvent; import java.io.File; -import org.fudaa.ctulu.CtuluAnalyze; +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.ebli.commun.EbliActionSimple; @@ -81,11 +81,11 @@ @Override public void act() { try { - CtuluAnalyze ana=new CtuluAnalyze(); + CtuluLog ana=new CtuluLog(); ana.setDesc(getName()); impl.getCurrentProject().setSrcImagesFiles(srcImgFiles, this, ana); - if (ana.containsErrorOrFatalError()) { + if (ana.containsErrorOrSevereError()) { impl.error(ana.getResume()); return; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-02-16 13:18:14 UTC (rev 9023) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-02-16 14:03:12 UTC (rev 9024) @@ -20,10 +20,10 @@ import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; -import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluIOResult; import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.CtuluLog; import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.fudaa.piv.PivPreferences; @@ -576,7 +576,7 @@ * * @param _files Les images. */ - public void setSrcImagesFiles(File[] _files, CtuluTaskOperationGUI _task, CtuluAnalyze _ana) { + public void setSrcImagesFiles(File[] _files, CtuluTaskOperationGUI _task, CtuluLog _ana) { File imgInpDir=new File(rootPath,IMG_PGM_DIR); imgInpDir.mkdirs(); @@ -628,7 +628,7 @@ * @param _imgOrig Les fichiers d'origine \xE0 reconditionner. * @return true : Tout s'est bien d\xE9roul\xE9. */ - public boolean repack(CtuluAnalyze _ana, CtuluTaskOperationGUI _task, File[] _imgOrig) { + public boolean repack(CtuluLog _ana, CtuluTaskOperationGUI _task, File[] _imgOrig) { File imgInpDir=new File(rootPath,IMG_PGM_DIR); if (_task!=null) Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsDefault.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsDefault.java 2015-02-16 13:18:14 UTC (rev 9023) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivResultsDefault.java 2015-02-16 14:03:12 UTC (rev 9024) @@ -1,7 +1,6 @@ package org.fudaa.fudaa.piv.metier; import gnu.trove.TDoubleArrayList; -import gnu.trove.TIntArrayList; import java.util.ArrayList; import java.util.HashMap; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-19 14:16:09
|
Revision: 9033 http://sourceforge.net/p/fudaa/svn/9033 Author: bmarchan Date: 2015-02-19 14:16:02 +0000 (Thu, 19 Feb 2015) Log Message: ----------- Fix : Les variables pour les resultats instantan?\195?\169s ou moyen peuvent ?\195?\170tre diff?\195?\169rentes. Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-18 16:56:23 UTC (rev 9032) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-19 14:16:02 UTC (rev 9033) @@ -86,6 +86,7 @@ private AbstractButton btAnim_; private PivProject prj_; private List<BCalqueAffichage> layers_=new ArrayList<BCalqueAffichage>(); + private boolean enableEvents2_=true; ZCalqueMultiPointEditable cqRealOrthoPoints_; ZCalqueMultiPointEditable cqRealControlPoints_; @@ -527,6 +528,8 @@ * @param _var La variable */ private void setSelectedVar(CtuluVariable _var) { + if (!enableEvents2_) return; + BCalque cq=pnLayers_.getScene().getCalqueActif(); if (cq==cqInstantIso_) { @@ -564,10 +567,6 @@ cbVel_.removeAllItems(); cbVel_.setEnabled(false); - Object itVarSel=cbVar_.getSelectedItem(); - cbVar_.removeAllItems(); - cbVar_.setEnabled(false); - btLock_.setEnabled(false); if (prj_==null) return; @@ -584,7 +583,7 @@ cbImg_.setEnabled(imgs.length > 0); } - // La liste des r\xE9sultats instantan\xE9s + // La liste des r\xE9sultats instantan\xE9s/filtr\xE9s PivResultsI[] instantRes=prj_.getInstantResults(); if (instantRes != null) { for (int i = 0; i < instantRes.length; i++) { @@ -598,39 +597,49 @@ btLock_.setEnabled(imgs!=null && instantRes!=null && imgs.length==instantRes.length+1); - // La liste des variables - if (instantRes != null) { - for (CtuluVariable var : instantRes[0].getResults()) { - cbVar_.addItem(var); - } - if (itVarSel!=null) - cbVar_.setSelectedItem(itVarSel); - - cbVar_.setEnabled(cbVar_.getItemCount()>0); - } + majToolsState(); } /** - * Met a jour l'\xE9tat des boutons + * Met a jour l'\xE9tat des boutons en fonction du calque actif. */ private void majToolsState() { BCalque cq=pnLayers_.getScene().getCalqueActif(); - if (cq==cqAverageIso_ && cqAverageIso_.modele()!=null) { - cbVar_.setEnabled(true); - cbVar_.setSelectedItem(cqAverageIso_.modele().getCurrentVar()); + try { + enableEvents2_=false; + + if (cq==cqAverageIso_ && cqAverageIso_.modele()!=null && cqAverageIso_.modele().getVariables().length!=0) { + cbVar_.setEnabled(true); + cbVar_.removeAllItems(); + for (CtuluVariable var : cqAverageIso_.modele().getVariables()) { + cbVar_.addItem(var); + } + cbVar_.setSelectedItem(cqAverageIso_.modele().getCurrentVar()); + } + else if (cq==cqInstantIso_ && cqInstantIso_.modele()!=null && cqInstantIso_.modele().getVariables().length!=0) { + cbVar_.setEnabled(true); + cbVar_.removeAllItems(); + for (CtuluVariable var : cqInstantIso_.modele().getVariables()) { + cbVar_.addItem(var); + } + cbVar_.setSelectedItem(cqInstantIso_.modele().getCurrentVar()); + } + else if (cq==cqInstantFltIso_ && cqInstantFltIso_.modele()!=null && cqInstantFltIso_.modele().getVariables().length!=0) { + cbVar_.setEnabled(true); + cbVar_.removeAllItems(); + for (CtuluVariable var : cqInstantFltIso_.modele().getVariables()) { + cbVar_.addItem(var); + } + cbVar_.setSelectedItem(cqInstantFltIso_.modele().getCurrentVar()); + } + else { + cbVar_.setEnabled(false); + } } - else if (cq==cqInstantIso_ && cqInstantIso_.modele()!=null) { - cbVar_.setEnabled(true); - cbVar_.setSelectedItem(cqInstantIso_.modele().getCurrentVar()); + finally { + enableEvents2_=true; } - else if (cq==cqInstantFltIso_ && cqInstantFltIso_.modele()!=null) { - cbVar_.setEnabled(true); - cbVar_.setSelectedItem(cqInstantFltIso_.modele().getCurrentVar()); - } - else { - cbVar_.setEnabled(false); - } } @Override Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-02-18 16:56:23 UTC (rev 9032) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivResultsModel.java 2015-02-19 14:16:02 UTC (rev 9033) @@ -234,6 +234,15 @@ } /** + * @return Les variables r\xE9sultats. + */ + public CtuluVariable[] getVariables() { + if (results==null || results.length==0) return new CtuluVariable[0]; + + return results[0].getResults(); + } + + /** * @return Le nombre de temps du mod\xE8le */ public int getNbTime() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-19 15:59:19
|
Revision: 9035 http://sourceforge.net/p/fudaa/svn/9035 Author: bmarchan Date: 2015-02-19 15:59:11 +0000 (Thu, 19 Feb 2015) Log Message: ----------- Corrections diverses 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/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.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 2015-02-19 14:28:38 UTC (rev 9034) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-02-19 15:59:11 UTC (rev 9035) @@ -13,7 +13,6 @@ import java.awt.event.ActionEvent; import java.beans.PropertyVetoException; import java.io.File; -import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Observable; @@ -527,7 +526,7 @@ fc.setFileSelectionMode(JFileChooser.FILES_ONLY); fc.setAcceptAllFileFilterUsed(false); fc.setDialogTitle(PivResource.getS("Ouverture d'un projet")); - if (fc.showOpenDialog(this.getFrame()) == JFileChooser.CANCEL_OPTION) { + if (fc.showOpenDialog(this.getFrame()) == CtuluFileChooser.CANCEL_OPTION) { return; } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-19 14:28:38 UTC (rev 9034) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-02-19 15:59:11 UTC (rev 9035) @@ -246,10 +246,10 @@ cqInstantVelResults_ = new PivVelResultsLayer(); cqInstantVelResults_.setTitle(PivResource.getS("Vit. surf. inst. brutes")); cqInstantVelResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es brutes")); - cqInstantVelResults_.setTitleModifiable(true); cqInstantVelResults_.setName("cqInstantVel"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. cqInstantVelResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.ORANGE)); + cqInstantVelResults_.setTitleModifiable(true); cqInstantVelResults_.setVisible(false); // cqInstantVelResults_.addPropertyChangeListener(new PropertyChangeListener() { // public void propertyChange(PropertyChangeEvent evt) { @@ -263,10 +263,10 @@ cqInstantVelFltResults_ = new PivVelResultsLayer(); cqInstantVelFltResults_.setTitle(PivResource.getS("Vit. surf. inst. filtr\xE9es")); cqInstantVelFltResults_.setLongTitle(PivResource.getS("Vitesses de surface instantan\xE9es filtr\xE9es")); - cqInstantVelFltResults_.setTitleModifiable(true); cqInstantVelFltResults_.setName("cqInstantVelFlt"); // Donne la couleur des fl\xE8ches si pas de palette de couleurs. cqInstantVelFltResults_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.GREEN.darker())); + cqInstantVelFltResults_.setTitleModifiable(true); cqInstantVelFltResults_.setVisible(false); // cqInstantVelFltResults_.addPropertyChangeListener(new PropertyChangeListener() { // public void propertyChange(PropertyChangeEvent evt) { @@ -300,10 +300,12 @@ // Layer des transect cqTransect_= new ZCalqueLigneBriseeEditable(); cqTransect_.setTitle(PivResource.getS("Transect")); + cqTransect_.setLongTitle(PivResource.getS("Transect")); cqTransect_.setName("cqTransect"); cqTransect_.setFormeEnable(new int[]{DeForme.LIGNE_BRISEE}); cqTransect_.setLineModel(1, new TraceLigneModel(TraceLigne.POINTILLE, 2, Color.ORANGE)); cqTransect_.setIconModel(1, new TraceIconModel(TraceIcon.LOSANGE_PLEIN, 3, Color.ORANGE)); + cqTransect_.setTitleModifiable(true); cqTransect_.setDestructible(false); cqTransect_.setEditor(pnLayers_.getEditor()); getNewTransectAction().setTransectLayer(cqTransect_); @@ -314,6 +316,7 @@ cqInstantFltIso_.setTitle(PivResource.getS("R\xE9sultats inst. filtr\xE9s")); cqInstantFltIso_.setLongTitle(PivResource.getS("R\xE9sultats instantan\xE9s filtr\xE9s")); cqInstantFltIso_.setName("cqInstantFltResults"); + cqInstantFltIso_.setTitleModifiable(true); cqInstantFltIso_.setDestructible(false); cqInstantFltIso_.setVisible(false); @@ -323,6 +326,7 @@ cqInstantIso_.setTitle(PivResource.getS("R\xE9sultats inst. bruts")); cqInstantIso_.setLongTitle(PivResource.getS("R\xE9sultats instantan\xE9s bruts")); cqInstantIso_.setName("cqInstantResults"); + cqInstantIso_.setTitleModifiable(true); cqInstantIso_.setDestructible(false); cqInstantIso_.setVisible(false); @@ -330,7 +334,9 @@ cqAverageIso_ = new PivResultsLayer(); cqAverageIso_.setLineModel(0, new TraceLigneModel(TraceLigne.LISSE, 1, Color.LIGHT_GRAY)); cqAverageIso_.setTitle(PivResource.getS("R\xE9sultats moyenn\xE9s")); + cqAverageIso_.setLongTitle(PivResource.getS("R\xE9sultats moyenn\xE9s")); cqAverageIso_.setName("cqAveResults"); + cqAverageIso_.setTitleModifiable(true); cqAverageIso_.setDestructible(false); cqAverageIso_.setVisible(false); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2015-02-19 14:28:38 UTC (rev 9034) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGRPAction.java 2015-02-19 15:59:11 UTC (rev 9035) @@ -13,6 +13,7 @@ import javax.swing.JFileChooser; import org.fudaa.ctulu.CtuluIOResult; +import org.fudaa.ctulu.gui.CtuluFileChooser; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.piv.PivImplementation; import org.fudaa.fudaa.piv.PivResource; @@ -28,7 +29,7 @@ */ public class PivImportGRPAction extends EbliActionSimple { PivImplementation impl; - JFileChooser fcGRP; + CtuluFileChooser fcGRP; /** * Constructeur @@ -54,7 +55,7 @@ // Selection du fichier if (fcGRP==null) - fcGRP = new JFileChooser(); + fcGRP = new CtuluFileChooser(true); fcGRP.setAcceptAllFileFilterUsed(true); fcGRP.setFileFilter(PivImplementation.FILE_FLT_GRP); fcGRP.setMultiSelectionEnabled(false); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java 2015-02-19 14:28:38 UTC (rev 9034) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportGridAction.java 2015-02-19 15:59:11 UTC (rev 9035) @@ -10,9 +10,8 @@ import java.awt.event.ActionEvent; import java.io.File; -import javax.swing.JFileChooser; - import org.fudaa.ctulu.CtuluIOResult; +import org.fudaa.ctulu.gui.CtuluFileChooser; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.piv.PivImplementation; import org.fudaa.fudaa.piv.PivResource; @@ -29,7 +28,7 @@ */ public class PivImportGridAction extends EbliActionSimple { PivImplementation impl; - JFileChooser fcGrid; + CtuluFileChooser fcGrid; /** * Constructeur @@ -62,12 +61,12 @@ // Selection du fichier if (fcGrid==null) - fcGrid = new JFileChooser(); + fcGrid = new CtuluFileChooser(true); fcGrid.setAcceptAllFileFilterUsed(true); fcGrid.setFileFilter(PivImplementation.FILE_FLT_GRID); fcGrid.setMultiSelectionEnabled(false); fcGrid.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier de grille")); - if (fcGrid.showOpenDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) { + if (fcGrid.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) { return; } File gridFile=fcGrid.getSelectedFile(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2015-02-19 14:28:38 UTC (rev 9034) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2015-02-19 15:59:11 UTC (rev 9035) @@ -3,9 +3,8 @@ import java.awt.event.ActionEvent; import java.io.File; -import javax.swing.JFileChooser; - import org.fudaa.ctulu.CtuluIOResult; +import org.fudaa.ctulu.gui.CtuluFileChooser; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.fudaa.piv.PivImplementation; import org.fudaa.fudaa.piv.PivResource; @@ -21,7 +20,7 @@ */ public class PivImportTransectAction extends EbliActionSimple { PivImplementation impl; - JFileChooser fcTransect; + CtuluFileChooser fcTransect; /** * Constructeur @@ -47,12 +46,12 @@ // Selection du fichier if (fcTransect==null) - fcTransect = new JFileChooser(); + fcTransect = new CtuluFileChooser(); fcTransect.setAcceptAllFileFilterUsed(true); fcTransect.setFileFilter(PivImplementation.FILE_FLT_BATHY); fcTransect.setMultiSelectionEnabled(false); fcTransect.setDialogTitle(PivResource.getS("S\xE9lection d'un fichier transect")); - if (fcTransect.showOpenDialog(impl.getFrame()) == JFileChooser.CANCEL_OPTION) { + if (fcTransect.showOpenDialog(impl.getFrame()) == CtuluFileChooser.CANCEL_OPTION) { return; } File transectFile=fcTransect.getSelectedFile(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-02-24 13:42:15
|
Revision: 9047 http://sourceforge.net/p/fudaa/svn/9047 Author: bmarchan Date: 2015-02-24 13:42:13 +0000 (Tue, 24 Feb 2015) Log Message: ----------- Fix : LEs champs sont par defaut d?\195?\169sactiv?\195?\169s dans la fenetre des filtres 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/PivImplementation.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 2015-02-24 13:40:55 UTC (rev 9046) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivFilterInstantResultsPanel.java 2015-02-24 13:42:13 UTC (rev 9047) @@ -9,8 +9,8 @@ import java.awt.BorderLayout; import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; import javax.swing.BorderFactory; import javax.swing.JCheckBox; @@ -65,9 +65,10 @@ pnVelocity.setLayout(new BuVerticalLayout(3, true, false)); cbVelFlt_ = new JCheckBox(PivResource.getS("Filtrer les vitesses")); - cbVelFlt_.addActionListener(new ActionListener() { + cbVelFlt_.addItemListener(new ItemListener() { + @Override - public void actionPerformed(ActionEvent e) { + public void itemStateChanged(ItemEvent e) { boolean b=cbVelFlt_.isSelected(); tfNormalMinLimit_.setEnabled(b); tfNormalMaxLimit_.setEnabled(b); @@ -86,6 +87,7 @@ JLabel lbNormalMinLimit=new JLabel(PivResource.getS("Min:")); pn.add(lbNormalMinLimit, BorderLayout.WEST); tfNormalMinLimit_ = new JTextField(); + tfNormalMinLimit_.setEnabled(false); pn.add(tfNormalMinLimit_, BorderLayout.CENTER); pnNormalLimits.add(pn); @@ -94,6 +96,7 @@ JLabel lbNormalMaxLimit=new JLabel(PivResource.getS("Max:")); pn.add(lbNormalMaxLimit, BorderLayout.WEST); tfNormalMaxLimit_ = new JTextField(); + tfNormalMaxLimit_.setEnabled(false); pn.add(tfNormalMaxLimit_, BorderLayout.CENTER); pnNormalLimits.add(pn); pnVelocity.add(pnNormalLimits); @@ -107,6 +110,7 @@ JLabel lbVyMinLimit=new JLabel(PivResource.getS("Min:")); pn.add(lbVyMinLimit, BorderLayout.WEST); tfVyMinLimit_ = new JTextField(); + tfVyMinLimit_.setEnabled(false); pn.add(tfVyMinLimit_, BorderLayout.CENTER); pnVyLimits.add(pn); @@ -115,6 +119,7 @@ JLabel lbVyMaxLimit=new JLabel(PivResource.getS("Max:")); pn.add(lbVyMaxLimit, BorderLayout.WEST); tfVyMaxLimit_ = new JTextField(); + tfVyMaxLimit_.setEnabled(false); pn.add(tfVyMaxLimit_, BorderLayout.CENTER); pnVyLimits.add(pn); pnVelocity.add(pnVyLimits); @@ -129,9 +134,10 @@ pnCorrel.setLayout(new BuVerticalLayout(3, true, false)); cbCorrelFlt_ = new JCheckBox(PivResource.getS("Filtrer les corr\xE9lations")); - cbCorrelFlt_.addActionListener(new ActionListener() { + cbCorrelFlt_.addItemListener(new ItemListener() { + @Override - public void actionPerformed(ActionEvent e) { + public void itemStateChanged(ItemEvent e) { boolean b=cbCorrelFlt_.isSelected(); tfCorrelMinLimit_.setEnabled(b); tfCorrelMaxLimit_.setEnabled(b); @@ -148,6 +154,7 @@ JLabel lbCorrelMinLimit=new JLabel(PivResource.getS("Min:")); pn.add(lbCorrelMinLimit, BorderLayout.WEST); tfCorrelMinLimit_ = new JTextField(); + tfCorrelMinLimit_.setEnabled(false); pn.add(tfCorrelMinLimit_, BorderLayout.CENTER); pnCorrelLimits.add(pn); @@ -156,6 +163,7 @@ JLabel lbCorrelMaxLimit=new JLabel(PivResource.getS("Max:")); pn.add(lbCorrelMaxLimit, BorderLayout.WEST); tfCorrelMaxLimit_ = new JTextField(); + tfCorrelMaxLimit_.setEnabled(false); pn.add(tfCorrelMaxLimit_, BorderLayout.CENTER); pnCorrelLimits.add(pn); pnCorrel.add(pnCorrelLimits); 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 2015-02-24 13:40:55 UTC (rev 9046) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-02-24 13:42:13 UTC (rev 9047) @@ -84,7 +84,7 @@ static { isPIV_.name = "LSPIV"; isPIV_.version = "1.4.1"; - isPIV_.date = "2015-02-19"; + isPIV_.date = "2015-02-24"; isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CETMEF (c)1999-2015"; isPIV_.license = "GPL2"; isPIV_.languages = "en,fr"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-03-09 13:30:53
|
Revision: 9054 http://sourceforge.net/p/fudaa/svn/9054 Author: bmarchan Date: 2015-03-09 13:30:46 +0000 (Mon, 09 Mar 2015) Log Message: ----------- PivUtils Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivResource.java Added Paths: ----------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivResource.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivResource.java 2015-03-09 13:29:22 UTC (rev 9053) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivResource.java 2015-03-09 13:30:46 UTC (rev 9054) @@ -21,11 +21,6 @@ */ public final class PivResource extends FudaaResource { - /** Valeur min pour un double support\xE9e par FORTRAN */ - public final static double FORTRAN_DOUBLE_MIN=-1.e30; - /** Valeur max pour un double support\xE9e par FORTRAN */ - public final static double FORTRAN_DOUBLE_MAX=1.e30; - /** * Singleton, utilis\xE9 pour la r\xE9cup\xE9ration des icones propres \xE0 Fudaa-Piv. */ Added: 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 (rev 0) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2015-03-09 13:30:46 UTC (rev 9054) @@ -0,0 +1,29 @@ +package org.fudaa.fudaa.piv; + +/** + * Une classe d'utilitaires et de valeurs utiles. + * @author Bertrand Marchand (mar...@de...) + * @version $Id$ + */ +public class PivUtils { + + /** Valeur min pour un double support\xE9e par FORTRAN */ + public final static double FORTRAN_DOUBLE_MIN=-1.e30; + /** Valeur max pour un double support\xE9e par FORTRAN */ + public final static double FORTRAN_DOUBLE_MAX=1.e30; + + /** + * Formatte un num\xE9ro sur 4 caract\xE8res pour un index donn\xE9. Les premiers + * caract\xE8res sont combl\xE9s par des 0. Exemple : 0013 + * @param _i L'index + * @return Le num\xE9ro sur 4 caract\xE8res. + */ + public static String formatOn4Chars(int _i) { + int pow=3; + StringBuffer sb=new StringBuffer(); + while (_i<Math.pow(10,pow) && pow>0) { pow--; sb.append("0"); } + sb.append(_i); + return sb.toString(); + } + +} Property changes on: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property 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...> - 2015-03-17 16:00:29
|
Revision: 9088 http://sourceforge.net/p/fudaa/svn/9088 Author: bmarchan Date: 2015-03-17 16:00:27 +0000 (Tue, 17 Mar 2015) Log Message: ----------- Corrections diverses Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 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 2015-03-17 15:02:06 UTC (rev 9087) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivUtils.java 2015-03-17 16:00:27 UTC (rev 9088) @@ -66,7 +66,7 @@ PivUtils.FILE_FLT_IMAGES=new BuFileFilter(new String[]{"jpg","jpeg","gif","png","pgm","tif","tiff","bmp"},PivResource.getS("Fichiers images")); PivUtils.FILE_FLT_GRID=new BuFileFilter("dat",PivResource.getS("Fichier grid")); PivUtils.FILE_FLT_GRP=new BuFileFilter("dat",PivResource.getS("Fichier GRP")); - PivUtils.FILE_FLT_BATHY=new BuFileFilter("dat",PivResource.getS("Fichier bathy")); + PivUtils.FILE_FLT_BATHY=new BuFileFilter(new String[]{"dat",FILE_FLT_TRANS_BTH.getFirstExt()},PivResource.getS("Fichier bathy")); } /** Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2015-03-17 15:02:06 UTC (rev 9087) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivImportTransectAction.java 2015-03-17 16:00:27 UTC (rev 9088) @@ -62,10 +62,8 @@ impl.error(ret.getAnalyze().getResume()); return; } + impl.getCurrentProject().addTransect(ret.getSource()); - PivTransect trans=ret.getSource(); - impl.getCurrentProject().setTransects(new PivTransect[]{trans}); - impl.get2dFrame().getVisuPanel().setViewMode(PivVisuPanel.MODE_REAL_VIEW); } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2015-03-17 15:02:06 UTC (rev 9087) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2015-03-17 16:00:27 UTC (rev 9088) @@ -131,16 +131,7 @@ transect.setStraight(_pl); transect.setParams(params); - PivTransect[] transects = pnCalques_.getProject().getTransects(); - PivTransect[] transnew; - if (transects!=null) - transnew=Arrays.copyOf(transects, transects.length+1); - else - transnew=new PivTransect[1]; - - transnew[transnew.length-1]=transect; - - pnCalques_.getProject().setTransects(transnew); + pnCalques_.getProject().addTransect(transect); hideWindow(); return true; Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-03-17 15:02:06 UTC (rev 9087) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-03-17 16:00:27 UTC (rev 9088) @@ -841,6 +841,21 @@ } /** + * Ajoute un transect aux transects existants. + * @param _trans Le transect \xE0 ajouter. + */ + public void addTransect(PivTransect _trans) { + if (transects==null) { + transects=new PivTransect[]{_trans}; + } + else { + transects=Arrays.copyOf(transects, transects.length+1); + transects[transects.length-1]=_trans; + } + setTransects(transects); + } + + /** * Definit les transects pour le calcul de d\xE9bit. * @param _trans Les transects. <tt>null</tt> est autoris\xE9. */ 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 2015-03-17 15:02:06 UTC (rev 9087) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProjectPersistence.java 2015-03-17 16:00:27 UTC (rev 9088) @@ -573,12 +573,25 @@ */ public void saveTransects(PivProject prj_, PivTransect[] _trans, ProgressionInterface _prog) { File dirTransect=new File(prj_.rootPath,PivProject.TRANSECTS_DIR); - CtuluLibFile.deleteDir(dirTransect); + dirTransect.mkdir(); + // Suppression des fichiers bathy + File[] files=dirTransect.listFiles(PivUtils.FILE_FLT_TRANS_BTH); + if (files!=null) { + for (File file : files) { + file.delete(); + } + } + // Suppression des fichiers params + files=dirTransect.listFiles(PivUtils.FILE_FLT_TRANS_PAR); + if (files!=null) { + for (File file : files) { + file.delete(); + } + } + if (_trans==null) return; - dirTransect.mkdir(); - for (int i = 0; i < _trans.length; i++) { File bthFile = new File(dirTransect, "trans" + PivUtils.formatOn4Chars(i + 1) + "."+PivUtils.FILE_FLT_TRANS_BTH.getFirstExt()); new PivBathyWriter().write(_trans[i], bthFile, _prog); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-03-19 13:43:41
|
Revision: 9089 http://sourceforge.net/p/fudaa/svn/9089 Author: bmarchan Date: 2015-03-19 13:43:38 +0000 (Thu, 19 Mar 2015) Log Message: ----------- Multi transect correctifs 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/PivVisuPanel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEditAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.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/PivProject.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 2015-03-17 16:00:27 UTC (rev 9088) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-03-19 13:43:38 UTC (rev 9089) @@ -738,7 +738,7 @@ mn.addSeparator(PivResource.getS("D\xE9bit")); sm=new BuMenu(PivResource.getS("Transect"),"mnGRP"); bt=get2dFrame().getVisuPanel().getNewTransectAction().buildMenuItem(EbliComponentFactory.INSTANCE); - bt.setText(PivResource.getS("D\xE9finir...")); + bt.setText(PivResource.getS("Nouveau...")); sm.add(bt); bt=new PivImportTransectAction((this)).buildMenuItem(EbliComponentFactory.INSTANCE); bt.setText(PivResource.getS("Importer...")); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-03-17 16:00:27 UTC (rev 9088) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2015-03-19 13:43:38 UTC (rev 9089) @@ -21,7 +21,9 @@ import org.fudaa.ebli.animation.EbliAnimationSourceInterface; import org.fudaa.ebli.calque.BCalqueAffichage; import org.fudaa.ebli.calque.ZEbliCalquesPanel; +import org.fudaa.ebli.calque.edition.ZCalqueEditable; import org.fudaa.ebli.calque.edition.ZCalqueEditionInteraction; +import org.fudaa.ebli.calque.edition.ZEditorDefault; import org.fudaa.ebli.commun.EbliActionAbstract; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliActionPaletteAbstract; @@ -36,6 +38,7 @@ import org.fudaa.fudaa.piv.action.PivOrthoGRPAction; import org.fudaa.fudaa.piv.action.PivShowFlowAction; import org.fudaa.fudaa.piv.action.PivShowVelocityAction; +import org.fudaa.fudaa.piv.layer.PivEditableModel; import org.fudaa.fudaa.piv.metier.PivProject; import com.memoire.bu.BuDesktop; @@ -136,6 +139,30 @@ buildActions(); } + @Override + protected ZEditorDefault createGisEditor() { + ZEditorDefault editor=new ZEditorDefault(this) { + @Override + public String edit() { + String ret=super.edit(); + + // Necessaire pour que le modele soit notifi\xE9 que la g\xE9om\xE9trie a \xE9t\xE9 \xE9dit\xE9e. + if (getScene().getCalqueActif() instanceof ZCalqueEditable) { + ZCalqueEditable cq=(ZCalqueEditable) getScene().getCalqueActif(); + if (cq.getLayerSelection()!=null && !cq.getLayerSelection().isEmpty()) { + if (cq.modeleDonnees() instanceof PivEditableModel) { + ((PivEditableModel)cq.modeleDonnees()).geometryChanged(cq.getLayerSelection().getSelectedIndex()); + } + } + } + return ret; + } + }; + return editor; + } + + + public PivOriginalView getOriginalView() { if (origView_==null) { origView_=new PivOriginalView(this); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEditAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEditAction.java 2015-03-17 16:00:27 UTC (rev 9088) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivEditAction.java 2015-03-19 13:43:38 UTC (rev 9089) @@ -36,16 +36,7 @@ */ @Override public void actionPerformed(final ActionEvent _e) { - if (pnCalques_.getScene().getCalqueActif() instanceof ZCalqueEditable) { - ZCalqueEditable cq=(ZCalqueEditable) pnCalques_.getScene().getCalqueActif(); - if (cq.getLayerSelection()!=null && !cq.getLayerSelection().isEmpty()) { - cq.editSelected(); - - if (cq.modeleDonnees() instanceof PivEditableModel) { - ((PivEditableModel)cq.modeleDonnees()).geometryChanged(cq.getLayerSelection().getSelectedIndex()); - } - } - } + pnCalques_.getEditor().edit(); } @Override Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2015-03-17 16:00:27 UTC (rev 9088) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivNewTransectAction.java 2015-03-19 13:43:38 UTC (rev 9089) @@ -177,7 +177,7 @@ * @param _pn Le panneau des calques. */ public PivNewTransectAction(PivVisuPanel _pn) { - super(PivResource.getS("D\xE9finition d'un transect..."), null, "CREATE_TRANSECT"); + super(PivResource.getS("Nouveau transect..."), null, "CREATE_TRANSECT"); pnCalques_=_pn; controller_=new EditionController(); propListener_=new EditionLayerPropertyListener(); 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 2015-03-17 16:00:27 UTC (rev 9088) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/layer/PivTransectModel.java 2015-03-19 13:43:38 UTC (rev 9089) @@ -8,13 +8,17 @@ import org.fudaa.ctulu.gis.GISAttribute; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee; +import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; import org.fudaa.ebli.calque.edition.ZEditionAttributesDataI; import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable; import org.fudaa.ebli.geometrie.GrPolyligne; +import org.fudaa.ebli.palette.BPaletteInfo.InfoData; +import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.PivVisuPanel; -import org.fudaa.fudaa.piv.metier.PivTransectParams; +import org.fudaa.fudaa.piv.metier.PivFlowResults; import org.fudaa.fudaa.piv.metier.PivProject; import org.fudaa.fudaa.piv.metier.PivTransect; +import org.fudaa.fudaa.piv.metier.PivTransectParams; import com.vividsolutions.jts.geom.CoordinateSequence; @@ -179,4 +183,53 @@ prj_.setTransects(trans); } + + @Override + public void fillWithInfo(InfoData _d, ZCalqueAffichageDonneesInterface _layer) { +// final ZCalqueFleche.StringInfo info = new ZCalqueFleche.StringInfo(); +// info.titleIfOne_ = PivResource.getS("R\xE9sultats: point n\xB0"); +// info.title_ = PivResource.getS("R\xE9sultats"); + super.fillWithInfo(_d, _layer); + + // Infos de r\xE9sultats de calcul + + if (!_layer.isSelectionEmpty()) { + int[] selIds=_layer.getLayerSelection().getSelectedIndex(); + + if (selIds.length==1) { + _d.setTitle(PivResource.getS("Transect n\xB0 {0}", selIds[0]+1)); + } + + if (prj_.getFlowResults() != null) { + PivFlowResults res=prj_.getFlowResults()[selIds[0]]; + Double waterElevation=res.getWaterElevation(); + Double discharge=res.getDischarge(); + Double wettedArea=res.getWettedArea(); + Double meanVelocity=res.getMeanVelocity(); + + for (int idx : selIds) { + res=prj_.getFlowResults()[idx]; + if (waterElevation != res.getWaterElevation()) + waterElevation=null; + if (discharge != res.getDischarge()) + discharge=null; + if (wettedArea != res.getWettedArea()) + wettedArea=null; + if (meanVelocity != res.getMeanVelocity()) + meanVelocity=null; + } + + if (waterElevation != null) + _d.put(PivResource.getS("Niveau d'eau (m)"), "" + waterElevation); + if (discharge != null) + _d.put(PivResource.getS("D\xE9bit total (m\xB3/s)"), "" + discharge); + if (wettedArea != null) + _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); + } + } + +// ZCalqueFleche.fillWithInfo(_d, _layer.getLayerSelection(), this, info); + } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-03-17 16:00:27 UTC (rev 9088) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2015-03-19 13:43:38 UTC (rev 9089) @@ -845,14 +845,10 @@ * @param _trans Le transect \xE0 ajouter. */ public void addTransect(PivTransect _trans) { - if (transects==null) { - transects=new PivTransect[]{_trans}; - } - else { - transects=Arrays.copyOf(transects, transects.length+1); - transects[transects.length-1]=_trans; - } - setTransects(transects); + PivTransect[] trans=Arrays.copyOf(transects, transects.length+1); + trans[trans.length-1]=_trans; + + setTransects(trans); } /** @@ -860,6 +856,11 @@ * @param _trans Les transects. <tt>null</tt> est autoris\xE9. */ public void setTransects(PivTransect[] _trans) { + // On met a null les r\xE9sultats de d\xE9bit en cas de tableau diff\xE9rents, + // car le nombre de r\xE9sultats doit \xEAtre identique. + if (!Arrays.equals(transects, _trans)) { + setFlowResults(null); + } transects=_trans; isModified=true; fireProjectStateChanged("transect"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-03-26 22:55:10
|
Revision: 9094 http://sourceforge.net/p/fudaa/svn/9094 Author: bmarchan Date: 2015-03-26 22:55:08 +0000 (Thu, 26 Mar 2015) Log Message: ----------- Lancement par defaut avec le langage choisi ?\195?\160 l'installation Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/Piv.java 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/Piv.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/Piv.java 2015-03-26 22:46:29 UTC (rev 9093) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/Piv.java 2015-03-26 22:55:08 UTC (rev 9094) @@ -34,7 +34,8 @@ // Obligatoire pour que la langue soit prise en charge le plus tot possible // et dans tous les composants standards de Java (FileChooser, ...). Il faut // le faire avant m\xEAme qu'un composant Swing soit instanci\xE9. - BuPreferences.BU.applyLanguage("en,fr"); + String defLang=System.getProperty("piv.lang","fr"); // Langage par d\xE9faut \xE0 l'installation. + BuPreferences.BU.applyLanguage("en, fr",BuPreferences.BU.getStringProperty("locale.language",defLang),false); // try { // //pour utiliser les icones crystal. // //a voir si cela convient. 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 2015-03-26 22:46:29 UTC (rev 9093) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-03-26 22:55:08 UTC (rev 9094) @@ -83,13 +83,13 @@ isPIV_.name = "LSPIV"; isPIV_.version = "1.4.2"; isPIV_.date = "2015-02-24"; - isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CETMEF (c)1999-2015"; + isPIV_.rights = PivResource.getS("Tous droits r\xE9serv\xE9s")+". CEREMA (c)1999-2015"; isPIV_.license = "GPL2"; isPIV_.languages = "en,fr"; isPIV_.authors=new String[]{"B.Marchand (mar...@de...)"}; isPIV_.contact="mag...@ed...\nje...@ir...\nal...@ed..."; isPIV_.http="http://forge.irstea.fr/projects/fudaa-lspiv"; - isPIV_.man="guide_Fudaa-lspiv.pdf"; + 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_.logo = PivResource.PIV.getIcon("iconepiv.gif"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2015-03-31 14:13:38
|
Revision: 9097 http://sourceforge.net/p/fudaa/svn/9097 Author: bmarchan Date: 2015-03-31 14:13:30 +0000 (Tue, 31 Mar 2015) Log Message: ----------- Am?\195?\169lioration du trac?\195?\169 de particules 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/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivCreateParticleLinesAction.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesLayer.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesSourceI.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivResultSource.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 2015-03-31 10:13:52 UTC (rev 9096) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2015-03-31 14:13:30 UTC (rev 9097) @@ -734,6 +734,7 @@ mn.addSeparator(PivResource.getS("Post-traitement")); mn.add(new PivComputeAverageAction(this)); mn.add(get2dFrame().getVisuPanel().getShowVelocitiesAction().buildMenuItem(EbliComponentFactory.INSTANCE)); + mn.add(get2dFrame().getVisuPanel().getRealView().getTraceParticlesAction().buildMenuItem(EbliComponentFactory.INSTANCE)); mn.addSeparator(PivResource.getS("D\xE9bit")); sm=new BuMenu(PivResource.getS("Transect"),"mnGRP"); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-03-31 10:13:52 UTC (rev 9096) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2015-03-31 14:13:30 UTC (rev 9097) @@ -90,7 +90,7 @@ private BuComboBox cbVel_; private EbliAnimationAction actAnim_; private AbstractButton btAnim_; - private PivCreateParticleLinesAction actStreamLines_; + private PivCreateParticleLinesAction actParticleLines_; private AbstractButton btStreamLines_; private PivProject prj_; private List<BCalqueAffichage> layers_=new ArrayList<BCalqueAffichage>(); @@ -480,9 +480,9 @@ btAnim_=actAnim_.buildToolButton(EbliComponentFactory.INSTANCE); btAnim_.setEnabled(true); - actStreamLines_=new PivCreateParticleLinesAction(pnLayers_, (FudaaCommonImplementation)pnLayers_.getCtuluUI(), + actParticleLines_=new PivCreateParticleLinesAction(pnLayers_, (FudaaCommonImplementation)pnLayers_.getCtuluUI(), new PivParticlesLayer[]{cqAveParticles_,cqFltParticles_,cqRawParticles_}); - btStreamLines_=actStreamLines_.buildToolButton(EbliComponentFactory.INSTANCE); + btStreamLines_=actParticleLines_.buildToolButton(EbliComponentFactory.INSTANCE); // La liste des variables possibles cbVar_=new BuComboBox(); @@ -620,7 +620,7 @@ // Force la mise a jour du composant d'animation actAnim_.setAnimAdapterInterface(new SequenceAnimationAdapter()); // Les calques peuvent avoir chang\xE9. - actStreamLines_.setLayers(new PivParticlesLayer[]{cqAveParticles_, cqFltParticles_, cqRawParticles_}); + actParticleLines_.setLayers(new PivParticlesLayer[]{cqAveParticles_, cqFltParticles_, cqRawParticles_}); Object itImgSel=cbImg_.getSelectedItem(); cbImg_.removeAllItems(); @@ -888,4 +888,12 @@ } return actParamsTransect_; } + + /** + * Retourne l'action pour la saisie des parametres d'un transect. + * @return L'action. + */ + public PivCreateParticleLinesAction getTraceParticlesAction() { + return actParticleLines_; + } } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivCreateParticleLinesAction.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivCreateParticleLinesAction.java 2015-03-31 10:13:52 UTC (rev 9096) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivCreateParticleLinesAction.java 2015-03-31 14:13:30 UTC (rev 9097) @@ -28,7 +28,7 @@ PivComputeParticlesTaskModel taskTrajectories = null; public PivCreateParticleLinesAction(final ZEbliCalquesPanel panel, FudaaCommonImplementation impl, PivParticlesLayer[] _layers) { - super(FSigResource.getS("Calcul des lignes de courants/trajectoires"), FSigResource.FSIG.getIcon("crystal_oscilloscope.png"), "TRAJ"); + super(FSigResource.getS("Calcul des lignes de courants/trajectoires..."), FSigResource.FSIG.getIcon("crystal_oscilloscope.png"), "TRAJ"); impl_ = impl; pnCalque_ = panel; layers_=_layers; @@ -43,6 +43,10 @@ @Override public void actionPerformed(final ActionEvent _e) { + if (destLayer_.getSource().getGrid()==null) { + impl_.error(PivResource.getS("Pas de r\xE9sultats disponibles pour le trac\xE9 de particules")); + return; + } taskTrajectories = new PivComputeParticlesTaskModel(pnCalque_,destLayer_); new FudaaPanelTask(pnCalque_.getCtuluUI(), taskTrajectories).afficheDialog(); } Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java 2015-03-31 10:13:52 UTC (rev 9096) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivComputeParticlesTaskModel.java 2015-03-31 14:13:30 UTC (rev 9097) @@ -595,15 +595,16 @@ pn.add(new JLabel(PivResource.getS("Mode"))); pn.add(choixMode_); pn.add(new JLabel(PivResource.getS("Vecteur"))); - ListModel<PivVectorDefinitionI> flecheListModel = destlayer_.getSource().getNewFlecheListModel(); + ListModel<PivVectorDefinitionI> flecheListModel = destlayer_.getSource().getFlecheListModel(); CtuluComboBoxModelAdapter cb = new CtuluComboBoxModelAdapter(flecheListModel); cbVitesse_ = new BuComboBox(cb); cb.setSelectedItem(flecheListModel.getElementAt(0)); pn.add(cbVitesse_); - pn.add(new JLabel(PivResource.getS("Pas de temps intial"))); + pn.add(new JLabel(PivResource.getS("Pas de temps initial"))); cbFirstTime_ = new BuComboBox(new CtuluComboBoxModelAdapter(destlayer_.getSource().getTimeListModel())); - cbFirstTime_.setSelectedIndex(0); + if (cbFirstTime_.getItemCount()>0) + cbFirstTime_.setSelectedIndex(0); pn.add(cbFirstTime_); pn.add(new JLabel(PivResource.getS("Dur\xE9e d'int\xE9gration:"))); pn.add(duree_); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesLayer.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesLayer.java 2015-03-31 10:13:52 UTC (rev 9096) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesLayer.java 2015-03-31 14:13:30 UTC (rev 9097) @@ -7,8 +7,10 @@ import java.awt.Graphics2D; import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluAnalyzeGroup; @@ -33,6 +35,7 @@ import org.fudaa.ebli.geometrie.GrMorphisme; import org.fudaa.ebli.geometrie.GrPoint; import org.fudaa.ebli.palette.BPalettePlage; +import org.fudaa.ebli.palette.BPalettePlageProperties; import org.fudaa.ebli.palette.PaletteManager; import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; @@ -58,7 +61,7 @@ /** * Only modified form constructor or from initFrom method. */ - GISAttributeInterface attrMark_=PivParticlesGISDataModel.ATT_MARK; +// GISAttributeInterface attrMark_=PivParticlesGISDataModel.ATT_MARK; // GISAttributeInterface attrTime_=new GISAttributeDouble("Time", true); // GISAttributeInterface attrVX_=new GISAttributeDouble("VX", true); // GISAttributeInterface attrVY_=new GISAttributeDouble("VY", true); @@ -131,7 +134,7 @@ final GISZoneCollection geomData = modele_.getGeomData(); final int nbAttributes = geomData.getNbAttributes(); for (int i = 0; i < nbAttributes; i++) { - if (geomData.getAttribute(i) != attrMark_) { + if (geomData.getAttribute(i) != PivParticlesGISDataModel.ATT_MARK) { attList_.add(geomData.getAttribute(i)); // attListModel_.addElement(geomData.getAttribute(i).getLongName()); } @@ -250,56 +253,104 @@ public void initFrom(final EbliUIProperties _p) { if (_p != null) { -// attSelectionModel_.clearSelection(); + // attSelectionModel_.clearSelection(); super.initFrom(_p); initPaletteMap(); - FuLog.warning("A modifier: "+new Exception().getStackTrace()[0].toString()); -// if (true) return; -// if (TrIsoLayerDefault.restorePalette(_p, namePalette_)) { -// updateLegende(); -// } -// if (idx >= 0) { -// attSelectionModel_.setSelectionInterval(idx, idx); -// } -// final EfTrajectoireParameters initParam=(EfTrajectoireParameters) _p.get(FSigTrPostTrajectoireLineLayerPersistence.INIT_DATA); -// if (initParam != null) { -// this.dataMemory_=initParam; -// } -// else { -// final FSigTrPostTrajectoireLineLayerPersistData data=(FSigTrPostTrajectoireLineLayerPersistData) _p.get(FSigTrPostTrajectoireLineLayerPersistence.COMPUTE_DATA); -// if (data != null) { - final CtuluAnalyze log=new CtuluAnalyze(); - final PivParticlesLayerPersistData data=(PivParticlesLayerPersistData) _p.get(PivParticlesLayerPersistData.COMPUTE_DATA); - if (data!=null) { - EfTrajectoireParameters restore=data.restore(src_, log); -// final EfTrajectoireParameters restore=(EfTrajectoireParameters)_p.get(FSigTrPostTrajectoireLineLayerPersistence.COMPUTE_DATA); - if (!log.isEmpty()) { - final CtuluAnalyzeGroup gr=new CtuluAnalyzeGroup(null); - gr.addAnalyzer(log); - CtuluAnalyzeGUI.showDialog(gr, vue2d_.getCtuluUI(), PivResource.getS("Rechargement des donn\xE9es trajectoires")); - } -// if (restore != null && _p.getBoolean(FSigTrPostTrajectoireLineLayerPersistence.RECOMPUTE)) { - if (restore!=null) restoreData(log, restore); - this.dataMemory_=restore; + + // if (idx >= 0) { + // attSelectionModel_.setSelectionInterval(idx, idx); + // } + // final EfTrajectoireParameters initParam=(EfTrajectoireParameters) + // _p.get(FSigTrPostTrajectoireLineLayerPersistence.INIT_DATA); + // if (initParam != null) { + // this.dataMemory_=initParam; + // } + // else { + // final FSigTrPostTrajectoireLineLayerPersistData + // data=(FSigTrPostTrajectoireLineLayerPersistData) + // _p.get(FSigTrPostTrajectoireLineLayerPersistence.COMPUTE_DATA); + // if (data != null) { + final CtuluAnalyze log=new CtuluAnalyze(); + final PivParticlesLayerPersistData data=(PivParticlesLayerPersistData) _p.get(PivParticlesLayerPersistData.COMPUTE_DATA); + if (data != null) { + EfTrajectoireParameters restore=data.restore(src_, log); + // final EfTrajectoireParameters + // restore=(EfTrajectoireParameters)_p.get(FSigTrPostTrajectoireLineLayerPersistence.COMPUTE_DATA); + if (!log.isEmpty()) { + final CtuluAnalyzeGroup gr=new CtuluAnalyzeGroup(null); + gr.addAnalyzer(log); + CtuluAnalyzeGUI.showDialog(gr, vue2d_.getCtuluUI(), PivResource.getS("Rechargement des trac\xE9s de particules")); } - else { - this.dataMemory_=null; - } -// } -// } + // if (restore != null && + // _p.getBoolean(FSigTrPostTrajectoireLineLayerPersistence.RECOMPUTE)) { + if (restore != null) + restoreData(log, restore); + this.dataMemory_=restore; + } + else { + this.dataMemory_=null; + } + // } + // } + // } +// final String markId=(String) _p.get("mark.attribute"); +// if (markId != null) { +// attrMark_=modeleDonnees().getGeomData().getAttributeWithID(markId); // } - final String markId=(String) _p.get("mark.attribute"); - if (markId != null) { - attrMark_=modeleDonnees().getGeomData().getAttributeWithID(markId); - } - attSel_ = getAttForName(_p.getString("att.selected")); + attSel_=getAttForName(_p.getString("att.selected")); + + if (restorePalettes(_p, namePalette_)) { + updateLegende(); + } } } + public static boolean restorePalettes(final EbliUIProperties _p, final Map<String, BPalettePlage> _dest) { + final String[] names = (String[]) _p.get("post.paletteNames"); + if (names != null && names.length > 0) { + final BPalettePlageProperties[] props = (BPalettePlageProperties[]) _p.get("post.paletteProps"); + if (_dest.size() > 0) { + _dest.clear(); + } + for (int i = 0; i < names.length; i++) { + if (props[i] != null && names[i] != null) { + BPalettePlage plage = new BPalettePlage(props[i]); +// initSubTitleLabel(plage); + _dest.put(names[i], plage); + } + } + return true; + } + return false; + } + + public static EbliUIProperties savePalettes(final Map<String, BPalettePlage> _nameBPalette, final EbliUIProperties _prop) { + if (_prop == null) { + return null; + } + if (_nameBPalette == null || _nameBPalette.size() == 0) { + return _prop; + } + final List<String> paletteNames = new ArrayList<>(_nameBPalette.size()); + final List<BPalettePlageProperties> palettes = new ArrayList<>(_nameBPalette.size()); + + for (final Iterator<Entry<String,BPalettePlage>> it = _nameBPalette.entrySet().iterator(); it.hasNext();) { + Entry<String, BPalettePlage> e=it.next(); + final String key = e.getKey(); + if (!CtuluLibString.isEmpty(key)) { + paletteNames.add(key); + palettes.add(((BPalettePlage) e.getValue()).save()); + } + } + _prop.put("post.paletteNames", paletteNames.toArray(new String[paletteNames.size()])); + _prop.put("post.paletteProps", palettes.toArray(new BPalettePlageProperties[palettes.size()])); + return _prop; + } + private void restoreData(final CtuluAnalyze log, final EfTrajectoireParameters restore) { log.clear(); final EfTrajectoireActivity ac = new EfTrajectoireActivity(src_.getInterpolator(), null, src_.getTimes()); - final String title = PivResource.getS("Calcul"); +// final String title = PivResource.getS("Calcul"); final List<EfTrajectoireResultBuilder> computeLigneCourant = ac.computeLigneCourant(restore, null, log); final PivComputeAndDisplayParticlesActivity activity = new PivComputeAndDisplayParticlesActivity(vue2d_,this,null); activity.reloadLinesIn(PivParticlesLayer.this, restore, computeLigneCourant, log); @@ -380,7 +431,7 @@ } // on trace les icones apres pour qu'ils soient dessin\xE9s au-dessus des lignes. final GISZoneCollection geomData = super.modeleDonnees().getGeomData(); - final int idxMark = geomData.getIndiceOf(attrMark_); + final int idxMark = geomData.getIndiceOf(PivParticlesGISDataModel.ATT_MARK); // final int idxAttSelected = geomData.getIndiceOf(attSel_); // si idxSelected est positif on utilise une palette // final int idxSelected = isPaletteCouleurUsed_ && idxAttSelected >= 0 ? geomData.getIndiceOf(attList_.get(idxAttSelected)) : -1; @@ -453,9 +504,9 @@ // c'est pour que la variable en cours soit enregistr\xE9e updateLegende(false); final EbliUIProperties res = super.saveUIProperties(); -// TODO TrIsoLayerDefault.savePalettes(namePalette_, res); + savePalettes(namePalette_, res); res.put("att.selected", getSelectedAttributeName()); - res.put("mark.attribute", attrMark_ == null ? CtuluLibString.EMPTY_STRING : attrMark_.getID()); +// res.put("mark.attribute", attrMark_ == null ? CtuluLibString.EMPTY_STRING : attrMark_.getID()); if (dataMemory_!=null) res.put(PivParticlesLayerPersistData.COMPUTE_DATA, new PivParticlesLayerPersistData(dataMemory_)); // res.put(FSigTrPostTrajectoireLineLayerPersistence.INIT_DATA, dataMemory_); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesSourceI.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesSourceI.java 2015-03-31 10:13:52 UTC (rev 9096) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivParticlesSourceI.java 2015-03-31 14:13:30 UTC (rev 9097) @@ -156,7 +156,7 @@ */ // ListModel getFlecheListModel(); - public ListModel<PivVectorDefinitionI> getNewFlecheListModel(); + public ListModel<PivVectorDefinitionI> getFlecheListModel(); /** * @return le maillage de l'objet source Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivResultSource.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivResultSource.java 2015-03-31 10:13:52 UTC (rev 9096) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/particles/PivResultSource.java 2015-03-31 14:13:30 UTC (rev 9097) @@ -63,7 +63,7 @@ } @Override - public ListModel<PivVectorDefinitionI> getNewFlecheListModel() { + public ListModel<PivVectorDefinitionI> getFlecheListModel() { if (flecheList_==null) { PivVectorDefinitionI fch; flecheList_=new DefaultListModel<>(); @@ -125,8 +125,8 @@ @Override public ListModel<Double> getTimeListModel() { if (timeList_==null) { + timeList_=new DefaultListModel<>(); if (res_ != null) { - timeList_=new DefaultListModel<>(); for (int i=0; i < res_.getNbTime(); i++) { timeList_.addElement(getTimeStep(i)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |