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