|
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.
|