|
From: <de...@us...> - 2010-06-10 21:37:11
|
Revision: 5763
http://fudaa.svn.sourceforge.net/fudaa/?rev=5763&view=rev
Author: deniger
Date: 2010-06-10 21:37:04 +0000 (Thu, 10 Jun 2010)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrEvolutionBuilderFromTree.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModel.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModelAbstract.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModelEltDataAdapter.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostAnalyze.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostBuilderSuiteCalcul.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostCourbeModel.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostCourbeTreeModel.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostFilterHauteurPanel.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostFilterLayer.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostFlecheLayer.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostFlecheModel.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostInspector.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostInterpolatePoint.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostProjet.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSource.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceAbstract.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceBuilder.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceComparator.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceDefault.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceFromReader.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceOneTimeStep.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceProjected.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceRubar.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceRubarZFN.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceSerafin.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostSourceTelemac3D.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostUserVariableSaver.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrReplayCurvesData.java
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrEvolutionBuilderFromTree.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrEvolutionBuilderFromTree.java 2010-06-10 16:39:11 UTC (rev 5762)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrEvolutionBuilderFromTree.java 2010-06-10 21:37:04 UTC (rev 5763)
@@ -19,235 +19,211 @@
import org.fudaa.fudaa.tr.TrPostImplementation;
import org.fudaa.fudaa.tr.post.dialogSpec.TrPostWizardCourbeTemporelle.ModelListePoints;
-
-
/**
- * Construit un composant arbre g\xE9n\xE9rique qui permet de r\xE9cup\xE9rer les points des calques d'une vue 2d.
- * Utiliser surtout pour l'assistant de cr\xE9ation d'\xE9volutions temporelles.
+ * Construit un composant arbre g\xE9n\xE9rique qui permet de r\xE9cup\xE9rer les points des calques d'une vue 2d. Utiliser surtout
+ * pour l'assistant de cr\xE9ation d'\xE9volutions temporelles.
+ *
* @author Adrien Hadoux
- *
*/
public abstract class TrEvolutionBuilderFromTree {
+ public static class PostEvolutionTemporelles extends TrEvolutionBuilderFromTree {
+ /**
+ * le modele du tableau a mettre a jour
+ */
+ ModelListePoints modeletableau_;
+ /**
+ * la liste des points. Peut etre des points reels mais aussi interpol\xE9s
+ */
+ @SuppressWarnings("unchecked")
+ List listePoints_;
+ public PostEvolutionTemporelles(TrPostVisuPanel panel, ModelListePoints modeletableau, List liste) {
+ super(panel);
+ modeletableau_ = modeletableau;
+ listePoints_ = liste;
- public static class PostEvolutionTemporelles extends TrEvolutionBuilderFromTree{
- /**
- * le modele du tableau a mettre a jour
- */
- ModelListePoints modeletableau_;
- /**
- * la liste des points. Peut etre des points reels mais aussi interpol\xE9s
- */
- @SuppressWarnings("unchecked")
- List listePoints_;
+ }
+ protected void apply() {
- public PostEvolutionTemporelles(TrPostVisuPanel panel, ModelListePoints modeletableau, List liste){
- super(panel);
- modeletableau_= modeletableau;
- listePoints_=liste;
-
- }
+ // -- mise a jour des donn\xE9es du tableau--//
+ modeletableau_.fireTableDataChanged();
+ }
- protected void apply(){
+ public boolean ajouterSelection(ZCalqueMultiPoint cq) {
+ boolean modifierStructure = false;
- //-- mise a jour des donn\xE9es du tableau--//
- modeletableau_.fireTableDataChanged();
- }
+ TrPostInterpolatePoint newPoint = null;
+ if (cq == null || cq.modeleDonnees() == null) return false;
- public boolean ajouterSelection(ZCalqueMultiPoint cq){
- boolean modifierStructure=false;
+ int nb = cq.modeleDonnees().getNombre();
- TrPostInterpolatePoint newPoint=null;
- if(cq==null || cq.modeleDonnees()==null)
- return false;
+ for (int i = 0; i < nb; i++) {
+ GrPoint point = (GrPoint) cq.modeleDonnees().getObject(i);
+ if (point != null) {
+ final int idxElt = TrIsoLayerDefault.sondeSelection(point, panel_.getIsoLayer().getIsoModel());
+ if (idxElt > -1) {
+ newPoint = new TrPostInterpolatePoint(idxElt, point.x_, point.y_, panel_.getSource().getPrecisionModel());
+ modifierStructure = true;
+ listePoints_.add(newPoint);
+ }
+ }
+ }
+ return modifierStructure;
- int nb=cq.modeleDonnees().getNombre();
+ }
- for(int i=0;i<nb;i++){
- GrPoint point=(GrPoint) cq.modeleDonnees().getObject(i);
- if(point!=null){
- final int idxElt = TrIsoLayerDefault.sondeSelection(point, panel_.getIsoLayer().getIsoModel());
- if (idxElt > -1){
- newPoint= new TrPostInterpolatePoint(idxElt, point.x_, point.y_, new GISPrecision());
- modifierStructure=true;
- listePoints_.add(newPoint);
- }
- }
- }
- return modifierStructure;
+ public boolean ajouterSelection(ZCalquePoint cq) {
+ boolean modifierStructure = false;
+ TrPostInterpolatePoint newPoint = null;
+ if (cq == null || cq.modeleDonnees() == null) return false;
- }
+ int nb = cq.modeleDonnees().getNombre();
-
- public boolean ajouterSelection(ZCalquePoint cq){
- boolean modifierStructure=false;
- TrPostInterpolatePoint newPoint=null;
- if(cq==null || cq.modeleDonnees()==null)
- return false;
+ for (int i = 0; i < nb; i++) {
+ GrPoint point = cq.getPoint(i);
+ if (point != null) {
+ final int idxElt = TrIsoLayerDefault.sondeSelection(point, panel_.getIsoLayer().getIsoModel());
+ if (idxElt > -1) {
+ newPoint = new TrPostInterpolatePoint(idxElt, point.x_, point.y_, panel_.getSource().getPrecisionModel());
+ modifierStructure = true;
+ if (canAdd(newPoint)) listePoints_.add(newPoint);
+ }
+ }
+ }
+ return modifierStructure;
+ }
- int nb=cq.modeleDonnees().getNombre();
+ public boolean ajouterSelection(ZCalquePoint cq, int i) {
+ boolean modifierStructure = false;
+ TrPostInterpolatePoint newPoint = null;
+ if (cq == null || cq.modeleDonnees() == null) return false;
+ GrPoint point = cq.getPoint(i);
+ if (point != null) {
+ final int idxElt = TrIsoLayerDefault.sondeSelection(point, panel_.getIsoLayer().getIsoModel());
+ if (idxElt > -1) {
+ newPoint = new TrPostInterpolatePoint(idxElt, point.x_, point.y_, panel_.getSource().getPrecisionModel());
+ modifierStructure = true;
+ if (canAdd(newPoint)) listePoints_.add(newPoint);
+ }
+ }
- for(int i=0;i<nb;i++){
- GrPoint point=cq.getPoint(i);
- if(point!=null){
- final int idxElt = TrIsoLayerDefault.sondeSelection(point, panel_.getIsoLayer().getIsoModel());
- if (idxElt > -1){
- newPoint= new TrPostInterpolatePoint(idxElt, point.x_, point.y_, new GISPrecision());
- modifierStructure=true;
- if(canAdd(newPoint))
- listePoints_.add(newPoint);
- }
- }
- }
- return modifierStructure;
- }
+ return modifierStructure;
+ }
- public boolean ajouterSelection(ZCalquePoint cq,int i){
- boolean modifierStructure=false;
- TrPostInterpolatePoint newPoint=null;
- if(cq==null || cq.modeleDonnees()==null)
- return false;
- GrPoint point=cq.getPoint(i);
- if(point!=null){
- final int idxElt = TrIsoLayerDefault.sondeSelection(point, panel_.getIsoLayer().getIsoModel());
- if (idxElt > -1){
- newPoint= new TrPostInterpolatePoint(idxElt, point.x_, point.y_, new GISPrecision());
- modifierStructure=true;
- if(canAdd(newPoint))
- listePoints_.add(newPoint);
- }
- }
+ private boolean canAdd(TrPostInterpolatePoint pt) {
+ for (Object ob : listePoints_) {
+ if (ob instanceof TrPostInterpolatePoint) {
+ TrPostInterpolatePoint tr = (TrPostInterpolatePoint) ob;
+ if (tr.equals(pt)) return false;
+ }
+ }
+ return true;
- return modifierStructure;
- }
+ }
+ }
-
- private boolean canAdd(TrPostInterpolatePoint pt){
- for(Object ob:listePoints_){
- if(ob instanceof TrPostInterpolatePoint){
- TrPostInterpolatePoint tr=(TrPostInterpolatePoint) ob;
- if(tr.equals(pt))
- return false;
- }
- }
- return true;
-
- }
- }
+ /**
+ * Liste des points selectionn\xE9s.
+ */
+ protected GISZoneCollectionPoint pointsSelectionnees_;
- /**
- * Liste des points selectionn\xE9s.
- */
- protected GISZoneCollectionPoint pointsSelectionnees_;
+ final TrPostVisuPanel panel_;
- final TrPostVisuPanel panel_;
+ protected TrPostImplementation impl_;
- protected TrPostImplementation impl_;
+ /**
+ * l'arbre des donn\xE9es representant le calque
+ */
+ public JTree tree_;
- /**
- * l'arbre des donn\xE9es representant le calque
- */
- public JTree tree_;
+ /**
+ * le linetreemodel aui filtre uniquement les type d'objets g\xE9om\xE9triaues recherch\xE9s.
+ */
+ final CalqueGISTreeModel lineTreeModel_;
+ public TrEvolutionBuilderFromTree(TrPostVisuPanel panel) {
+ this(panel, null);
+ }
- /**
- * le linetreemodel aui filtre uniquement les type d'objets g\xE9om\xE9triaues recherch\xE9s.
- */
- final CalqueGISTreeModel lineTreeModel_;
+ public TrEvolutionBuilderFromTree(TrPostVisuPanel panel, TrPostImplementation impl) {
- public TrEvolutionBuilderFromTree(TrPostVisuPanel panel) {
- this(panel,null);
- }
+ this.panel_ = panel;
+ this.impl_ = impl;
+ pointsSelectionnees_ = null;
+ lineTreeModel_ = new CalqueGISTreeModel(null, panel.getDonneesCalque());
+ lineTreeModel_.setMask(GISLib.MASK_POINT);
+ }
- public TrEvolutionBuilderFromTree(TrPostVisuPanel panel, TrPostImplementation impl) {
+ public GISZoneCollectionPoint getSelection() {
- this.panel_ = panel;
- this.impl_ = impl;
- pointsSelectionnees_=null;
- lineTreeModel_ = new CalqueGISTreeModel(null, panel.getDonneesCalque());
- lineTreeModel_.setMask(GISLib.MASK_POINT);
- }
+ if (tree_ == null) return null;
- public GISZoneCollectionPoint getSelection(){
+ return null;
+ }
- if(tree_==null)
- return null;
+ public JTree buildTree() {
+ if (tree_ == null) {
+ tree_ = lineTreeModel_.createView(false, false);
+ // -- gestion double click pour r\xE9cup\xE9rer l'information
+ tree_.addMouseListener(new MouseAdapter() {
- return null;
- }
+ public void mouseClicked(MouseEvent e) {
+ if (e.getClickCount() < 2) return;
+ final TreePath clickedElement = tree_.getPathForLocation(e.getX(), e.getY());
+ LayerNode treeNode = null;
+ if (clickedElement != null && clickedElement.getLastPathComponent() instanceof LayerNode) treeNode = (LayerNode) clickedElement
+ .getLastPathComponent();
- public JTree buildTree() {
- if(tree_==null){
- tree_=lineTreeModel_.createView(false,false);
- //-- gestion double click pour r\xE9cup\xE9rer l'information
- tree_.addMouseListener(new MouseAdapter(){
+ if (treeNode == null) return;
+ boolean apply = false;
+ if (treeNode.getUserObject() instanceof ZCalquePoint && treeNode.isLeaf())
+ apply = ajouterSelection((ZCalquePoint) treeNode.getUserObject(), treeNode.getIdxGeom());
+ else if (treeNode.getUserObject() instanceof ZCalquePoint) apply = ajouterSelection((ZCalquePoint) treeNode
+ .getUserObject());
+ else if (treeNode.getUserObject() instanceof ZCalqueMultiPoint) apply = ajouterSelection((ZCalqueMultiPoint) treeNode
+ .getUserObject());
+ else if (treeNode.getUserObject() instanceof BGroupeCalque) {
- public void mouseClicked(MouseEvent e) {
- if(e.getClickCount()<2)
- return;
- final TreePath clickedElement = tree_.getPathForLocation(e.getX(), e.getY());
- LayerNode treeNode = null;
- if (clickedElement != null && clickedElement.getLastPathComponent() instanceof LayerNode)
- treeNode=(LayerNode) clickedElement.getLastPathComponent();
+ if (treeNode.getChildCount() > 0 && treeNode.getChildAt(0) instanceof LayerNode) {
- if(treeNode==null)return;
- boolean apply=false;
- if(treeNode.getUserObject() instanceof ZCalquePoint && treeNode.isLeaf())
+ LayerNode treeNodeFils = (LayerNode) treeNode.getChildAt(0);
+ if (treeNodeFils.getChildCount() > 0 && treeNodeFils.getChildAt(0) instanceof LayerNode
+ && !treeNodeFils.isLeaf()) treeNodeFils = (LayerNode) treeNodeFils.getChildAt(0);
+ if (treeNodeFils.getUserObject() instanceof ZCalquePoint) {
+ // -- on recupere le calque global et on l'ajoute direct --//
+ ZCalquePoint zcq = (ZCalquePoint) treeNodeFils.getUserObject();
+ if (zcq != null) apply = ajouterSelection(zcq);
+ }
- apply=ajouterSelection((ZCalquePoint) treeNode.getUserObject(),treeNode.getIdxGeom());
- else
- if(treeNode.getUserObject() instanceof ZCalquePoint )
- apply=ajouterSelection((ZCalquePoint) treeNode.getUserObject());
- else
- if(treeNode.getUserObject() instanceof ZCalqueMultiPoint)
- apply= ajouterSelection((ZCalqueMultiPoint) treeNode.getUserObject());
- else if( treeNode.getUserObject() instanceof BGroupeCalque){
-
- if(treeNode.getChildCount()>0 && treeNode.getChildAt(0) instanceof LayerNode){
-
- LayerNode treeNodeFils =(LayerNode) treeNode.getChildAt(0);
- if(treeNodeFils.getChildCount()>0 && treeNodeFils.getChildAt(0)instanceof LayerNode && !treeNodeFils.isLeaf())
- treeNodeFils=(LayerNode) treeNodeFils.getChildAt(0);
- if(treeNodeFils.getUserObject() instanceof ZCalquePoint){
- //-- on recupere le calque global et on l'ajoute direct --//
- ZCalquePoint zcq=(ZCalquePoint) treeNodeFils.getUserObject() ;
- if(zcq!=null)
- apply=ajouterSelection(zcq);
- }
-
- }
-
-
-
- }
- //-- on fait appel a pply qui met a jour les composants voulues --//
- if(apply)
- apply();
- }
- });
- }
- return tree_;
- }
+ }
- /**
- * est appel\xE9e lors du double clic sur le tree.
- * @param objectSelection
- * @return
- */
- public abstract boolean ajouterSelection(ZCalqueMultiPoint cq);
+ }
+ // -- on fait appel a pply qui met a jour les composants voulues --//
+ if (apply) apply();
+ }
+ });
+ }
+ return tree_;
+ }
-
+ /**
+ * est appel\xE9e lors du double clic sur le tree.
+ *
+ * @param objectSelection
+ * @return
+ */
+ public abstract boolean ajouterSelection(ZCalqueMultiPoint cq);
- public abstract boolean ajouterSelection(ZCalquePoint cq);
-
- public abstract boolean ajouterSelection(ZCalquePoint cq,int indice);
+ public abstract boolean ajouterSelection(ZCalquePoint cq);
- /**
- * applique les modifications (listener a appeler ou autre)...
- */
- protected abstract void apply();
+ public abstract boolean ajouterSelection(ZCalquePoint cq, int indice);
+ /**
+ * applique les modifications (listener a appeler ou autre)...
+ */
+ protected abstract void apply();
+
}
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2010-06-10 16:39:11 UTC (rev 5762)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2010-06-10 21:37:04 UTC (rev 5763)
@@ -15,7 +15,6 @@
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
-import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -25,12 +24,17 @@
import javax.swing.DefaultListSelectionModel;
import javax.swing.JComponent;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
+import com.memoire.bu.BuMenuItem;
+import com.memoire.bu.BuResource;
+import com.memoire.fu.FuLog;
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.LinearRing;
+
import org.fudaa.ctulu.CtuluAnalyze;
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibArray;
@@ -74,12 +78,6 @@
import org.fudaa.fudaa.tr.persistence.TrPostIsoLayerPersistence;
import org.fudaa.fudaa.tr.post.data.TrPostDataListener;
-import com.memoire.bu.BuMenuItem;
-import com.memoire.bu.BuResource;
-import com.memoire.fu.FuLog;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.LinearRing;
-
/**
* Un calque de trace de cartes avec un nouvel algorithme de trace.
*
@@ -289,7 +287,7 @@
i = 0;
}
setV(i);
- sondePt_=new ArrayList<GrPoint>();
+ sondePt_ = new ArrayList<GrPoint>();
}
void initPaletteMap() {
@@ -337,24 +335,24 @@
protected final void paintSonde(final Graphics2D _g2d, final GrMorphisme _versEcran) {
if (sondeSelectedElement_ >= 0) {
- GrPoint oldPoint=null;
- for(GrPoint point:sondePt_) {
-
- final GrPoint p = point.applique(_versEcran);
- if (sondeIcone_ == null) {
- sondeIcone_ = getSondeIcone();
+ GrPoint oldPoint = null;
+ for (GrPoint point : sondePt_) {
+
+ final GrPoint p = point.applique(_versEcran);
+ if (sondeIcone_ == null) {
+ sondeIcone_ = getSondeIcone();
+ }
+ // _g2d.setXORMode(Color.WHITE);
+ sondeIcone_.paintIconCentre(this, _g2d, p.x_, p.y_);
+
+ // -- on trace la ligne entre les sondes --//
+ if (oldPoint != null) {
+ _g2d.drawLine((int) oldPoint.x_, (int) oldPoint.y_, (int) p.x_, (int) p.y_);
+
+ }
+ oldPoint = p;
}
- // _g2d.setXORMode(Color.WHITE);
- sondeIcone_.paintIconCentre(this, _g2d, p.x_, p.y_);
-
- //-- on trace la ligne entre les sondes --//
- if(oldPoint!=null){
- _g2d.drawLine((int)oldPoint.x_,(int) oldPoint.y_, (int) p.x_,(int) p.y_);
-
- }
- oldPoint=p ;
}
- }
}
protected void timeStepFormatChanged() {
@@ -406,18 +404,17 @@
public final boolean changeSonde(final GrPoint _ptReel, final boolean _add) {
if (!isSondeEnable()) { return false; }
if (sondePt_ == null) {
- //sondePt_ = new GrPoint();
- sondePt_=new ArrayList<GrPoint>();
+ // sondePt_ = new GrPoint();
+ sondePt_ = new ArrayList<GrPoint>();
}
-
- GrPoint point=new GrPoint();
-
+
+ GrPoint point = new GrPoint();
+
point.initialiseAvec(_ptReel);
-
- if(!_add)
- sondePt_.clear();
+
+ if (!_add) sondePt_.clear();
sondePt_.add(point);
-
+
final int i = sondeSelection(point, getIsoModelAbstract());
final boolean oldIsDraw = sondeSelectedElement_ >= 0;
sondeSelectedElement_ = i;
@@ -523,7 +520,9 @@
@Override
public void fillWithInterpolateInfo(final InfoData _m) {
- getIsoModelAbstract().fillInterpolateInfo(_m, sondeSelectedElement_, sondePt_.get(0).x_, sondePt_.get(0).y_, getTitle());
+ int i = sondePt_.size()-1;
+ getIsoModelAbstract().fillInterpolateInfo(_m, sondeSelectedElement_, sondePt_.get(i).x_, sondePt_.get(i).y_,
+ getTitle());
}
@Override
@@ -574,7 +573,7 @@
@Override
public int[] getSelectedElementIdx() {
- if (getIsoModelAbstract().isRubar()) { return getSelectedIndex(); }
+ if (getIsoModelAbstract().isCurrentDataElementType()) { return getSelectedIndex(); }
return null;
}
@@ -592,7 +591,7 @@
@Override
public int[] getSelectedPtIdx() {
- if (getIsoModelAbstract().isRubar()) { return null; }
+ if (getIsoModelAbstract().isCurrentDataElementType()) { return null; }
return super.getSelectedPtIdx();
}
@@ -614,11 +613,11 @@
}
public final double getSondeX() {
- return sondePt_ == null ? 0 : sondePt_.get(0).x_;
+ return sondePt_ == null ? 0 : sondePt_.get(sondePt_.size()-1).x_;
}
public final double getSondeY() {
- return sondePt_ == null ? 0 : sondePt_.get(0).y_;
+ return sondePt_ == null ? 0 : sondePt_.get(sondePt_.size()-1).y_;
}
public final JComponent getTargetComponent() {
@@ -695,13 +694,13 @@
@Override
public boolean isSelectionElementEmpty() {
- if (getIsoModelAbstract().isRubar()) { return isSelectionEmpty(); }
+ if (getIsoModelAbstract().isCurrentDataElementType()) { return isSelectionEmpty(); }
return true;
}
@Override
public boolean isSelectionPointEmpty() {
- return getIsoModelAbstract().isRubar() ? true : super.isSelectionPointEmpty();
+ return getIsoModelAbstract().isCurrentDataElementType() ? true : super.isSelectionPointEmpty();
}
public final boolean isSondeActive() {
@@ -726,9 +725,7 @@
@Override
public void paintDonnees(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
final GrBoite _clipReel) {
- System.out.println("Start TrIsoLayerDefault.paintDonnees");
long currentTime = System.currentTimeMillis();
-
if (namePalette_ == null) {
updateLegende();
}
@@ -770,16 +767,39 @@
final int n = modelToUse.getNbElt();
final GrPolygone poly = new GrPolygone();
final GrBoite b = new GrBoite();
-
- /*******************************************************************************/
- /** D\xE9claration variables utilis\xE9es par algo optimisation par centre \xE9l\xE9ments **/
- /*******************************************************************************/
- GrPoint ptCenter = new GrPoint();
- final int width = this.getSize().width;
- int count = 0;
- CtuluListSelection alreadyExist = new CtuluListSelection();
-
+// final int width = this.getSize().width;
+// final int height = this.getSize().height;
+// GrPoint ptCenter = new GrPoint();
+// CtuluListSelection alreadyExist = new CtuluListSelection();
for (i = 0; i < n; i++) {
+// modelToUse.getCentre(ptCenter, i, false);
+// ptCenter.autoApplique(_versEcran);
+// if (ptCenter.y_ >= 0 && ptCenter.y_ <= height && ptCenter.x_ >= 0 && ptCenter.x_ <= width) {
+// int idx = (2*width * ((int) ptCenter.y_)) + ((int) ptCenter.x_*2);
+// if (alreadyExist.isSelected(idx)) {
+//// System.err.println("same for "+ptCenter);
+// continue;
+// } else {
+// if (idx >= 0) alreadyExist.add(idx);
+//
+// if (rapide) {
+// int idx2;
+//
+// for (int j = ((int) ptCenter.x_) - 1; j < (((int) ptCenter.x_) + 2); j++) {
+// for (int k = ((int) ptCenter.y_) - 1; k < (((int) ptCenter.y_) + 2); k++) {
+// if ((j >= 0) && (j < width) && (k >= 0) && (k < height)) {
+// idx2 = (width * k) + j;
+//
+// if (idx2 != idx && idx2 >= 0) {
+// alreadyExist.add(idx2);
+// }
+// }
+// }
+// }
+// }
+// }
+// }
+
// le test sur la condition se fait dans le modele
if (!modelToUse.polygone(poly, i, false)) {
continue;
@@ -788,53 +808,6 @@
if (!_clipReel.intersectXY(b)) {
continue;
}
-
- /******************************************************/
- /** D\xE9but code algo optimisation par centre \xE9l\xE9ments **/
- /******************************************************/
- poly.centre(ptCenter);
-// System.out.print("X : " + ptCenter.x_ + ", Y : " + ptCenter.y_);
- ptCenter.autoApplique(_versEcran);
-// System.out.println(", X : " + ptCenter.x_ + ", Y : " + ptCenter.y_);
- int idx = (width * ((int)ptCenter.y_)) + ((int)ptCenter.x_);
-// System.out.println("id : " + idx);
-
- if (alreadyExist.isSelected(idx))
- {
- count++;
- continue;
- }
- else
- {
- alreadyExist.add(idx);
-
- //TODO rapide n'est jamais \xE0 true, car si il doit l'\xEAtre on passe dans la m\xE9thode m\xE8re.
- if (rapide)
- {
- int idx2;
- final int height = this.getSize().height;
-
- for (int j = ((int)ptCenter.x_) - 1; j < (((int)ptCenter.x_) + 2); j++)
- {
- for (int k = ((int)ptCenter.y_) - 1; k < (((int)ptCenter.y_) + 2); k++)
- {
- if ((j >= 0) && (j < width) && (k >= 0) && (k < height))
- {
- idx2 = (width * k) + j;
-
- if (idx2 != idx)
- {
- alreadyExist.add(idx2);
- }
- }
- }
- }
- }
- }
- /****************************************************/
- /** Fin code algo optimisation par centre \xE9l\xE9ments **/
- /****************************************************/
-
// Trace des isosurfaces / Isolignes (dans la couleur du fond si les isocouleurs sont
// tracees).
if (isElement && !traceIsoLine_) {
@@ -859,10 +832,6 @@
}
paintSonde(_g, _versEcran);
currentTime = System.currentTimeMillis() - currentTime;
- System.out.println("Stop TrIsoLayerDefault.paintDonnees");
- System.out.println("Dur\xE9e : " + currentTime);
- System.out.println("isElement : " + isElement);
- System.out.println("Nb ... : " + n + ", non affich\xE9 : " + count);
}
protected void updateEltAdapter() {
@@ -946,7 +915,7 @@
@Override
public final void paintSelection(final Graphics2D _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran,
final GrBoite _clipReel) {
- if (getIsoModelAbstract().isRubar()) {
+ if (getIsoModelAbstract().isCurrentDataElementType()) {
paintElementSelection(_g, _trace, _versEcran, _clipReel);
} else {
super.paintSelection(_g, _trace, _versEcran, _clipReel);
@@ -967,13 +936,13 @@
@Override
public final CtuluListSelection selection(final GrPoint _pt, final int _tolerance) {
- if (getIsoModelAbstract().isRubar()) { return selectionElement(_pt, _tolerance); }
+ if (getIsoModelAbstract().isCurrentDataElementType()) { return selectionElement(_pt, _tolerance); }
return super.selection(_pt, _tolerance);
}
@Override
public final CtuluListSelection selection(final LinearRing _poly, final int _mode) {
- if (getIsoModelAbstract().isRubar()) { return selectionElement(_poly, _mode); }
+ if (getIsoModelAbstract().isCurrentDataElementType()) { return selectionElement(_poly, _mode); }
return super.selection(_poly, _mode);
}
@@ -1061,10 +1030,9 @@
repaint();
}
}
-
- public List<GrPoint> getLigneBriseeFromSondes(){
- return this.sondePt_;
+
+ public List<GrPoint> getLigneBriseeFromSondes() {
+ return this.sondePt_;
}
-
}
\ No newline at end of file
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModel.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModel.java 2010-06-10 16:39:11 UTC (rev 5762)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModel.java 2010-06-10 21:37:04 UTC (rev 5763)
@@ -49,7 +49,7 @@
@Override
public void fillInterpolateInfo(final InfoData _m, final int _element, final double _x, final double _y,
final String _layerTitle) {
- if (_element >= 0 && s_.isRubar()) {
+ if (_element >= 0 && s_.containsOnlyElementVar()) {
_m.put(MvResource.getS("Aire de l'\xE9l\xE9ment"), CtuluLib.DEFAULT_NUMBER_FORMAT
.format(s_.getGrid().getAire(_element)));
}
@@ -99,7 +99,7 @@
*/
final H2dVariableType[] vars = s_.getAvailableVar();
final TrPostValueTableModel.DefaultTimeModel model = new TrPostValueTableModel.DefaultTimeModel(super.s_, vars, s_
- .isRubar(), tIdx_);
+ .containsOnlyElementVar(), tIdx_);
if (oldData_ != null && var_ != null) {
model.setInCache(var_, oldData_);
}
@@ -150,7 +150,7 @@
if ((slct != null) && (slct.isOnlyOnIndexSelected())) {
ptIdx = slct.getMaxIndex();
}
- if (isRubar()) {
+ if (isCurrentDataElementType()) {
delegate_.fillWithElementInfo(_m, slct, _layer.getTitle());
if (ptIdx >= 0) {
_m
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModelAbstract.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModelAbstract.java 2010-06-10 16:39:11 UTC (rev 5762)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModelAbstract.java 2010-06-10 21:37:04 UTC (rev 5763)
@@ -73,9 +73,6 @@
}
}
- protected boolean isRubar() {
- return s_.isRubar();
- }
public boolean getDataRange(final CtuluRange _b) {
if (var_ == null) { return false; }
@@ -221,6 +218,12 @@
if (isAccepted(_i, _force)) { return polygone(g_, _p, _i); }
return false;
}
+
+ @Override
+ public boolean getCentre(GrPoint pt, int i, boolean force) {
+ if (isAccepted(i, force)) { return cente(g_, pt, i); }
+ return false;
+ }
public final String getVariableNameSelected() {
if (var_ == null) { return CtuluLibString.EMPTY_STRING; }
@@ -244,7 +247,7 @@
@Override
public final EbliFindExpressionContainerInterface getExpressionContainer() {
return new EbliFindExpressionComposite(
- s_.isRubar() ? (EbliFindExpressionContainerInterface) new MvExpressionSupplierElement(this)
+ s_.containsOnlyElementVar() ? (EbliFindExpressionContainerInterface) new MvExpressionSupplierElement(this)
: new MvExpressionSupplierNode(this), new TrPostExprDataSupplier(this));
}
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModelEltDataAdapter.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModelEltDataAdapter.java 2010-06-10 16:39:11 UTC (rev 5762)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoModelEltDataAdapter.java 2010-06-10 21:37:04 UTC (rev 5763)
@@ -17,6 +17,7 @@
import org.fudaa.dodico.ef.operation.EfIsoRestructuredGridResult;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface;
import org.fudaa.ebli.geometrie.GrBoite;
+import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.palette.BPaletteInfo.InfoData;
import org.fudaa.fudaa.meshviewer.model.MvElementModelDefault;
@@ -68,6 +69,13 @@
if (_force || isAccepted(_i)) { return MvElementModelDefault.polygone(res_.getNewGrid(), _p, _i); }
return false;
}
+
+ public boolean getCentre(GrPoint pt, int idx, boolean force) {
+ if (force || isAccepted(idx)) {
+ return MvElementModelDefault.cente(res_.getNewGrid(), pt, idx);
+ }
+ return false;
+ }
public BuTable createValuesTable(final ZCalqueAffichageDonneesInterface _layer) {
return null;
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostAnalyze.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostAnalyze.java 2010-06-10 16:39:11 UTC (rev 5762)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostAnalyze.java 2010-06-10 21:37:04 UTC (rev 5763)
@@ -165,7 +165,7 @@
public static String getIdOfSource(TrPostSource src) {
String id = null;
if (src != null) {
- if (src.isRubar()) id = TrRubarImplHelper.getID();
+ if (src.containsOnlyElementVar()) id = TrRubarImplHelper.getID();
else if (src instanceof TrPostSourceReflux || src instanceof TrPostSourceReaderReflux) {
id = TrRefluxImplHelper.getID();
}
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostBuilderSuiteCalcul.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostBuilderSuiteCalcul.java 2010-06-10 16:39:11 UTC (rev 5762)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostBuilderSuiteCalcul.java 2010-06-10 21:37:04 UTC (rev 5763)
@@ -142,7 +142,7 @@
return null;
}
- if (_reader.isRubar() || srcToConcat.isRubar()) {
+ if (_reader.containsOnlyElementVar() || srcToConcat.containsOnlyElementVar()) {
error.add(TrResource.getS("Format Rubar non g\xE9r\xE9"));
return null;
}
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostCourbeModel.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostCourbeModel.java 2010-06-10 16:39:11 UTC (rev 5762)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrPostCourbeModel.java 2010-06-10 21:37:04 UTC (rev 5763)
@@ -22,15 +22,19 @@
import org.fudaa.ctulu.CtuluListSelectionInterface;
import org.fudaa.ctulu.CtuluRange;
import org.fudaa.ctulu.CtuluUI;
+import org.fudaa.ctulu.gis.GISPrecision;
import org.fudaa.dodico.ef.EfData;
+import org.fudaa.dodico.ef.EfGridInterface;
+import org.fudaa.dodico.ef.EfLib;
+import org.fudaa.dodico.ef.operation.EfIndexHelper;
import org.fudaa.dodico.h2d.type.H2dVariableType;
import org.fudaa.ebli.courbe.EGCourbeChild;
import org.fudaa.ebli.courbe.EGGroup;
import org.fudaa.ebli.courbe.EGModel;
import org.fudaa.ebli.palette.BPaletteInfo.InfoData;
-import org.fudaa.ebli.visuallibrary.EbliWidget;
import org.fudaa.fudaa.commun.courbe.FudaaCourbeTime;
import org.fudaa.fudaa.commun.courbe.FudaaCourbeTimeModel;
+import org.fudaa.fudaa.tr.common.TrLib;
import org.fudaa.fudaa.tr.common.TrResource;
/**
@@ -39,530 +43,527 @@
*/
public abstract class TrPostCourbeModel extends FudaaCourbeTimeModel {
- /**
- * @return the source
- */
- public TrPostSource getSource() {
- return source_;
- }
+ /**
+ * @return the source
+ */
+ public TrPostSource getSource() {
+ return source_;
+ }
- /**
- * source utilisee par la courbe
- */
- public TrPostSource source_;
+ /**
+ * source utilisee par la courbe
+ */
+ public TrPostSource source_;
+ public final static class Interpolated extends TrPostCourbeModel {
+ TrPostInterpolatePoint ptIdx_;
- public final static class Interpolated extends TrPostCourbeModel {
+ /**
+ * ACHTUNG: constructeur utilis\xE9 uniquement pour la persistance des donn\xE9es!!!
+ */
+ public Interpolated() {
+ super();
+ }
- TrPostInterpolatePoint ptIdx_;
+ /**
+ * @param _ptIdx
+ * @param _varIdx
+ * @param _timeIdx
+ */
+ public Interpolated(final TrPostSource _src, final TrPostInterpolatePoint _ptIdx, final H2dVariableType _varIdx) {
+ super(_src, _varIdx, _src.getTime().getTimeListModel().getTimesInSec());
+ ptIdx_ = _ptIdx;
+ }
+ @Override
+ public double getPtX() {
+ return ptIdx_.getX();
+ }
- /**
- * ACHTUNG: constructeur utilis\xE9 uniquement pour la persistance des donn\xE9es!!!
- */
- public Interpolated(){
- super();
- }
+ @Override
+ public double getPtY() {
+ return ptIdx_.getY();
+ }
+ @Override
+ protected void updateY() {
+ createY();
+ // pour chaque pas de temps
+ for (int tIdx = 0; tIdx < y_.length; tIdx++) {
+ // on recupere la valeur
+ final EfData data = source_.getData(var_, tIdx);
+ if (data == null) {
+ FuLog.warning("TRP: data is null for " + var_);
+ } else
+ // on interpole
+ super.y_[tIdx] = ptIdx_.getInterpolateValue(var_, data, tIdx, source_);
+ }
+ }
- /**
- * @param _ptIdx
- * @param _varIdx
- * @param _timeIdx
- */
- public Interpolated(final TrPostSource _src, final TrPostInterpolatePoint _ptIdx, final H2dVariableType _varIdx) {
- super(_src, _varIdx, _src.getTime().getTimeListModel().getTimesInSec());
- ptIdx_ = _ptIdx;
- }
+ public TrPostInterpolatePoint getInterpolatePt() {
+ return ptIdx_;
+ }
- @Override
- public double getPtX() {
- return ptIdx_.getX();
- }
+ @Override
+ public boolean isCourbeForInterpolation(final TrPostInterpolatePoint _int) {
+ return ptIdx_.equals(_int);
+ }
- @Override
- public double getPtY() {
- return ptIdx_.getY();
- }
+ @Override
+ public boolean isCourbeForObject(final int _idxObj) {
+ return false;
+ }
- @Override
- protected void updateY() {
- createY();
- //pour chaque pas de temps
- for (int tIdx = 0; tIdx < y_.length; tIdx++) {
- //on recupere la valeur
- final EfData data = source_.getData(var_, tIdx);
- if (data == null) {
- FuLog.warning("TRP: data is null for " + var_);
- }else
- //on interpole
- super.y_[tIdx] = ptIdx_.getInterpolateValue(var_, data, tIdx, source_);
- }
- }
+ @Override
+ public Object getSelectionPoint() {
+ // TODO Auto-generated method stub
+ return ptIdx_;
+ }
- public TrPostInterpolatePoint getInterpolatePt() {
- return ptIdx_;
- }
+ public String getSelectionPointName() {
+ // TODO Auto-generated method stub
+ return "(" + ptIdx_.x_ + ";" + ptIdx_.y_ + ")";
+ }
- @Override
- public boolean isCourbeForInterpolation(final TrPostInterpolatePoint _int) {
- return ptIdx_.equals(_int);
- }
+ @Override
+ public void setSelectionPoint(Object point) {
+ if (point != null && (point instanceof TrPostInterpolatePoint)) ptIdx_ = (TrPostInterpolatePoint) point;
+ }
- @Override
- public boolean isCourbeForObject(final int _idxObj) {
- return false;
- }
+ public String getInfosPoint() {
+ if (source_.isElementVar(getVar())) { return TrResource.getS("El\xE9ment") + " " + (ptIdx_.idxElt_ + 1); }
+ return TrResource.getS("Point interpol\xE9:") + " (" + ptIdx_.x_ + ";" + ptIdx_.y_ + ")";
+ }
- @Override
- public Object getSelectionPoint() {
- // TODO Auto-generated method stub
- return ptIdx_;
- }
-
- public String getSelectionPointName() {
- // TODO Auto-generated method stub
- return "("+ptIdx_.x_+";"+ptIdx_.y_+")";
- }
+ public EGModel duplicate() {
+ Interpolated duplic = new Interpolated(this.source_, new TrPostInterpolatePoint(this.ptIdx_), this.var_);
+ if (this.yRange_ != null) duplic.yRange_ = new CtuluRange(this.yRange_);
+ if (this.nom_ != null) duplic.nom_ = nom_;
+ if (this.y_ != null) duplic.y_ = CtuluLibArray.copy(y_);
- @Override
- public void setSelectionPoint(Object point) {
- // TODO Auto-generated method stub
- if(point!=null && (point instanceof TrPostInterpolatePoint))
- ptIdx_=(TrPostInterpolatePoint) point;
- }
+ return duplic;
+ }
- public String getInfosPoint() {
+ }
- return TrResource.getS("Point interpol\xE9:")+" ("+ptIdx_.x_+";"+ptIdx_.y_+")";
- }
+ public final static class Node extends TrPostCourbeModel {
+ int ptIdxOrElement_;
- @Override
- public boolean replayData(TrPostSource src, H2dVariableType var,EGGroup groupe,Map infos) {
- try{
- //-- creation d un nouveau node pour les donnees en entree --//
- EGCourbeChild newCurve = TrPostCourbeModel.buildCourbeModel(var, this.ptIdx_,groupe, src);
+ /**
+ * @param _ptIdx
+ * @param _varIdx
+ * @param _timeIdx
+ */
+ public Node(final TrPostSource _src, final int _ptIdx, final H2dVariableType _varIdx, final double[] _timeIdx) {
+ super(_src, _varIdx, _timeIdx);
+ ptIdxOrElement_ = _ptIdx;
+ }
- //-- on remplace les anciennes valeurs par les nouvelles calculees --//
- infos.put("MODELREPLAY", newCurve);
+ /**
+ * ACHTUNG: constructeur utilis\xE9 uniquement pour la persistance des donn\xE9es!!!
+ */
+ public Node() {
+ super();
+ }
- // this.y_=((Node)newCurve.getModel()).y_;
- // this.time_=((Node)newCurve.getModel()).time_;
+ @Override
+ protected void updateY() {
+ createY();
+ for (int i = 0; i < y_.length; i++) {
+ try {
+ y_[i] = source_.getData(var_, i, ptIdxOrElement_);
+ } catch (final IOException e) {
+ FuLog.error(e);
+ }
+ // }
+ }
+ }
- }catch(Exception e){
- e.printStackTrace();
- return false;
- }
- return true;
- }
+ @Override
+ public double getPtX() {
+ return source_.isElementVar(getVar()) ? source_.getGrid().getCentreXElement(ptIdxOrElement_) : source_.getGrid()
+ .getPtX(ptIdxOrElement_);
+ }
+ @Override
+ public double getPtY() {
+ return source_.isElementVar(getVar()) ? source_.getGrid().getCentreYElement(ptIdxOrElement_) : source_.getGrid()
+ .getPtY(ptIdxOrElement_);
+ }
- public EGModel duplicate() {
- Interpolated duplic = new Interpolated(this.source_,new TrPostInterpolatePoint(this.ptIdx_),this.var_);
- if (this.yRange_ != null) duplic.yRange_ = new CtuluRange(this.yRange_);
- if (this.nom_ != null) duplic.nom_ = nom_;
- if (this.y_ != null) duplic.y_ = CtuluLibArray.copy(y_);
+ public int getPtIdx() {
+ return ptIdxOrElement_;
+ }
- return duplic;
- }
+ @Override
+ public boolean isCourbeForInterpolation(final TrPostInterpolatePoint _int) {
+ return false;
+ }
- }
+ @Override
+ public boolean isCourbeForObject(final int _idxObj) {
+ return _idxObj == ptIdxOrElement_;
+ }
- public final static class Node extends TrPostCourbeModel {
+ @Override
+ public Object getSelectionPoint() {
+ return Integer.valueOf(ptIdxOrElement_);
+ }
- int ptIdx_;
+ public String getSelectionPointName() {
+ return "" + ptIdxOrElement_;
+ }
- /**
- * @param _ptIdx
- * @param _varIdx
- * @param _timeIdx
- */
- public Node(final TrPostSource _src, final int _ptIdx, final H2dVariableType _varIdx, final double[] _timeIdx) {
- super(_src, _varIdx, _timeIdx);
- ptIdx_ = _ptIdx;
- }
+ @Override
+ public void setSelectionPoint(Object point) {
+ if (point != null && (point instanceof Integer)) ptIdxOrElement_ = ((Integer) point).intValue();
+ }
+ public EGModel duplicate() {
+ Node duplic = new Node(this.source_, this.ptIdxOrElement_, this.var_, CtuluLibArray.copy(time_));
+ if (this.yRange_ != null) duplic.yRange_ = new CtuluRange(this.yRange_);
+ if (this.nom_ != null) duplic.nom_ = nom_;
+ if (this.y_ != null) duplic.y_ = CtuluLibArray.copy(y_);
- /**
- * ACHTUNG: constructeur utilis\xE9 uniquement pour la persistance des donn\xE9es!!!
- */
- public Node(){
- super();
- }
+ return duplic;
+ }
- @Override
- protected void updateY() {
- createY();
- for (int i = 0; i < y_.length; i++) {
- // final EfData data = source_.getData(var_, i);
- // if (data == null) {
- // FuLog.warning("TRP: data is null for " + var_);
- try {
- y_[i] = source_.getData(var_, i, ptIdx_);
- } catch (final IOException e) {
- FuLog.error(e);
- }
- // }
- }
- // final EfData data = source_.getData(_var, _timeIdx);
- // if (data == null) {
- // FuLog.warning("TRP: data is null for " + _var);
- // }
- // super.y_[_timeIdx] = data.getValue(ptIdx_);
+ @Override
+ public String getInfosPoint() {
+ Coordinate coor = new Coordinate();
+ boolean isElt = source_.isElementVar(getVar());
+ if (isElt) source_.getGrid().getCentreElement(ptIdxOrElement_, coor);
+ else {
+ source_.getGrid().getCoord(ptIdxOrElement_, coor);
+ }
+ GISPrecision precision = source_.getPrecisionModel();
- }
+ return TrResource.getS(isElt ? "El\xE9ment" : "Point") + ptIdxOrElement_ + ":(" + precision.round(coor.x) + ";"
+ + precision.round(coor.y) + ")";
+ }
+ }
- @Override
- public double getPtX() {
- // FIXME RUBAR
- return source_.isElementVar(getVar()) ? source_.getGrid().getCentreXElement(ptIdx_) : source_.getGrid().getPtX(
- ptIdx_);
- }
+ public static EGCourbeChild buildCourbeModel(final H2dVariableType _var, final int _idxPt, final EGGroup _group,
+ final TrPostSource _src) {
+ final TrPostCourbeModel model = new TrPostCourbeModel.Node(_src, _idxPt, _var, _src.getTime().getTimeListModel()
+ .getTimesInSec());
+ final EGCourbeChild courbe = new FudaaCourbeTime(_group, model, _src.getNewTimeListModel());
+ _group.addEGComponent(courbe);
+ String title = courbe.getModel().getTitle() + CtuluLibString.ESPACE;
+ if (_var.getCommonUnitString() != null) title += "(" + _var.getCommonUnitString() + ")" + CtuluLibString.ESPACE;
+ Coordinate coor = new Coordinate();
+ String obj=CtuluLibString.EMPTY_STRING;
+ if (_src.isElementVar(_var)) {
+ _src.getGrid().getCentreElement(_idxPt, coor);
+ obj=TrLib.getString("El\xE9ment");
+ }
+ else {
+ _src.getGrid().getCoord(_idxPt, coor);
+ obj=TrLib.getString("Noeud");
+ }
+ title += obj+" "+(_idxPt + 1) + " (" + _src.getPrecisionModel().round(coor.x) + ", "
+ + _src.getPrecisionModel().round(coor.y) + ")";
+ courbe.getModel().setTitle(title);
+ return courbe;
+ }
- @Override
- public double getPtY() {
- return source_.isElementVar(getVar()) ? source_.getGrid().getCentreYElement(ptIdx_) : source_.getGrid().getPtY(
- ptIdx_);
- }
+ public static EGCourbeChild buildCourbeModel(final H2dVariableType _var, final TrPostInterpolatePoint _idxPt,
+ final EGGroup _group, final TrPostSource _src) {
+ if (!_src.isElementVar(_var)) {
+ int idxPt = EfLib.getIdxGlobalForPt(_idxPt.getIdxElt(),_idxPt.getX(), _idxPt.getY(), _src.getPrecisionModel(), _src.getGrid());
+ if (idxPt >= 0) { return buildCourbeModel(_var, idxPt, _group, _src); }
+ }
+ final TrPostCourbeModel model = new TrPostCourbeModel.Interpolated(_src, _idxPt, _var);
+ final EGCourbeChild courbe = new FudaaCourbeTime(_group, model, _src.getNewTimeListModel());
+ _group.addEGComponent(courbe);
+ String unit=_var.getCommonUnitString();
+ if(unit!=null){
+ unit="(" + _var.getCommonUnitString() + ")";
+ }
+ else{
+ unit=CtuluLibString.EMPTY_STRING;
+ }
+ courbe.getModel().setTitle(
+ courbe.getModel().getTitle() + unit+ " ("
+ + _src.getPrecisionModel().round(_idxPt.getX()) + ", " + _src.getPrecisionModel().round(_idxPt.getY())
+ + ')');
+ return courbe;
+ }
- public int getPtIdx() {
- return ptIdx_;
- }
+ /**
+ * Attention, le point d'interpolation concerne l'ancienne source de donn\xE9e.
+ *
+ * @param _var
+ * @param _idxPt
+ * @param _group
+ * @param _newSrc
+ * @param oldSource
+ * @return
+ */
+ public static EGCourbeChild buildCourbeModelOnNewSource(final H2dVariableType _var, final int _idxPt,
+ final EGGroup _group, final TrPostSource _newSrc, TrPostSource oldSource) {
+ if (oldSource == _newSrc) return buildCourbeModel(_var, _idxPt, _group, _newSrc);
+ return buildCourbeModel(_var, _group, _newSrc, oldSource.getGrid().getPtX(_idxPt), oldSource.getGrid().getPtY(
+ _idxPt));
+ }
- @Override
- public boolean isCourbeForInterpolation(final TrPostInterpolatePoint _int) {
- return false;
- }
+ /**
+ * Attention, le point d'interpolation concerne l'ancienne source de donn\xE9e.
+ *
+ * @param _var
+ * @param _idxPt
+ * @param _group
+ * @param _newSrc
+ * @param oldSource
+ * @return
+ */
+ public static EGCourbeChild buildCourbeModelOnNewSource(final H2dVariableType _var,
+ final TrPostInterpolatePoint _idxPt, final EGGroup _group, final TrPostSource _newSrc, TrPostSource oldSource) {
+ if (oldSource == _newSrc) return buildCourbeModel(_var, _idxPt, _group, _newSrc);
+ double x = _idxPt.x_;
+ double y = _idxPt.y_;
+ return buildCourbeModel(_var, _group, _newSrc, x, y);
+ }
- @Override
- public boolean isCourbeForObject(final int _idxObj) {
- return _idxObj == ptIdx_;
- }
+ private static EGCourbeChild buildCourbeModel(final H2dVariableType _var, final EGGroup _group,
+ final TrPostSource _newSrc, double x, double y) {
+ EfGridInterface grid = _newSrc.getGrid();
+ if (grid.getIndex() == null) {
+ grid.createIndexRegular(null);
+ }
+ int idxElt = EfIndexHelper.getElementEnglobant(grid, x, y, null);
+ if (idxElt < 0) return null;
+ if (!_newSrc.isElementVar(_var)) {
+ int idxPt = EfLib.getIdxGlobalForPt(idxElt, x, y, _newSrc.getPrecisionModel(), grid);
+ if (idxPt >= 0) { return buildCourbeModel(_var, idxPt, _group, _newSrc); }
+ }
+ return buildCourbeModel(_var, new TrPostInterpolatePoint(idxElt, x, y, _newSrc.getPrecisionModel()), _group,
+ _newSrc);
+ }
- @Override
- public Object getSelectionPoint() {
- // TODO Auto-generated method stub
- return new Integer(ptIdx_);
- }
-
- public String getSelectionPointName() {
- // TODO Auto-generated method stub
- return ""+ptIdx_;
- }
+ H2dVariableType var_;
- @Override
- public void setSelectionPoint(Object point) {
- // TODO Auto-generated method stub
- if(point!=null && (point instanceof Integer))
- ptIdx_=((Integer)point).intValue();
- }
+ public TrPostCourbeModel(final TrPostSource _src, final H2dVariableType _varIdx, final double[] _timeIdx) {
+ super(_timeIdx);
+ source_ = _src;
+ var_ = _varIdx;
+ }
+ /**
+ * ACTHUNG: constructeur utilis\xE9 uniquement pour la persistance des donn\xE9es!!!
+ */
+ public TrPostCourbeModel() {
+ super();
+ }
- @Override
- public boolean replayData(TrPostSource src, H2dVariableType var,EGGroup groupe,Map infos) {
- try{
- //-- creation d un nouveau node pour les donnees en entree --//
- EGCourbeChild newCurve = TrPostCourbeModel.buildCourbeModel(var, this.ptIdx_,groupe, src);
+ protected final void setVar(final H2dVariableType _t) {
+ var_ = _t;
+ }
- //-- on remplace les anciennes valeurs par les nouvelles calculees --//
- infos.put("MODELREPLAY", newCurve);
- // this.y_=((Node)newCurve.getModel()).y_;
- // this.time_=((Node)newCurve.getModel()).time_;
+ public boolean clearCache(final H2dVariableType _varChanged, final Set _varUsingModifiedVar) {
+ if (var_ == _varChanged || (_varUsingModifiedVar != null) && _varUsingModifiedVar.contains(var_)) {
+ clearCache();
+ return true;
+ }
+ return false;
+ }
+ @Override
+ public boolean deplace(final int[] _selectIdx, final double _deltaX, final double _deltaY,
+ final CtuluCommandContainer _cmd) {
+ return false;
+ }
+ protected abstract void updateY();
- }catch(Exception e){
- e.printStackTrace();
- return false;
- }
- return true;
- }
+ @Override
+ public String getTitle() {
+ return nom_ == null ? var_.getName() : nom_;
+ }
- public EGModel duplicate() {
- Node duplic = new Node(this.source_,this.ptIdx_,this.var_,CtuluLibArray.copy(time_));
- if (this.yRange_ != null) duplic.yRange_ = new CtuluRange(this.yRange_);
- if (this.nom_ != null) duplic.nom_ = nom_;
- if (this.y_ != null) duplic.y_ = CtuluLibArray.copy(y_);
+ public final H2dVariableType getVar() {
+ return var_;
+ }
- return duplic;
- }
+ public abstract double getPtX();
+ public abstract double getPtY();
- @Override
- public String getInfosPoint() {
+ public abstract boolean isCourbeForInterpolation(TrPostInterpolatePoint _int);
- return TrResource.getS("Point r\xE9el ")+ptIdx_+":("+this.source_.getGrid().getPtX(ptIdx_)+";"+this.source_.getGrid().getPtY(ptIdx_)+")";
- }
+ public abstract boolean isCourbeForObject(int _idxObj);
- }
+ @Override
+ public boolean isRemovable() {
+ return true;
+ }
- public static EGCourbeChild buildCourbeModel(final H2dVariableType _var, final int _idxPt, final EGGroup _group,
- final TrPostSource _src) {
- final TrPostCourbeModel model = new TrPostCourbeModel.Node(_src, _idxPt, _var, _src.getTime().getTimeListModel()
- .getTimesInSec());
- final EGCourbeChild courbe = new FudaaCourbeTime(_group, model, _src.getNewTimeListModel());
- _group.addEGComponent(courbe);
- String title=courbe.getModel().getTitle()+ CtuluLibString.ESPACE ;
- if(_var.getCommonUnitString()!=null)
- title+="("+_var.getCommonUnitString()+")"+CtuluLibString.ESPACE;
- Coordinate coor=_src.getGrid().getCoor(_idxPt);
- title+= (_idxPt+1) + ":" + " (" + _src.getPrecisionModel().round(coor.x) + ", "
- + _src.getPrecisionModel().round(coor.y) + ")";
- courbe.getModel().setTitle(title);
- return courbe;
- }
+ @Override
+ public boolean isDuplicatable() {
+ return true;
+ }
- public static EGCourbeChild buildCourbeModel(final H2dVariableType _var, final TrPostInterpolatePoint _idxPt,
- final EGGroup _group, final TrPostSource _src) {
- final TrPostCourbeModel model = new TrPostCourbeModel.Interpolated(_src, _idxPt, _var);
- final EGCourbeChild courbe = new FudaaCourbeTime(_group, model, _src.getNewTimeListModel());
- _group.addEGComponent(courbe);
- courbe.getModel().setTitle(
- courbe.getModel().getTitle()+"("+_var.getCommonUnitString()+")" + " (" + _src.getPrecisionModel().round(_idxPt.getX()) + ", "
- + _src.getPrecisionModel().round(_idxPt.getY()) + ')');
- return courbe;
- }
+ protected void createY() {
+ if (y_ == null || y_.length != this.source_.getNbTimeStep()) {
+ y_ = new double[source_.getNbTimeStep()];
+ }
+ }
- H2dVariableType var_;
+ public boolean addValue(double[] _x, double[] _y, CtuluCommandContainer _cmd) {
- public TrPostCourbeModel(final TrPostSource _src, final H2dVariableType _varIdx, final double[] _timeIdx) {
- super(_timeIdx);
- source_ = _src;
- var_ = _varIdx;
- }
+ time_ = CtuluLibArray.copy(_x);
+ y_ = CtuluLibArray.copy(_y);
- /**
- * ACTHUNG: constructeur utilis\xE9 uniquement pour la persistance des donn\xE9es!!!
- */
- public TrPostCourbeModel(){
- super();
- }
+ // for(int i=0;i<Math.min(_x.length,_y.lenght);i++){
+ //
+ // }
- protected final void setVar(final H2dVariableType _t) {
- var_ = _t;
- }
+ return true;
+ }
- public boolean clearCache(final H2dVariableType _varChanged, final Set _varUsingModifiedVar) {
- if (var_ == _varChanged || (_varUsingModifiedVar != null) && _varUsingModifiedVar.contains(var_)) {
- clearCache();
- return true;
- }
- return false;
- }
+ public void fillWithInfo(InfoData _table, CtuluListSelectionInterface _selectedPt) {
+ _table.put(TrResource.getS("Type"), "Evolution temporelle");
+ TrPostSourceAbstractFromIdx.fillWithSourceInfo(_table, source_);
+ _table.put(TrResource.getS("Titre Fichier r\xE9sultat"), this.source_.getTitle());
+ _table.put(TrResource.getS("Infos Point initial"), this.getInfosPoint());
+ _table.put(TrResource.getS("Variable"), this.getVar().getName() + " en " + this.getVar().getCommonUnitString());
+ }
- @Override
- public boolean deplace(final int[] _selectIdx, final double _deltaX, final double _deltaY,
- final CtuluCommandContainer _cmd) {
- return false;
- }
+ public Object getPersistSpecificDatas() {
- protected abstract void updateY();
+ // -- retourne le quatuor point, pdt,variable et fichier source
+ ArrayList<Object> listeData = new ArrayList<Object>();
+ listeData.add(this.source_.getId());
+ // listeData.add(this.getTime());
+ listeData.add(this.var_.getID());
+ // -- recupere le noeud ou point interpol\xE9 --//
+ listeData.add(getSelectionPoint());
+ return listeData;
+ }
- @Override
- public String getTitle() {
- return nom_ == null ? var_.getName() : nom_;
- }
+ public abstract String getInfosPoint();
- public final H2dVariableType getVar() {
- return var_;
- }
+ public abstract Object getSelectionPoint();
- public abstract double getPtX();
+ public abstract String getSelectionPointName();
- public abstract double getPtY();
+ public abstract void setSelectionPoint(Object point);
- public abstract boolean isCourbeForInterpolation(TrPostInterpolatePoint _int);
+ public void setPersistSpecificDatas(Object data, Map infos) {
+ if (data == null || !(data instanceof ArrayList)) return;
+ ArrayList<Object> liste = (ArrayList<Object>) data;
+ String idSource = (String) liste.get(0);
+ TrPostProjet projet = (TrPostProjet) infos.get("TrPostProjet");
+ TrPostSource src = null;
+ if (projet != null) {
+ // -- etape 1: recherche du source qui contient le path donn\xE9 --//
+ src = projet.getSources().findSourceById(idSource);
+ if (src != null) this.source_ = src;
+ else {
+ ((List<String>) infos.get("errorMsg"))
+ .add("Erreur, la frame graphe ne trouve pas le fichier r\xE9sultat qui correspond \xE0 l'ID " + idSource);
+ return;
+ }
+ } else {
+ ((List<String>) infos.get("errorMsg"))
+ .add("Erreur, la frame graphe ne trouve pas le fichier r\xE9sultat qui correspond \xE0 l'ID " + idSource);
+ return;
+ }
+ // -- etape 2:times: ce sont les x donn\xE9es indirectement. --//
- public abstract boolean isCourbeForObject(int _idxObj);
+ // -- etape 3:variable --//
+ String idVar = (String) liste.get(1);
+ H2dVariableType var = null;// (H2dVariableType) liste.get(1);
- @Override
- public boolean isRemovable() {
- return true;
- }
+ // -- recherche dans les sources de la variable par id --//
+ for (int i = 0; i < src.getAvailableVar().length; i++)
+ if (src.getAvailableVar()[i].getID().equals(idVar)) var = src.getAvailableVar()[i];
- @Override
- public boolean isDuplicatable() {
- return true;
- }
+ if (var != null) this.var_ = var;
+ else {
+ ((List<String>) infos.get("errorMsg"))
+ .add("Erreur, la frame graphe ne trouve pas la variable qui correspond \xE0 l'ID " + idVar);
+ return;
+ }
+ Object point = liste.get(2);
+ if (point != null) setSelectionPoint(point);
- protected...
[truncated message content] |