|
From: <bma...@us...> - 2015-06-16 14:54:23
|
Revision: 9132
http://sourceforge.net/p/fudaa/svn/9132
Author: bmarchan
Date: 2015-06-16 14:54:20 +0000 (Tue, 16 Jun 2015)
Log Message:
-----------
Am?\195?\169lioration : Possiblit?\195?\169 d'ouvrir la fenetre parametres transect pour plusieurs transects.
Modified Paths:
--------------
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java
trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2015-06-16 13:08:15 UTC (rev 9131)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivTransectParamPanel.java 2015-06-16 14:54:20 UTC (rev 9132)
@@ -5,35 +5,38 @@
import org.fudaa.fudaa.piv.io.PivExeLauncher;
import org.fudaa.fudaa.piv.metier.PivTransect;
import org.fudaa.fudaa.piv.metier.PivTransectParams;
+import org.omg.PortableServer._ServantLocatorStub;
/**
- * Un panneau de saisie des param\xE8tres du transect pour le calcul des d\xE9bits.
+ * Un panneau de saisie des param\xE8tres des transects s\xE9lectionn\xE9s pour le calcul des d\xE9bits.
*
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
*/
public class PivTransectParamPanel extends CtuluDialogPanel {
PivImplementation impl_;
- PivTransect savedTrans_;
- int idSel_;
+ PivTransect[] savedTrans_;
+ PivTransect[] trans_;
+ int[] selIds_;
/**
* Constructeur.
*/
- public PivTransectParamPanel(PivImplementation _impl, int _idSel) {
+ public PivTransectParamPanel(PivImplementation _impl) {
impl_=_impl;
- idSel_=_idSel;
initComponents();
customize();
- PivTransect[] trans=impl_.getCurrentProject().getTransects();
- // Sauvegarde du transect pr\xE9cedent pour le cas d'annulation.
- savedTrans_=trans[_idSel].clone();
+ trans_=impl_.getCurrentProject().getTransects();
+ // Sauvegarde des transects pr\xE9cedents pour le cas d'annulation.
+ savedTrans_=new PivTransect[trans_.length];
+ for (int i=0; i<savedTrans_.length; i++)
+ savedTrans_[i]=trans_[i].clone();
- PivTransectParams params=trans[_idSel].getParams();
+// PivTransectParams params=trans[_idSel].getParams();
// if (params==null)
// params=new PivTransectParams();
- setFlowParams(params);
+// setFlowParams(params);
impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setCirclesVisible(true);
}
@@ -45,26 +48,71 @@
}
/**
+ * Change selection
+ * @param _selIds Les transects s\xE9lectionn\xE9s.
+ */
+ public void setSelected(int... _selIds) {
+ selIds_=_selIds;
+ initFlowParams();
+ }
+
+ /**
* Rempli le panneau depuis les donn\xE9es du projet.
- * @param _params L'objet m\xE9tier param\xE8tres de calcul de d\xE9bit.
*/
- public void setFlowParams(PivTransectParams _params) {
- tfCoef.setText("" + _params.getSurfaceCoef());
- tfDmax.setText("" + _params.getRadius());
- tfInterpolationStep.setText("" + _params.getInterpolationStep());
+ private void initFlowParams() {
+ String scoef=null;
+ String sradius=null;
+ String sstep=null;
+
+ for (int id : selIds_) {
+ if (scoef==null)
+ scoef=""+trans_[id].getParams().getSurfaceCoef();
+ else if (!scoef.equals(""+trans_[id].getParams().getSurfaceCoef())) {
+ scoef="";
+ }
+ if (sradius==null)
+ sradius=""+trans_[id].getParams().getRadius();
+ else if (!sradius.equals(""+trans_[id].getParams().getRadius())) {
+ sradius="";
+ }
+ if (sstep==null)
+ sstep=""+trans_[id].getParams().getInterpolationStep();
+ else if (!sstep.equals(""+trans_[id].getParams().getInterpolationStep())) {
+ sstep="";
+ }
+ }
+
+ if (scoef==null)
+ scoef="";
+ if (sstep==null)
+ sstep="";
+ if (sradius==null)
+ sradius="";
+
+ tfCoef.setText(scoef);
+ tfDmax.setText(sradius);
+ tfInterpolationStep.setText(sstep);
+
}
-
+
/**
- * Retourne les param\xE8tres saisis par l'utilisateur. Ces param\xE8tres sont
- * retourn\xE9s dans _params.
- *
- * @param _params L'objet m\xE9tier param\xE8tres de calcul de d\xE9bit servant \xE0 transf\xE9rer les
- * valeurs mises \xE0 jour.
+ * Recup\xE8re les param\xE8tres saisis par l'utilisateur. Ces param\xE8tres sont
+ * retourn\xE9s dans les params transects.
*/
- public void retrieveFlowParams(PivTransectParams _params) {
- _params.setSurfaceCoef(Double.parseDouble(tfCoef.getText().trim()));
- _params.setRadius(Double.parseDouble(tfDmax.getText().trim()));
- _params.setInterpolationStep(Double.parseDouble(tfInterpolationStep.getText().trim()));
+ private void retrieveFlowParams() {
+ String scoef=tfCoef.getText().trim();
+ String sradius=tfDmax.getText().trim();
+ String sstep=tfInterpolationStep.getText().trim();
+
+ PivTransect[] trans=impl_.getCurrentProject().getTransects();
+ for (int id : selIds_) {
+ if (!scoef.isEmpty())
+ trans[id].getParams().setSurfaceCoef(Double.parseDouble(scoef));
+ if (!sradius.isEmpty())
+ trans[id].getParams().setRadius(Double.parseDouble(sradius));
+ if (!sstep.isEmpty())
+ trans[id].getParams().setInterpolationStep(Double.parseDouble(sstep));
+ }
}
/**
@@ -176,42 +224,41 @@
public boolean isDataValid() {
setErrorText("");
boolean bok=
- isStrictPositiveReal(tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) &&
- isStrictPositiveReal(tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) &&
- isStrictPositiveReal(tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation"));
+ tfCoef.getText().trim().isEmpty() || isStrictPositiveReal(tfCoef.getText(),PivResource.getS("Coefficient de vitesse")) &&
+ tfDmax.getText().trim().isEmpty() || isStrictPositiveReal(tfDmax.getText(),PivResource.getS("Rayon de recherche des vitesses")) &&
+ tfInterpolationStep.getText().trim().isEmpty() || isStrictPositiveReal(tfInterpolationStep.getText(),PivResource.getS("Distance d'extrapolation"));
return bok;
}
@Override
public void apply() {
- PivTransect trans=savedTrans_.clone();
- retrieveFlowParams(trans.getParams());
-
- CtuluLog log=new CtuluLog();
- log.setDesc(PivResource.getS("Reconditionnement du transect"));
- PivExeLauncher.instance().computeTransectRecond(log, impl_.getCurrentProject(), trans, null);
- if (log.containsErrorOrSevereError()) {
- impl_.error(log.getResume());
- return;
+ retrieveFlowParams();
+
+ PivTransect[] trans=impl_.getCurrentProject().getTransects();
+ for (int id : selIds_) {
+ CtuluLog log=new CtuluLog();
+ log.setDesc(PivResource.getS("Reconditionnement du transect"));
+ PivExeLauncher.instance().computeTransectRecond(log, impl_.getCurrentProject(), trans[id], null);
+ if (log.containsErrorOrSevereError()) {
+ impl_.error(log.getResume());
+ return;
+ }
}
- PivTransect[] transects=impl_.getCurrentProject().getTransects();
- transects[idSel_]=trans;
- impl_.getCurrentProject().setTransects(transects);
+ // Pour forcer le rafraichissement d'\xE9cran
+ impl_.getCurrentProject().setTransects(trans);
// Conserve la selection pour l'affichage des cercles.
- impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(new int[]{idSel_});
+ impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(selIds_);
}
@Override
public boolean cancel() {
- PivTransect[] trans=impl_.getCurrentProject().getTransects();
- trans[idSel_]=savedTrans_;
- impl_.getCurrentProject().setTransects(trans);
+ impl_.getCurrentProject().setTransects(savedTrans_);
// Conserve la selection pour l'affichage des cercles.
- impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(new int[]{idSel_});
+ impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setSelection(selIds_);
impl_.get2dFrame().getVisuPanel().getRealView().getTransectLayer().setCirclesVisible(false);
return super.cancel();
Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java
===================================================================
--- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java 2015-06-16 13:08:15 UTC (rev 9131)
+++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/action/PivTransectParamAction.java 2015-06-16 14:54:20 UTC (rev 9132)
@@ -20,7 +20,7 @@
import org.fudaa.fudaa.piv.PivResource;
/**
- * Une action pour saisir les parametres de calcul de d\xE9bit d'un transect.
+ * Une action pour saisir les parametres de calcul de d\xE9bit des transects selectectionn\xE9s.
*
* @author Bertrand Marchand (mar...@de...)
* @version $Id$
@@ -40,11 +40,12 @@
*/
@Override
public void actionPerformed(final ActionEvent _e) {
- int idSel=impl.get2dFrame().getVisuPanel().getScene().getLayerSelection().getMinIndex();
+ int[] selIds=impl.get2dFrame().getVisuPanel().getScene().getLayerSelection().getSelectedIndex();
- PivTransectParamPanel pn=new PivTransectParamPanel(impl, idSel);
+ PivTransectParamPanel pn=new PivTransectParamPanel(impl);
+ pn.setSelected(selIds);
- pn.affiche(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul de d\xE9bit"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
+ pn.afficheModale(impl.getFrame(), PivResource.getS("Param\xE8tres de calcul de d\xE9bit"),CtuluDialog.OK_CANCEL_APPLY_OPTION);
}
@Override
@@ -59,7 +60,7 @@
if (cq==impl.get2dFrame().getVisuPanel().getRealView().getTransectLayer() &&
((ZCalqueLigneBriseeEditable)cq).getLayerSelection() !=null &&
- ((ZCalqueLigneBriseeEditable)cq).getLayerSelection().getNbSelectedIndex()==1) {
+ !((ZCalqueLigneBriseeEditable)cq).getLayerSelection().isEmpty()) {
b=true;
}
super.setEnabled(b);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|