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