|
From: <bma...@us...> - 2013-06-17 08:19:01
|
Revision: 8420
http://sourceforge.net/p/fudaa/svn/8420
Author: bmarchan
Date: 2013-06-17 08:18:54 +0000 (Mon, 17 Jun 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/Hydraulique1dProfilModel.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseArche.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseCirculaire.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseDemiCirculaire.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeDalot.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeRectangle.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeTrapeze.java
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/Hydraulique1dProfilModel.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/Hydraulique1dProfilModel.java 2013-06-10 15:58:05 UTC (rev 8419)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/Hydraulique1dProfilModel.java 2013-06-17 08:18:54 UTC (rev 8420)
@@ -80,9 +80,9 @@
private int[] indicesNonNuls_=null;
/** Les auditeurs pour le data modifi\xE9. */
- private HashSet hlisteners_=new HashSet();
+ private HashSet<Hydraulique1dProfilDataListener> hlisteners_=new HashSet<Hydraulique1dProfilDataListener>();
/** Les auditeurs pour la selection modifi\xE9e. */
- private HashSet hsellisteners_=new HashSet();
+ private HashSet<Hydraulique1dProfilSelectionListener> hsellisteners_=new HashSet<Hydraulique1dProfilSelectionListener>();
private boolean avecGeoreferencement_;
private String infoGeoreferencement_;
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java 2013-06-10 15:58:05 UTC (rev 8419)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java 2013-06-17 08:18:54 UTC (rev 8420)
@@ -45,6 +45,7 @@
import org.fudaa.ebli.dialog.BPanneauNavigation;
import org.fudaa.ebli.graphe.Contrainte;
import org.fudaa.ebli.graphe.CourbeDefault;
+import org.fudaa.ebli.graphe.GrapheComponent;
import org.fudaa.ebli.graphe.Valeur;
import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation;
import org.fudaa.fudaa.hydraulique1d.CGlobal;
@@ -373,7 +374,7 @@
}
Object[] values = getListeBiefCasierLiaison().getSelectedValues();
- ArrayList listeIndexes = new ArrayList(values.length);
+ ArrayList<Integer> listeIndexes = new ArrayList<Integer>(values.length);
for (int i = 0; i < values.length; i++) {
StringTokenizer st = new StringTokenizer(values[i].toString());
if (debutChaine.equals(st.nextToken())) {
@@ -382,7 +383,7 @@
}
int[] res = new int[listeIndexes.size()];
for (int i = 0; i < res.length; i++) {
- res[i] = ((Integer) listeIndexes.get(i)).intValue();
+ res[i] = listeIndexes.get(i).intValue();
}
return res;
@@ -490,13 +491,13 @@
}
- protected List getListLaisse() {
- List listeLaisse = new ArrayList();
+ protected List<GrapheComponent> getListLaisse() {
+ List<GrapheComponent> listeLaisse = new ArrayList<GrapheComponent>();
if (getSelectedPanel().cbLaisse_.isSelected()) {
MetierLaisse[] laisses = donnneHyd_.laisses();
//Si Profil spatial
if (getSelectedPanel().rbSpatial_.isSelected()) {
- Vector vLaissesBief = new Vector();
+ Vector<Valeur> vLaissesBief = new Vector<Valeur>();
for (int j = getListeBiefCasierLiaison().getMinSelectionIndex(); j <= getListeBiefCasierLiaison().getMaxSelectionIndex(); j++) {
if (j < reseau_.biefs().length) {
//On recherche les laisses rattach\xE9es au bief indiceBief
@@ -734,7 +735,7 @@
//#################################################################################################
class GrapheSaveFileChooser extends CtuluFileChooser {
- Map filterFormat_;
+ Map<BuFileFilter, String> filterFormat_;
/**
*
@@ -745,10 +746,10 @@
setFileHidingEnabled(false);
setAcceptAllFileFilterUsed(false);
BuFileFilter[] f = new BuFileFilter[CtuluImageExport.FORMAT_LIST.size() + 2];
- filterFormat_ = new HashMap(f.length);
+ filterFormat_ = new HashMap<BuFileFilter, String>(f.length);
int pngIDx = 0;
for (int i = 0; i < (f.length - 2); i++) {
- String fmt = (String) CtuluImageExport.FORMAT_LIST.get(i);
+ String fmt = CtuluImageExport.FORMAT_LIST.get(i);
if ("png".equals(fmt)) {
pngIDx = i;
}
@@ -768,7 +769,7 @@
}
public String getSelectedFormat() {
- return (String) filterFormat_.get(getFileFilter());
+ return filterFormat_.get(getFileFilter());
}
/**
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseArche.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseArche.java 2013-06-10 15:58:05 UTC (rev 8419)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseArche.java 2013-06-17 08:18:54 UTC (rev 8420)
@@ -75,7 +75,7 @@
@Override
public GrPoint[] getPoints() {
GrPoint[] ps=null;
- Vector v=new Vector();
+ Vector<GrPoint> v=new Vector<GrPoint>();
GrPoint pt=startPoint_;
double r=portee_/2.;
@@ -107,7 +107,7 @@
v.add(new GrPoint(pt.x_+(portee_+fente_)/2.+1.0,pt.y_,pt.z_));
v.add(new GrPoint(pt.x_+portee_+2.0,pt.y_,pt.z_));
- ps=(GrPoint[])v.toArray(new GrPoint[v.size()]);
+ ps=v.toArray(new GrPoint[v.size()]);
return ps;
}
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseCirculaire.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseCirculaire.java 2013-06-10 15:58:05 UTC (rev 8419)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseCirculaire.java 2013-06-17 08:18:54 UTC (rev 8420)
@@ -73,7 +73,7 @@
@Override
public GrPoint[] getPoints() {
GrPoint[] ps=null;
- Vector v=new Vector();
+ Vector<GrPoint> v=new Vector<GrPoint>();
GrPoint pt=startPoint_;
// Angle de fente
@@ -89,7 +89,7 @@
v.add(new GrPoint(pt.x_+(diametre_+fente_)/2.+1.0,pt.y_,pt.z_));
v.add(new GrPoint(pt.x_+diametre_+2.0,pt.y_,pt.z_));
- ps=(GrPoint[])v.toArray(new GrPoint[v.size()]);
+ ps=v.toArray(new GrPoint[v.size()]);
return ps;
}
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseDemiCirculaire.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseDemiCirculaire.java 2013-06-10 15:58:05 UTC (rev 8419)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeBuseDemiCirculaire.java 2013-06-17 08:18:54 UTC (rev 8420)
@@ -73,7 +73,7 @@
@Override
public GrPoint[] getPoints() {
GrPoint[] ps=null;
- Vector v=new Vector();
+ Vector<GrPoint> v=new Vector<GrPoint>();
GrPoint pt=startPoint_;
// Angle de fente
@@ -93,7 +93,7 @@
v.add(new GrPoint(pt.x_+(diametre_+fente_)/2.+1.0,pt.y_,pt.z_));
v.add(new GrPoint(pt.x_+diametre_+2.0,pt.y_,pt.z_));
- ps=(GrPoint[])v.toArray(new GrPoint[v.size()]);
+ ps=v.toArray(new GrPoint[v.size()]);
return ps;
}
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeDalot.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeDalot.java 2013-06-10 15:58:05 UTC (rev 8419)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeDalot.java 2013-06-17 08:18:54 UTC (rev 8420)
@@ -75,7 +75,7 @@
@Override
public GrPoint[] getPoints() {
GrPoint[] ps=null;
- Vector v=new Vector();
+ Vector<GrPoint> v=new Vector<GrPoint>();
GrPoint pt=startPoint_;
v.add(pt=new GrPoint(pt.x_,pt.y_,pt.z_));
@@ -89,7 +89,7 @@
v.add(pt=new GrPoint(pt.x_,pt.y_+couverture_,pt.z_));
v.add(pt=new GrPoint(pt.x_+(largeur_-fente_)/2.+1.0,pt.y_,pt.z_));
- ps=(GrPoint[])v.toArray(new GrPoint[v.size()]);
+ ps=v.toArray(new GrPoint[v.size()]);
return ps;
}
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeRectangle.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeRectangle.java 2013-06-10 15:58:05 UTC (rev 8419)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeRectangle.java 2013-06-17 08:18:54 UTC (rev 8420)
@@ -69,17 +69,17 @@
@Override
public GrPoint[] getPoints() {
GrPoint[] ps= null;
- Vector v= new Vector();
+ Vector<GrPoint> v= new Vector<GrPoint>();
GrPoint prec= startPoint_;
v.add(new GrPoint(prec.x_, prec.y_, prec.z_));
- prec= (GrPoint)v.lastElement();
+ prec= v.lastElement();
if (mode_ != CONNECT_LEFT) {
v.add(
new GrPoint(
Math.ceil((prec.x_ + ANTI_VERTICAL) * 100) / 100,
prec.y_ - hauteur_,
prec.z_));
- prec= (GrPoint)v.lastElement();
+ prec= v.lastElement();
}
if (mode_ == CONNECT_RIGHT)
v.add(
@@ -99,7 +99,7 @@
Math.ceil((prec.x_ + largeur_ - 2 * ANTI_VERTICAL) * 100) / 100,
prec.y_,
prec.z_));
- prec= (GrPoint)v.lastElement();
+ prec= v.lastElement();
if (mode_ != CONNECT_RIGHT)
v.add(
new GrPoint(
@@ -108,7 +108,7 @@
prec.z_));
ps= new GrPoint[v.size()];
for (int i= 0; i < v.size(); i++)
- ps[i]= (GrPoint)v.get(i);
+ ps[i]= v.get(i);
return ps;
}
@Override
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeTrapeze.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeTrapeze.java 2013-06-10 15:58:05 UTC (rev 8419)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilFormeTrapeze.java 2013-06-17 08:18:54 UTC (rev 8420)
@@ -68,21 +68,21 @@
@Override
public GrPoint[] getPoints() {
GrPoint[] ps= null;
- Vector v= new Vector();
+ Vector<GrPoint> v= new Vector<GrPoint>();
GrPoint prec= startPoint_;
v.add(new GrPoint(prec.x_, prec.y_, prec.z_));
- prec= (GrPoint)v.lastElement();
+ prec= v.lastElement();
if (mode_ != CONNECT_LEFT) {
v.add(new GrPoint(prec.x_ + pente_ * hauteur_, prec.y_ - hauteur_, prec.z_));
- prec= (GrPoint)v.lastElement();
+ prec= v.lastElement();
}
v.add(new GrPoint(prec.x_ + largeurPlaf_, prec.y_, prec.z_));
- prec= (GrPoint)v.lastElement();
+ prec= v.lastElement();
if (mode_ != CONNECT_RIGHT)
v.add(new GrPoint(prec.x_ + pente_ * hauteur_, prec.y_ + hauteur_, prec.z_));
ps= new GrPoint[v.size()];
for (int i= 0; i < v.size(); i++)
- ps[i]= (GrPoint)v.get(i);
+ ps[i]= v.get(i);
return ps;
}
@Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2013-07-29 08:55:57
|
Revision: 8452
http://sourceforge.net/p/fudaa/svn/8452
Author: bmarchan
Date: 2013-07-29 08:55:53 +0000 (Mon, 29 Jul 2013)
Log Message:
-----------
Mascaret : Animation des cotes d'eau sur profil en travers.
Modified Paths:
--------------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilPane.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/Hydraulique1dGrapheProfil.java
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilPane.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilPane.java 2013-07-29 08:52:55 UTC (rev 8451)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilPane.java 2013-07-29 08:55:53 UTC (rev 8452)
@@ -11,6 +11,7 @@
import gnu.trove.TDoubleArrayList;
import java.awt.BorderLayout;
+import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
@@ -27,6 +28,7 @@
import java.util.Map;
import java.util.Vector;
+import javax.swing.AbstractButton;
import javax.swing.AbstractListModel;
import javax.swing.BorderFactory;
import javax.swing.Box;
@@ -51,6 +53,9 @@
import org.fudaa.dodico.hydraulique1d.metier.MetierReseau;
import org.fudaa.dodico.hydraulique1d.metier.MetierResultatsTemporelSpatial;
import org.fudaa.dodico.hydraulique1d.metier.MetierResultatsTemporelSpatialBief;
+import org.fudaa.ebli.animation.EbliAnimationAction;
+import org.fudaa.ebli.animation.EbliAnimationSourceInterface;
+import org.fudaa.ebli.commun.EbliComponentFactory;
import org.fudaa.ebli.impression.EbliPrinter;
import org.fudaa.fudaa.hydraulique1d.CGlobal;
import org.fudaa.fudaa.hydraulique1d.Hydraulique1dBaseApplication;
@@ -85,7 +90,98 @@
* @author Bertrand Marchand
*/
public class Hydraulique1dProfilPane extends JPanel implements CurveOptionTargetI, ActionListener, Hydraulique1dProfilSelectionListener, Hydraulique1dProfilDataListener, BuCutCopyPasteInterface, BuUndoRedoInterface {
+
+ /**
+ * Une classe d'animation du graphe.
+ * @author Bertrand Marchand (mar...@de...)
+ */
+ class GrapheAnimation implements EbliAnimationSourceInterface {
+ private Hydraulique1dProfilPane panel_;
+
+ GrapheAnimation(Hydraulique1dProfilPane editeur) {
+ panel_ = editeur;
+ }
+
+ /**
+ * @return le nombre de pas de temps a parcourir
+ */
+ @Override
+ public int getNbTimeStep() {
+ return panel_.coTemps_.getItemCount();
+ }
+
+ /**
+ * @param _idx indice du pas de temps [0;getNbTimeStep()[
+ * @return representation de ce pas de temps
+ */
+ @Override
+ public String getTimeStep(int _idx) {
+ return panel_.coTemps_.getItemAt(_idx).toString();
+ }
+
+ @Override
+ public double getTimeStepValueSec(int _idx) {
+ try {
+ return Double.parseDouble(getTimeStep(_idx));
+ } catch (NumberFormatException numberFormatException) {
+ }
+ return 0;
+ }
+
+ /**
+ * @param _idx l'indice a afficher
+ */
+ @Override
+ public void setTimeStep(int _idx) {
+ panel_.coTemps_.setSelectedIndex(_idx);
+ }
+
+ @Override
+ public String getTitle() {
+ return panel_.getTitle();
+ }
+
+ /**
+ * Permet d'avertir le client que la video est en cours
+ *
+ * @param _b true si video en cours
+ */
+ @Override
+ public void setVideoMode(boolean _b) {
+ }
+
+ /**
+ * @return le composant contenant l'affichage (optionnel)
+ */
+ @Override
+ public Component getComponent() {
+ return null;
+
+ }
+
+ /**
+ * @return l'image produite dans la taille courant du composant.
+ */
+ @Override
+ public BufferedImage produceImage(Map _params) {
+ return panel_.produceImage(null);
+ }
+
+ @Override
+ public BufferedImage produceImage(int _w, int _h, Map _params) {
+ return panel_.produceImage(_w, _h, null);
+ }
+
+ /**
+ * @return les dimensions de l'image produite
+ */
+ @Override
+ public Dimension getDefaultImageDimension() {
+ return panel_.graphe_.getSize();
+ }
+ }
+
class TpsComboboxModel implements ComboBoxModel {
HashSet<ListDataListener> hlisteners=new HashSet<ListDataListener>();
Object selected;
@@ -184,7 +280,6 @@
private JToggleButton btVoirRives_=new JToggleButton();
private JButton btFixerBornes_=new JButton();
private JToggleButton btAjusterBornes_=new JToggleButton();
- private JButton btAnimation_=new JButton();
private JComboBox coTemps_=new JComboBox();
private JToggleButton btCoteMinMax_=new JToggleButton();
@@ -293,9 +388,8 @@
coTemps_.setSelectedIndex(0);
}
- private void changeTempsSelection() {
- int itps=coTemps_.getSelectedIndex();
- if (itps==-1) return;
+ private void changeTempsSelection(int _itps) {
+ if (_itps==-1) return;
int[] ibiefs=lsBief_.getSelectedIndices();
@@ -306,7 +400,7 @@
int nbProfil = b.profils().length;
for (int iprof = 0; iprof < nbProfil; iprof++) {
Hydraulique1dProfilModel pModel= profilsBief_[icpt++];
- double z=calculeCoteZProfil(ibiefs[i], iprof,itps);
+ double z=calculeCoteZProfil(ibiefs[i], iprof,_itps);
pModel.setNiveauEau(z);
}
}
@@ -336,7 +430,7 @@
setProfilsModeleBief(listeProfils_.toArray(new Hydraulique1dProfilModel[listeProfils_.size()]));
setProfilCourant(0);
- changeTempsSelection();
+ changeTempsSelection(coTemps_.getSelectedIndex());
}
/**
@@ -629,17 +723,17 @@
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange()==ItemEvent.DESELECTED) return;
- changeTempsSelection();
+ changeTempsSelection(coTemps_.getSelectedIndex());
}
});
pn.add(coTemps_);
- btAnimation_.setIcon(Hydraulique1dResource.HYDRAULIQUE1D.getIcon("video"));
- btAnimation_.setToolTipText(Hydraulique1dResource.getS("Animation du temps courant"));
- btAnimation_.setMargin(new Insets(1,1,1,1));
- pn.add(btAnimation_);
-
+ EbliAnimationAction act=new EbliAnimationAction(new GrapheAnimation(this));
+ AbstractButton btAnimation=act.buildButton(EbliComponentFactory.INSTANCE);
+ btAnimation.setMargin(new Insets(1,1,1,1));
+ btAnimation.setEnabled(true);
+ pn.add(btAnimation);
}
return pn;
@@ -781,6 +875,10 @@
return iprofilCourant_;
}
+ public String getTitle() {
+ return lbTitle_.getText();
+ }
+
public void setTitle(String _s) {
lbTitle_.setText(_s);
}
@@ -1106,15 +1204,22 @@
* @return l'image produite dans la taille courante du composant.
*/
public BufferedImage produceImage(Map _params) {
- if (pnTableau_.hasFocus()) {
- BufferedImage i=new BufferedImage(pnTableau_.getTableau().getWidth(), pnTableau_.getTableau().getHeight(), BufferedImage.TYPE_3BYTE_BGR);
- pnTableau_.getTableau().paint(i.createGraphics());
- return i;
- }
+// if (pnTableau_.hasFocus()) {
+// BufferedImage i=new BufferedImage(pnTableau_.getTableau().getWidth(), pnTableau_.getTableau().getHeight(), BufferedImage.TYPE_3BYTE_BGR);
+// pnTableau_.getTableau().paint(i.createGraphics());
+// return i;
+// }
return graphe_.produceImage(null);
}
/**
+ * @return l'image produite pour une taille donnee.
+ */
+ public BufferedImage produceImage(int _w, int _h, Map _params) {
+ return graphe_.produceImage(_w, _h, null);
+ }
+
+ /**
* Le nombre de pages : 2. La premi\xE8re pour le graphique, la deuxi\xE8me pour le tableau.
* @return Le nombre de pages.
*/
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/Hydraulique1dGrapheProfil.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/Hydraulique1dGrapheProfil.java 2013-07-29 08:52:55 UTC (rev 8451)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/Hydraulique1dGrapheProfil.java 2013-07-29 08:55:53 UTC (rev 8452)
@@ -327,6 +327,13 @@
public BufferedImage produceImage(Map _params) {
return CtuluLibImage.produceImageForComponent(this, _params);
}
+
+ /**
+ * @return l'image produite pour une taille donnee.
+ */
+ public BufferedImage produceImage(int _w, int _h, Map _params) {
+ return CtuluLibImage.produceImageForComponent(this, _w, _h, _params);
+ }
/**
* Definit le mode interactif du graphique.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2013-07-29 15:31:18
|
Revision: 8457
http://sourceforge.net/p/fudaa/svn/8457
Author: bmarchan
Date: 2013-07-29 15:31:13 +0000 (Mon, 29 Jul 2013)
Log Message:
-----------
Mascaret : Integration de la fenetre profils en travers dans la fenetre des r?\195?\169sultats.
Modified Paths:
--------------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilPane.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHM_GraphesResultats.java
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java 2013-07-29 14:18:59 UTC (rev 8456)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java 2013-07-29 15:31:13 UTC (rev 8457)
@@ -15,6 +15,7 @@
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.awt.print.PageFormat;
+import java.awt.print.Printable;
import java.io.File;
import java.text.NumberFormat;
import java.util.ArrayList;
@@ -27,12 +28,14 @@
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
-import javax.swing.JScrollPane;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
import org.fudaa.ctulu.CtuluLibString;
import org.fudaa.ctulu.gui.CtuluFileChooser;
import org.fudaa.ctulu.image.CtuluImageExport;
import org.fudaa.dodico.hydraulique1d.metier.MetierDonneesHydrauliques;
+import org.fudaa.dodico.hydraulique1d.metier.MetierEtude1d;
import org.fudaa.dodico.hydraulique1d.metier.MetierHydraulique1d;
import org.fudaa.dodico.hydraulique1d.metier.MetierLaisse;
import org.fudaa.dodico.hydraulique1d.metier.MetierReseau;
@@ -50,6 +53,7 @@
import org.fudaa.fudaa.hydraulique1d.CGlobal;
import org.fudaa.fudaa.hydraulique1d.Hydraulique1dBaseApplication;
import org.fudaa.fudaa.hydraulique1d.Hydraulique1dResource;
+import org.fudaa.fudaa.hydraulique1d.editor.profil.Hydraulique1dProfilPane;
import org.fudaa.fudaa.hydraulique1d.graphe.Hydraulique1dGrapheResuBief;
import org.fudaa.fudaa.hydraulique1d.ihmhelper.Hydraulique1dIHMRepository;
import org.fudaa.fudaa.hydraulique1d.ihmhelper.Hydraulique1dIHM_ProfilResultats;
@@ -73,10 +77,17 @@
public class Hydraulique1dGraphesResultatsEditor
extends Hydraulique1dCustomizerImprimable {
- JButton btProfil_, btAvancer_, btAvancerVite_, btReculer_, btReculerVite_/*, btAnimation_*/;
+ JButton btAvancer_, btAvancerVite_, btReculer_, btReculerVite_/*, btAnimation_*/;
+ JButton btProfAvancer_, btProfAvancerVite_, btProfReculer_, btProfReculerVite_;
+ JButton btAnim_;
+ JButton btCustom_;
+ JButton btExportExcel_;
+ JButton btVoir_;
+ JButton btExport_;
private BuTabbedPane onglets_;
- private PanneauGraphesResultats panHydro;
- private PanneauGraphesResultats panQE = null;
+ private PanneauGraphesResultats pnHydro;
+ private PanneauGraphesResultats pnQE = null;
+ private Hydraulique1dProfilPane pnProfils_;
private MetierResultatsTemporelSpatial resultTempoSpatial_;
private MetierResultatsTemporelSpatial resultatsQE_;
MetierDonneesHydrauliques donnneHyd_;
@@ -90,34 +101,72 @@
public Hydraulique1dGraphesResultatsEditor(BDialogContent parent) {
super(parent, Hydraulique1dResource.HYDRAULIQUE1D.getString("Graphes Resultats"));
resultTempoSpatial_ = null;
+
+ setActionPanel(BPanneauNavigation.AUCUN);
+ buildNavigation();
// Create a tabbed pane
onglets_ = new BuTabbedPane();
+ onglets_.addChangeListener(new ChangeListener() {
+
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ switchNavigation();
+ }
+ });
- panHydro = new PanneauGraphesResultats(this);
- onglets_.insertTab(Hydraulique1dResource.HYDRAULIQUE1D.getString("R\xE9sultats hydrauliques"), null, new JScrollPane(panHydro), null, 0);
+ pnHydro = new PanneauGraphesResultats(this);
+ onglets_.addTab(Hydraulique1dResource.HYDRAULIQUE1D.getString("R\xE9sultats hydrauliques"), pnHydro);
+ pnProfils_ = new Hydraulique1dProfilPane(Hydraulique1dProfilPane.VOIR, Hydraulique1dProfilPane.PROFILS);
+ onglets_.addTab(Hydraulique1dResource.getS("Profils en travers"), pnProfils_);
+
getContentPane().add(onglets_/*, BuBorderLayout.CENTER*/);
- this.setActionPanel(
- EbliPreferences.DIALOG.VOIR | EbliPreferences.DIALOG.EXPORTER);
- if (FuLib.isWindows()) {
- addAction("Excel", "EXCEL");
- }
- addAction(Hydraulique1dResource.HYDRAULIQUE1D.getString("Personnaliser"), "PERSONNALISER");
- btProfil_ = (JButton) addAction(Hydraulique1dResource.HYDRAULIQUE1D.getString("Profils en travers"), "PROFILS");
- btReculerVite_ = (JButton) addAction("<<", BuResource.BU.getIcon("reculervite"), "POINTRECULERVITE");
- btReculer_ = (JButton) addAction("<", BuResource.BU.getIcon("reculer"), "POINTRECULER");
- btAvancer_ = (JButton) addAction(">", BuResource.BU.getIcon("avancer"), "POINTAVANCER");
- btAvancerVite_ = (JButton) addAction(">>", BuResource.BU.getIcon("avancervite"), "POINTAVANCERVITE");
-
- addAction("Animation", BuResource.BU.getIcon("video"), "ANIM");
aniAction_ = new EbliAnimationAction(new GrapheAnimation(this));
setNavPanel(BPanneauNavigation.FERMER);
pack();
}
+
+ private void buildNavigation() {
+ this.setActionPanel(EbliPreferences.DIALOG.VOIR | EbliPreferences.DIALOG.EXPORTER);
+
+ btVoir_=getActionPanel().getCustomAction("VOIR");
+ btExport_=getActionPanel().getCustomAction("EXPORTER");
+ btExportExcel_=(JButton) addAction("Excel", "EXCEL");
+ btCustom_= (JButton) addAction(Hydraulique1dResource.getS("Personnaliser"), "PERSONNALISER");
+ btReculerVite_ = (JButton) addAction(Hydraulique1dResource.getS("Reculer vite"), BuResource.BU.getIcon("reculervite"), "POINTRECULERVITE");
+ btReculer_ = (JButton) addAction(Hydraulique1dResource.getS("Reculer"), BuResource.BU.getIcon("reculer"), "POINTRECULER");
+ btAvancer_ = (JButton) addAction(Hydraulique1dResource.getS("Avancer"), BuResource.BU.getIcon("avancer"), "POINTAVANCER");
+ btAvancerVite_ = (JButton) addAction(Hydraulique1dResource.getS("Avancer vite"), BuResource.BU.getIcon("avancervite"), "POINTAVANCERVITE");
+ btAnim_= (JButton) addAction(Hydraulique1dResource.getS("Animation"), BuResource.BU.getIcon("video"), "ANIM");
+
+ btProfReculerVite_ = (JButton) addAction(Hydraulique1dResource.getS("Reculer vite"), BuResource.BU.getIcon("reculervite"), "PROFRECULERVITE");
+ btProfReculer_ = (JButton) addAction(Hydraulique1dResource.getS("Reculer"), BuResource.BU.getIcon("reculer"), "PROFRECULER");
+ btProfAvancer_ = (JButton) addAction(Hydraulique1dResource.getS("Avancer"), BuResource.BU.getIcon("avancer"), "PROFAVANCER");
+ btProfAvancerVite_ = (JButton) addAction(Hydraulique1dResource.getS("Avancer vite"), BuResource.BU.getIcon("avancervite"), "PROFAVANCERVITE");
+ }
+
+ private void switchNavigation() {
+ boolean btravers=onglets_.getSelectedComponent()==pnProfils_;
+
+ btVoir_.setVisible(!btravers);
+ btExport_.setVisible(!btravers);
+ btExportExcel_.setVisible(!btravers && FuLib.isWindows());
+ btCustom_.setVisible(!btravers);
+ btReculerVite_.setVisible(!btravers);
+ btReculer_.setVisible(!btravers);
+ btAvancer_.setVisible(!btravers);
+ btAvancerVite_.setVisible(!btravers);
+ btAnim_.setVisible(!btravers);
+
+ btProfReculerVite_.setVisible(btravers);
+ btProfReculer_.setVisible(btravers);
+ btProfAvancer_.setVisible(btravers);
+ btProfAvancerVite_.setVisible(btravers);
+ }
@Override
public void actionPerformed(ActionEvent _evt) {
@@ -145,7 +194,20 @@
deplaceVisu(1);
} else if ("POINTAVANCERVITE".equals(cmd)) {
deplaceVisu(5);
- } else if ("ANIM".equals(cmd)) {
+ }
+ else if ("PROFRECULERVITE".equals(cmd)) {
+ pnProfils_.setProfilCourant(pnProfils_.getProfilCourant() - 5);
+ }
+ else if ("PROFRECULER".equals(cmd)) {
+ pnProfils_.setProfilCourant(pnProfils_.getProfilCourant() - 1);
+ }
+ else if ("PROFAVANCER".equals(cmd)) {
+ pnProfils_.setProfilCourant(pnProfils_.getProfilCourant() + 1);
+ }
+ else if ("PROFAVANCERVITE".equals(cmd)) {
+ pnProfils_.setProfilCourant(pnProfils_.getProfilCourant() + 5);
+ }
+ else if ("ANIM".equals(cmd)) {
aniAction_.changeAll();
}
}
@@ -166,14 +228,14 @@
/*if (resultatsCasier == resultatsCasier_)
return;
resultatsCasier_= resultatsCasier;*/
- panHydro.setResultatsCasier(resultatsCasier);
+ pnHydro.setResultatsCasier(resultatsCasier);
}
public void setResultatsLiaison(MetierResultatsTemporelSpatial resultatsLiaison) {
/*if (resultatsLiaison == resultatsLiaison_)
return;
resultatsLiaison_= resultatsLiaison;*/
- panHydro.setResultatsLiaison(resultatsLiaison);
+ pnHydro.setResultatsLiaison(resultatsLiaison);
}
public void setResultatsQE(MetierResultatsTemporelSpatial resultatsQE) {
@@ -197,12 +259,12 @@
/*if (resultTempoSpatial == resultatsCasier_)
return;
resultatsCasier_ = resultTempoSpatial;*/
- panHydro.setResultatsCasier(resultTempoSpatial);
+ pnHydro.setResultatsCasier(resultTempoSpatial);
} else if (resultTempoSpatial.resultatsLiaison()) {
/*if (resultTempoSpatial == resultatsLiaison_)
return;
resultatsLiaison_ = resultTempoSpatial;*/
- panHydro.setResultatsLiaison(resultTempoSpatial);
+ pnHydro.setResultatsLiaison(resultTempoSpatial);
} //Utiliser uniquement (je pense) \xE0 l'ouverture d'un fichier r\xE9sultats sans projet
else if (resultTempoSpatial.resultatsTracer()) {
if (resultTempoSpatial == resultatsQE_) {
@@ -210,13 +272,13 @@
}
resultatsQE_ = resultTempoSpatial;
//panHydro.setResultats(resultTempoSpatial);
- panQE.setResultats(resultTempoSpatial);
+ pnQE.setResultats(resultTempoSpatial);
} else {
if (resultTempoSpatial == resultTempoSpatial_) {
return;
}
resultTempoSpatial_ = resultTempoSpatial;
- panHydro.setResultats(resultTempoSpatial_);
+ pnHydro.setResultats(resultTempoSpatial_);
}
setValeurs();
@@ -235,28 +297,34 @@
}
reseau_ = reseau;
}
+ if (_n instanceof MetierEtude1d) {
+ pnProfils_.setEtude((MetierEtude1d)_n);
+ }
}
- public PanneauGraphesResultats getSelectedPanel() {
+ public PanneauGraphesResultats getSelectedProfLongPanel() {
//((PanneauGraphesResultats) onglets_.getSelectedComponent().); => retourne le scrollPane
- if (onglets_.getSelectedIndex() == 0) {
- return panHydro;
- } else //if (onglets_.getSelectedIndex()==1)
+ if (onglets_.getSelectedComponent() == pnHydro) {
+ return pnHydro;
+ } else if (onglets_.getSelectedComponent()==pnQE)
{
- return panQE;
+ return pnQE;
}
+ else {
+ return null;
+ }
}
-
+
public Hydraulique1dGrapheResuBief getSelectedGraph() {
- return getSelectedPanel().bgraphe_;
+ return getSelectedProfLongPanel().bgraphe_;
}
public BuList getListePasTpsSection() {
- return getSelectedPanel().lstPasTpsSection_;
+ return getSelectedProfLongPanel().lstPasTpsSection_;
}
public BuList getListeBiefCasierLiaison() {
- return getSelectedPanel().lstBiefCasierLiaison_;
+ return getSelectedProfLongPanel().lstBiefCasierLiaison_;
}
/**
@@ -268,7 +336,16 @@
*/
@Override
public int print(Graphics _g, PageFormat _format, int _page) {
- return getSelectedGraph().print(_g, _format, _page);
+ if (onglets_.getSelectedComponent()==pnQE) {
+ return pnQE.bgraphe_.print(_g, _format, _page);
+ }
+ else if (onglets_.getSelectedComponent()==pnHydro) {
+ return pnHydro.bgraphe_.print(_g, _format, _page);
+ }
+ else if (onglets_.getSelectedComponent()==pnProfils_) {
+ return pnProfils_.print(_g, _format, _page);
+ }
+ return Printable.NO_SUCH_PAGE;
}
/**
@@ -291,11 +368,11 @@
//Si la fusion a reussie ...
//On fournit les resultats fusionn\xE9s au pannel hydraulique et on modifie le titre de l'onglet
- panHydro.setResultats(resFus);
+ pnHydro.setResultats(resFus);
onglets_.setTitleAt(0, getS("R\xE9sultats hydrauliques et qualit\xE9 d'eau"));
//Si on arrive a fusionner les resultats , on supprime l'onglet QE eventuellment cr\xE9\xE9 lors d'un calcul pr\xE9c\xE9dent avec fusion impossible
- if (panQE != null) {
- onglets_.removeTabAt(1);
+ if (pnQE != null) {
+ onglets_.remove(pnQE);
}
@@ -304,9 +381,9 @@
//Si la fusion est impossible
System.out.println(getS("Fusion des resultats Tracer et Mascaret impossible") + " :" + e.getMessage());
//On cr\xE9\xE9 le panel
- if (panQE == null) {
- panQE = new PanneauGraphesResultats(this);
- onglets_.insertTab(getS("R\xE9sultats qualit\xE9 d'eau"), null, new JScrollPane(panQE), null, 1);
+ if (pnQE == null) {
+ pnQE = new PanneauGraphesResultats(this);
+ onglets_.insertTab(getS("R\xE9sultats qualit\xE9 d'eau"), null, pnQE, null, 1);
//On modifie le titre de l'onglet hydro
onglets_.setTitleAt(0, getS("R\xE9sultats hydrauliques"));
}
@@ -318,22 +395,20 @@
}
//On fournit les valeurs de QE au panel QE, et on set les valeurs
- panQE.setResultats(resultatsQE_);
- panQE.setValeurs();
- panQE.setResultatsLiaison(null);//Jamais de casier avec la qualit\xE9 d'eau
- panQE.setResultatsCasier(null);
+ pnQE.setResultats(resultatsQE_);
+ pnQE.setValeurs();
+ pnQE.setResultatsLiaison(null);//Jamais de casier avec la qualit\xE9 d'eau
+ pnQE.setResultatsCasier(null);
//e.printStackTrace();
} finally { //Dans tous les cas...
//On set les valeurs hydrauliques et les profils si disponible
- panHydro.setValeurs();
- btProfil_.setVisible((reseau_ != null));
+ pnHydro.setValeurs();
}
} else {
//Le cas sans qualit\xE9 d'eau.........
- panHydro.setValeurs();
- btProfil_.setVisible((reseau_ != null));
+ pnHydro.setValeurs();
onglets_.setTitleAt(0, getS("R\xE9sultats hydrauliques"));
}
@@ -360,11 +435,12 @@
}
protected void visualiser(boolean calculBorne) {
- if (onglets_.getSelectedIndex() == 0) {
- panHydro.visualiser(calculBorne);
- } else {
- panQE.visualiser(calculBorne);
+ if (onglets_.getSelectedComponent() == pnHydro) {
+ pnHydro.visualiser(calculBorne);
}
+ else if (onglets_.getSelectedComponent() == pnQE) {
+ pnQE.visualiser(calculBorne);
+ }
}
/**
@@ -449,10 +525,10 @@
protected List<GrapheComponent> getListLaisse() {
List<GrapheComponent> listeLaisse = new ArrayList<GrapheComponent>();
- if (getSelectedPanel().cbLaisse_.isSelected()) {
+ if (getSelectedProfLongPanel().cbLaisse_.isSelected()) {
MetierLaisse[] laisses = donnneHyd_.laisses();
//Si Profil spatial
- if (getSelectedPanel().rbSpatial_.isSelected()) {
+ if (getSelectedProfLongPanel().rbSpatial_.isSelected()) {
Vector<Valeur> vLaissesBief = new Vector<Valeur>();
for (int j = getListeBiefCasierLiaison().getMinSelectionIndex(); j <= getListeBiefCasierLiaison().getMaxSelectionIndex(); j++) {
if (j < reseau_.biefs().length) {
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilPane.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilPane.java 2013-07-29 14:18:59 UTC (rev 8456)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilPane.java 2013-07-29 15:31:13 UTC (rev 8457)
@@ -48,6 +48,7 @@
import javax.swing.event.ListSelectionListener;
import org.fudaa.ctulu.gui.CtuluDialog;
+import org.fudaa.dodico.hydraulique1d.metier.EnumMetierRegime;
import org.fudaa.dodico.hydraulique1d.metier.MetierBief;
import org.fudaa.dodico.hydraulique1d.metier.MetierEtude1d;
import org.fudaa.dodico.hydraulique1d.metier.MetierReseau;
@@ -367,6 +368,7 @@
public void setEtude(MetierEtude1d _etude) {
etude_=_etude;
+ isTranscritique_=etude_.paramGeneraux().regime().value() == EnumMetierRegime._TRANSCRITIQUE;
mdlBief_=new AbstractListModel() {
@@ -377,7 +379,7 @@
@Override
public Object getElementAt(int index) {
- return etude_.reseau().biefs()[index];
+ return Hydraulique1dResource.getS("Bief")+" "+(index+1);
}
};
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHM_GraphesResultats.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHM_GraphesResultats.java 2013-07-29 14:18:59 UTC (rev 8456)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHM_GraphesResultats.java 2013-07-29 15:31:13 UTC (rev 8457)
@@ -44,6 +44,7 @@
if (res == null) {
edit_.setObject(etude_.donneesHydro());
edit_.setObject(etude_.reseau());
+ edit_.setObject(etude_);
//Test des casiers et liaisons
if (etude_.reseau().casiers().length > 0) {
edit_.setResultatsCasier(
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2013-07-29 15:44:30
|
Revision: 8459
http://sourceforge.net/p/fudaa/svn/8459
Author: bmarchan
Date: 2013-07-29 15:44:27 +0000 (Mon, 29 Jul 2013)
Log Message:
-----------
Mascaret : clean sources
Modified Paths:
--------------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHMRepository.java
Removed Paths:
-------------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHM_ProfilResultats.java
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java 2013-07-29 15:31:59 UTC (rev 8458)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dGraphesResultatsEditor.java 2013-07-29 15:44:27 UTC (rev 8459)
@@ -55,8 +55,6 @@
import org.fudaa.fudaa.hydraulique1d.Hydraulique1dResource;
import org.fudaa.fudaa.hydraulique1d.editor.profil.Hydraulique1dProfilPane;
import org.fudaa.fudaa.hydraulique1d.graphe.Hydraulique1dGrapheResuBief;
-import org.fudaa.fudaa.hydraulique1d.ihmhelper.Hydraulique1dIHMRepository;
-import org.fudaa.fudaa.hydraulique1d.ihmhelper.Hydraulique1dIHM_ProfilResultats;
import com.memoire.bu.BuCommonImplementation;
import com.memoire.bu.BuCommonInterface;
@@ -184,8 +182,6 @@
exporter();
} else if ("EXCEL".equals(cmd)) {
lanceExcel();
- } else if ("PROFILS".equals(cmd)) {
- profils();
} else if ("POINTRECULERVITE".equals(cmd)) {
deplaceVisu(-5);
} else if ("POINTRECULER".equals(cmd)) {
@@ -414,12 +410,6 @@
}
- private void profils() {
- Hydraulique1dIHM_ProfilResultats ihm = Hydraulique1dIHMRepository.getInstance().PROFIL_RESULTATS();
-
- ihm.editer();
- }
-
protected void personnaliser() {
BuCommonInterface app =
(BuCommonInterface) Hydraulique1dBaseApplication.FRAME;
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHMRepository.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHMRepository.java 2013-07-29 15:31:59 UTC (rev 8458)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHMRepository.java 2013-07-29 15:44:27 UTC (rev 8459)
@@ -284,9 +284,6 @@
public Hydraulique1dIHM_Planimetrage2 PLANIMETRAGE2() {
return (Hydraulique1dIHM_Planimetrage2) getIhmHelper("Planimetrage2");
}
- public Hydraulique1dIHM_ProfilResultats PROFIL_RESULTATS() {
- return (Hydraulique1dIHM_ProfilResultats) getIhmHelper("ProfilResultats");
- }
public Hydraulique1dIHM_Bief BIEF() {
return (Hydraulique1dIHM_Bief) getIhmHelper("Bief");
}
Deleted: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHM_ProfilResultats.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHM_ProfilResultats.java 2013-07-29 15:31:59 UTC (rev 8458)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/ihmhelper/Hydraulique1dIHM_ProfilResultats.java 2013-07-29 15:44:27 UTC (rev 8459)
@@ -1,60 +0,0 @@
-/*
- * @file Hydraulique1dIHM_ProfilResultats.java
- * @creation 2004-10-18
- * @modification $Date: 2007-11-20 11:43:15 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2004 EDF/LNHE
- * @mail de...@fu...
- */
-package org.fudaa.fudaa.hydraulique1d.ihmhelper;
-import javax.swing.JComponent;
-
-import org.fudaa.dodico.hydraulique1d.metier.EnumMetierRegime;
-import org.fudaa.dodico.hydraulique1d.metier.MetierEtude1d;
-import org.fudaa.fudaa.hydraulique1d.Hydraulique1dBaseApplication;
-import org.fudaa.fudaa.hydraulique1d.Hydraulique1dResource;
-import org.fudaa.fudaa.hydraulique1d.editor.profil.Hydraulique1dProfilEditor;
-
-import com.memoire.bu.BuAssistant;
-/**
- * Classe faisant le lien entre l'\xE9diteur de profil depuis l'\xE9diteur des r\xE9sultats graphique et l'aide.
- * G\xE9r\xE9 par Hydraulique1dIHMRepository.<br>
- * Utilis\xE9 par Hydraulique1dGraphesResultatsEditor.<br>
- * @version $Revision: 1.8 $ $Date: 2007-11-20 11:43:15 $ by $Author: bmarchan $
- * @author Jean-Marc Lacombe
- */
-public class Hydraulique1dIHM_ProfilResultats extends Hydraulique1dIHM_Base {
- private Hydraulique1dProfilEditor edit_;
- public Hydraulique1dIHM_ProfilResultats(MetierEtude1d e) {
- super(e);
- }
-
- @Override
- public void editer() {
- if (etude_.reseau() == null) return;
- if (etude_.reseau().biefs() == null) return;
-
- if (edit_ == null) {
- edit_= new Hydraulique1dProfilEditor(
- Hydraulique1dProfilEditor.VOIR,
- Hydraulique1dProfilEditor.PROFILS);
- installContextHelp(edit_);
- listenToEditor(edit_);
- BuAssistant ass= Hydraulique1dResource.getAssistant();
- if (ass != null)
- ass.addEmitters(edit_);
- }
-
- edit_.setEtude(etude_);
- edit_.setIsTranscritique(etude_.paramGeneraux().regime().value() == EnumMetierRegime._TRANSCRITIQUE);
- edit_.show();
- }
- @Override
- protected void installContextHelp(JComponent e) {
- if (e == null)
- return;
- ((Hydraulique1dBaseApplication)Hydraulique1dBaseApplication.FRAME)
- .getImplementation()
- .installContextHelp(e.getRootPane(), "mascaret/graphes_resultats.html");
- }
-}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2013-12-09 15:33:20
|
Revision: 8540
http://sourceforge.net/p/fudaa/svn/8540
Author: bmarchan
Date: 2013-12-09 15:33:17 +0000 (Mon, 09 Dec 2013)
Log Message:
-----------
Mascaret : Algo lissage g?\195?\169n?\195?\169rique
Modified Paths:
--------------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/Hydraulique1dProfilModel.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dLissageProfilEditor.java
Added Paths:
-----------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/CourbeLissable.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/Hydraulique1DUtils.java
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/Hydraulique1dProfilModel.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/Hydraulique1dProfilModel.java 2013-12-09 15:30:51 UTC (rev 8539)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/Hydraulique1dProfilModel.java 2013-12-09 15:33:17 UTC (rev 8540)
@@ -32,6 +32,8 @@
import org.fudaa.dodico.hydraulique1d.metier.MetierProfil;
import org.fudaa.dodico.hydraulique1d.metier.geometrie.MetierPoint2D;
+import org.fudaa.fudaa.hydraulique1d.util.CourbeLissable;
+import org.fudaa.fudaa.hydraulique1d.util.Hydraulique1DUtils;
/**
* Mod\xE8le de donn\xE9e utilis\xE9 pour repr\xE9senter un profil.
@@ -41,7 +43,7 @@
* @version $Revision: 1.15 $ $Date: 2007-11-20 11:43:05 $ by $Author: bmarchan $
* @author Jean-Marc Lacombe, Bertrand Marchand
*/
-public final class Hydraulique1dProfilModel implements Cloneable, Hydraulique1dProfilI {
+public final class Hydraulique1dProfilModel implements Cloneable, Hydraulique1dProfilI, CourbeLissable {
/** Insertion : Mask zone vide */
public static final int MASK_ZONE_VIDE=0;
/** Insertion : Mask zone stockage gauche */
@@ -1494,6 +1496,31 @@
fireDataChanged(Hydraulique1dProfilDataEvent.GLOBAL_MODIFICATION,null);
}
+ @Override
+ public int getNbPoints() {
+ return this.getPoints().length;
+ }
+
+ @Override
+ public double getX(int _ipt) {
+ return this.getCurv(_ipt);
+ }
+
+ @Override
+ public double getY(int _ipt) {
+ return this.getZ(_ipt);
+ }
+
+ @Override
+ public boolean canModifyY(int _ipt) {
+ return (_ipt != this.getIndiceLitMajGa() && _ipt != this.getIndiceLitMinGa() && _ipt != this.getIndiceLitMinDr() && _ipt != this.getIndiceLitMajDr());
+ }
+
+ @Override
+ public void setY(int _ipt, double _y) {
+ this.getPoint(_ipt).y(_y);
+ }
+
/**
* Lisse le profil suivant une m\xE9thode m\xE9diane/moyenne glissante.
* @param _meth La m\xE9thode de lissage (0: Mediane, 1: Moyenne)
@@ -1507,56 +1534,8 @@
indicesNonNuls_=null;
supprimePointsNuls(); // On enleve les points nuls, problematique des les m\xE9thodes globales.
- // Pour les y modifi\xE9s on travaille sur un tableau temporaire.
- double[] ypts=new double[nb];
- // Les y des points dans la fenetre
- Vector<Double> vyptsFen=new Vector<Double>();
+ Hydraulique1DUtils.lisser(this, _l, _meth, true);
- for (int i=0; i<nb; i++) {
- vyptsFen.clear();
-
- double xpt=((Hydraulique1dPoint)listePoints_.get(i)).x();
- vyptsFen.add(listePoints_.get(i).Y());
-
- // Les points supportant des limites ne doivent pas \xEAtre modifi\xE9s.
- if (i!=getIndiceLitMajGa() && i!=getIndiceLitMinGa() && i!=getIndiceLitMinDr() && i!=getIndiceLitMajDr()) {
- Hydraulique1dPoint pt;
-
- int ind=i-1;
- // Les points pr\xE9c\xE9dents (on passe les points nuls)
- while (ind>=0&&Math.abs((pt=listePoints_.get(ind)).x()-xpt)<_l) {
- vyptsFen.add(pt.Y());
- ind--;
- }
- // Les points suivants (on passe les points nuls)
- ind=i+1;
- while (ind<nb&&Math.abs((pt=listePoints_.get(ind)).x()-xpt)<_l) {
- vyptsFen.add(pt.Y());
- ind++;
- }
- }
-
- Double[] yptsFen=vyptsFen.toArray(new Double[vyptsFen.size()]);
-
- // M\xE9diane glissante : La moyenne des 2 valeurs centrales apr\xE8s tri des valeurs.
- if (_meth==0) {
- Arrays.sort(yptsFen);
- if (yptsFen.length%2==1)
- ypts[i]=yptsFen[yptsFen.length/2].doubleValue();
- else
- ypts[i]=(yptsFen[yptsFen.length/2].doubleValue()+yptsFen[yptsFen.length/2-1].doubleValue())/2.;
- }
-
- // Moyenne glissante : La moyenne de toutes les valeurs.
- else {
- for (int j=0; j<yptsFen.length; j++) ypts[i]+=yptsFen[j].doubleValue();
- ypts[i]/=yptsFen.length;
- }
- }
-
- // Mise a jour du profil
- for (int i=0; i<nb; i++) ((Hydraulique1dPoint)listePoints_.get(i)).y(ypts[i]);
-
fireDataChanged(Hydraulique1dProfilDataEvent.GLOBAL_MODIFICATION,null);
}
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dLissageProfilEditor.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dLissageProfilEditor.java 2013-12-09 15:30:51 UTC (rev 8539)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/Hydraulique1dLissageProfilEditor.java 2013-12-09 15:33:17 UTC (rev 8540)
@@ -23,11 +23,13 @@
import javax.swing.JPanel;
import javax.swing.border.Border;
+import org.fudaa.fudaa.hydraulique1d.Hydraulique1dResource;
+import org.fudaa.fudaa.hydraulique1d.util.Hydraulique1DUtils;
+
import com.memoire.bu.BuButton;
import com.memoire.bu.BuGridLayout;
import com.memoire.bu.BuResource;
import com.memoire.bu.BuTextField;
-import org.fudaa.fudaa.hydraulique1d.Hydraulique1dResource;
/**
* Editeur pour le choix de la m\xE9thode de lissage.
@@ -35,8 +37,6 @@
* @version 1.0
*/
public class Hydraulique1dLissageProfilEditor extends JDialog {
- public static final int LISSAGE_MOYENNE=1;
- public static final int LISSAGE_MEDIANE=0;
private JPanel pnPrinc_=new JPanel();
private Border bdpnPrinc_;
@@ -51,6 +51,7 @@
private JLabel lbLargeur_=new JLabel();
private BuTextField tfLargeur_=BuTextField.createDoubleField();
private JLabel lbLargeurUnite_=new JLabel();
+ private int[] methods_=new int[]{Hydraulique1DUtils.LISSAGE_MEDIANE,Hydraulique1DUtils.LISSAGE_MOYENNE};
public int reponse=0;
public Hydraulique1dLissageProfilEditor(Frame parent) {
@@ -66,6 +67,20 @@
pack();
setLocationRelativeTo(parent);
}
+
+ public void setChoosableMethods(int... _methods) {
+ methods_=_methods;
+
+ coMethode_.removeAllItems();
+ for (int i=0; i<_methods.length; i++) {
+ if (_methods[i]==Hydraulique1DUtils.LISSAGE_MEDIANE) {
+ coMethode_.addItem(Hydraulique1dResource.HYDRAULIQUE1D.getString("Par m\xE9diane glissante"));
+ }
+ else {
+ coMethode_.addItem(Hydraulique1dResource.HYDRAULIQUE1D.getString("Par moyenne glissante"));
+ }
+ }
+ }
private void jbInit() throws Exception {
bdpnPrinc_=BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(Color.white, new Color(165, 163, 151)),
@@ -136,7 +151,7 @@
* @return La m\xE9thode utilis\xE9e.
*/
public int getMethode() {
- return coMethode_.getSelectedIndex();
+ return methods_[coMethode_.getSelectedIndex()];
}
/**
Added: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/CourbeLissable.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/CourbeLissable.java (rev 0)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/CourbeLissable.java 2013-12-09 15:33:17 UTC (rev 8540)
@@ -0,0 +1,39 @@
+package org.fudaa.fudaa.hydraulique1d.util;
+
+/**
+ * A implementer pour l'algorithme de lissage.
+ * @author Bertrand Marchand (mar...@de...)
+ *
+ */
+public interface CourbeLissable {
+
+ /**
+ * @return Le nombre de points de la courbe
+ */
+ public int getNbPoints();
+
+ /**
+ * @param _ipt L'indice du point
+ * @return La coordonn\xE9e X du point
+ */
+ public double getX(int _ipt);
+
+ /**
+ * @param _ipt L'indice du point
+ * @return La coordonn\xE9e Y du point
+ */
+ public double getY(int _ipt);
+
+ /**
+ * @param _ipt L'indice du point
+ * @return True si le point peut \xEAtre liss\xE9.
+ */
+ public boolean canModifyY(int _ipt);
+
+ /**
+ * Modification du point donn\xE9 avec la valeur donn\xE9e.
+ * @param _ipt L'indice du point
+ * @param _y La valeur y.
+ */
+ public void setY(int _ipt, double _y);
+}
Property changes on: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/CourbeLissable.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/Hydraulique1DUtils.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/Hydraulique1DUtils.java (rev 0)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/Hydraulique1DUtils.java 2013-12-09 15:33:17 UTC (rev 8540)
@@ -0,0 +1,81 @@
+package org.fudaa.fudaa.hydraulique1d.util;
+
+import java.util.Arrays;
+import java.util.Vector;
+
+/**
+ * Des algorithmes de calcul g\xE9n\xE9raux.
+ *
+ * @author Bertrand Marchand (mar...@de...)
+ */
+public class Hydraulique1DUtils {
+ /** Types de lissage */
+ public static final int LISSAGE_MOYENNE=1;
+ public static final int LISSAGE_MEDIANE=0;
+
+ /**
+ * @param _crb La courbe a lisser
+ * @param _lissPtExtr True : Les points extremit\xE9s sont liss\xE9s.
+ * @param _meth La m\xE9thode de lissage.
+ * @param _larg La largeur de fenetre de lissage.
+ */
+ public static void lisser(CourbeLissable _crb, double _larg, int _meth, boolean _lissPtExtr) {
+
+ int nb=_crb.getNbPoints();
+ if (nb==0) return;
+
+ // Pour les y modifi\xE9s on travaille sur un tableau temporaire.
+ double[] ypts=new double[nb];
+ // Les y des points dans la fenetre
+ Vector<Double> vyptsFen=new Vector<Double>();
+
+ double xmax=_crb.getX(nb-1);
+
+ for (int i=0; i<nb; i++) {
+ vyptsFen.clear();
+
+ double xpt=_crb.getX(i);
+ vyptsFen.add(_crb.getY(i));
+
+ boolean isPtExtr = xpt<_larg/2 | xpt>xmax-_larg/2;
+
+ // Les points supportant des limites ne doivent pas \xEAtre modifi\xE9s.
+ if (_crb.canModifyY(i) && (_lissPtExtr | !isPtExtr)) {
+
+ int ind=i-1;
+ // Les points pr\xE9c\xE9dents (on passe les points nuls)
+ while (ind>=0&&Math.abs(_crb.getX(ind)-xpt)<_larg/2) {
+ vyptsFen.add(_crb.getY(ind));
+ ind--;
+ }
+ // Les points suivants (on passe les points nuls)
+ ind=i+1;
+ while (ind<nb&&Math.abs(_crb.getX(ind)-xpt)<_larg/2) {
+ vyptsFen.add(_crb.getY(ind));
+ ind++;
+ }
+ }
+
+ Double[] yptsFen=vyptsFen.toArray(new Double[vyptsFen.size()]);
+
+ // M\xE9diane glissante : La moyenne des 2 valeurs centrales apr\xE8s tri des valeurs.
+ if (_meth==LISSAGE_MEDIANE) {
+ Arrays.sort(yptsFen);
+ if (yptsFen.length%2==1)
+ ypts[i]=yptsFen[yptsFen.length/2].doubleValue();
+ else
+ ypts[i]=(yptsFen[yptsFen.length/2].doubleValue()+yptsFen[yptsFen.length/2-1].doubleValue())/2.;
+ }
+
+ // Moyenne glissante : La moyenne de toutes les valeurs.
+ else {
+ for (int j=0; j<yptsFen.length; j++) ypts[i]+=yptsFen[j].doubleValue();
+ ypts[i]/=yptsFen.length;
+ }
+ }
+
+ // Mise a jour du profil
+ for (int i=0; i<nb; i++) _crb.setY(i,ypts[i]);
+ }
+
+}
Property changes on: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/util/Hydraulique1DUtils.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2014-10-21 21:29:05
|
Revision: 8885
http://sourceforge.net/p/fudaa/svn/8885
Author: deniger
Date: 2014-10-21 21:28:53 +0000 (Tue, 21 Oct 2014)
Log Message:
-----------
maj couleur par defaut ?\195?\160 similaire
Modified Paths:
--------------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/GrapheUpdateAction.java
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilLongPane.java
Added Paths:
-----------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/MascaretXYAreaRendererProfilLong.java
Removed Paths:
-------------
trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/GrapheUpdateAction.java
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/GrapheUpdateAction.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/GrapheUpdateAction.java 2014-10-21 15:32:20 UTC (rev 8884)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/GrapheUpdateAction.java 2014-10-21 21:28:53 UTC (rev 8885)
@@ -40,7 +40,6 @@
@Override
public void valueChanged(ListSelectionEvent e) {
- System.out.println("changement toto!!");
if(isAuto){
//-- do the automatic update --//
pane.visualiser(true,true);
Modified: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilLongPane.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilLongPane.java 2014-10-21 15:32:20 UTC (rev 8884)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/editor/profil/Hydraulique1dProfilLongPane.java 2014-10-21 21:28:53 UTC (rev 8885)
@@ -293,7 +293,6 @@
profilsList.add(modelProfilList.get(indices[i]));
double z = calculeCoteZProfil(lsBief_.getSelectedIndex(), indices[i], 0);
- System.out.println("z de "+modelProfilList.get(indices[i]).nom()+" = "+ z);
}
getDataset().setBiefProfilModels(profilsList.toArray(new Hydraulique1dProfilModel[profilsList.size()]));
Deleted: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/GrapheUpdateAction.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/GrapheUpdateAction.java 2014-10-21 15:32:20 UTC (rev 8884)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/GrapheUpdateAction.java 2014-10-21 21:28:53 UTC (rev 8885)
@@ -1,54 +0,0 @@
-package org.fudaa.fudaa.hydraulique1d.editor;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-/**
- * Action to update automatically the results when user perform a change.
- * @author Adrien
- *
- */
-public class GrapheUpdateAction implements ActionListener,ListSelectionListener{
-
-
- public boolean isAuto = true;
- private Hydraulique1dGraphesResultatsEditor pane;
-
- public GrapheUpdateAction(Hydraulique1dGraphesResultatsEditor p) {
- pane = p;
- pane.getPnHydro().getLstBiefCasierLiaison_().addListSelectionListener(this);
- pane.getPnHydro().getLstPasTpsSection_().addListSelectionListener(this);
- pane.getPnHydro().getLstVar().addListSelectionListener(this);
- pane.getPnHydro().getCheckboxMajAuto().addActionListener(this);
-
- }
-
-
- @Override
- public void actionPerformed(ActionEvent e) {
- if(e.getSource() == pane.getPnHydro().getCheckboxMajAuto())
- isAuto = pane.getPnHydro().getCheckboxMajAuto().isSelected();
- else if(isAuto){
- //-- do the automatic update --//
- pane.visualiser(true,true);
-
- }
- }
-
-
- @Override
- public void valueChanged(ListSelectionEvent e) {
- System.out.println("changement toto!!");
- if(isAuto){
- //-- do the automatic update --//
- pane.visualiser(true,true);
-
- }
-
- }
-
-
-
-}
Added: trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/MascaretXYAreaRendererProfilLong.java
===================================================================
--- trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/MascaretXYAreaRendererProfilLong.java (rev 0)
+++ trunk/soft/fudaa-mascaret/ui/src/main/java/org/fudaa/fudaa/hydraulique1d/graphe/MascaretXYAreaRendererProfilLong.java 2014-10-21 21:28:53 UTC (rev 8885)
@@ -0,0 +1,210 @@
+package org.fudaa.fudaa.hydraulique1d.graphe;
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.Paint;
+import java.awt.Polygon;
+import java.awt.Shape;
+import java.awt.Stroke;
+import java.awt.geom.Line2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+import java.util.List;
+import org.jfree.chart.axis.ValueAxis;
+import org.jfree.chart.plot.CrosshairState;
+import org.jfree.chart.plot.PlotRenderingInfo;
+import org.jfree.chart.plot.XYPlot;
+import org.jfree.chart.renderer.xy.XYAreaRenderer2;
+import org.jfree.chart.renderer.xy.XYItemRendererState;
+import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
+import org.jfree.data.xy.XYDataset;
+/**
+ * Renderer pour remplir la zone du profil long
+ * @author Adrien Hadoux
+ *
+ */
+public class MascaretXYAreaRendererProfilLong extends XYAreaRenderer2{
+
+
+ public static class AreaPoint {
+ public double x;
+ public AreaPoint(double x, double y) {
+ super();
+ this.x = x;
+ this.y = y;
+ }
+ public double y;
+ }
+
+ XYLineAndShapeRenderer defaultRenderer;
+ boolean isNiveauEau = true;
+
+ boolean traceProfil = true;
+
+ private List<Integer> itemLineToDraw;
+ private boolean drawProfileLine=true;
+ final static int CURVE_SERIE = 0;
+ final static int End_CURVE_SERIE = 0;
+
+ public MascaretXYAreaRendererProfilLong(XYLineAndShapeRenderer defaultRenderer) {
+ this.defaultRenderer = defaultRenderer;
+ setPaint(new Color(132,166,188));
+ //setStroke(new BasicStroke(4));
+ }
+
+
+ private boolean mustDrawPolygone(double x1, double y1,XYDataset dataset, int item) {
+ double valNiveauEau = ((Hydraulique1dGrapheProfilLongDataset)dataset).getNiveauBas(CURVE_SERIE, item);
+ return isNiveauEau && y1 >= valNiveauEau;
+ }
+
+ /**
+ * Build the polygon corresponding to the shape between the curve and the level f water.
+ * @param domainAxis
+ * @param rangeAxis
+ * @param dataset
+ * @return
+ */
+ public List<Shape> buildShapeProfilLong(ValueAxis domainAxis, ValueAxis rangeAxis,XYDataset dataset, XYPlot plot, Rectangle2D dataArea) {
+ List<AreaPoint> listcoordonnees = new ArrayList<AreaPoint>();
+ List<AreaPoint> listniveauEau = new ArrayList<AreaPoint>();
+ itemLineToDraw = new ArrayList<Integer>();
+ List<Shape>listShape = new ArrayList<Shape>();
+ boolean first = true;
+ boolean last = false;
+ AreaPoint firstA=null, firstB=null, lastA = null, lastB = null;
+ //-- step 1 - determine all the point under the level --//
+ for(int item=0; item< dataset.getItemCount(CURVE_SERIE);item++){
+ double x = dataset.getXValue(CURVE_SERIE, item);
+ double y = dataset.getYValue(CURVE_SERIE, item);
+ double valNiveauEau = ((Hydraulique1dGrapheProfilLongDataset)dataset).getNiveauBas(CURVE_SERIE, item);
+ if(y>=valNiveauEau) {
+ AreaPoint p = new AreaPoint(x,y);
+ itemLineToDraw.add(item);
+ //-- on ajoute a la liste des coordonn\xE9es le point p mais aussi le point niveau d'eau --//
+ Line2D.Double shape = new Line2D.Double((int)domainAxis.valueToJava2D(p.x, dataArea, plot.getDomainAxisEdge())
+ ,(int)rangeAxis.valueToJava2D(p.y, dataArea, plot.getRangeAxisEdge()),
+ (int)domainAxis.valueToJava2D(p.x, dataArea, plot.getDomainAxisEdge()),
+ (int)rangeAxis.valueToJava2D(((Hydraulique1dGrapheProfilLongDataset)dataset).getNiveauBas(0, item), dataArea, plot.getRangeAxisEdge()));
+ listShape.add(shape);
+
+
+ listcoordonnees.add(p);
+ listniveauEau.add(new AreaPoint(x,valNiveauEau));
+
+ }
+ }
+
+
+ //-- step 4 - construct poly --//
+ Polygon poly = new Polygon();
+ for(AreaPoint p: listcoordonnees) {
+ poly.addPoint(
+ (int)domainAxis.valueToJava2D(p.x, dataArea, plot.getDomainAxisEdge()),
+ (int)rangeAxis.valueToJava2D(p.y, dataArea, plot.getRangeAxisEdge()));
+ }
+ //-- ensuite on termine par la liste des points d'eau dans l'ordre inverse pour avoir l'enveloppe convexe--//
+ for(int i=listniveauEau.size()-1;i>=0;i--) {
+ AreaPoint p = listniveauEau.get(i);
+ poly.addPoint(
+ (int)domainAxis.valueToJava2D(p.x, dataArea, plot.getDomainAxisEdge()),
+ (int)rangeAxis.valueToJava2D(p.y, dataArea, plot.getRangeAxisEdge()));
+ }
+
+
+
+ listShape.add(0,poly);
+ return listShape;
+
+ }
+
+ public void drawItem(Graphics2D g2,
+ XYItemRendererState state,
+ Rectangle2D dataArea,
+ PlotRenderingInfo info,
+ XYPlot plot,
+ ValueAxis domainAxis,
+ ValueAxis rangeAxis,
+ XYDataset dataset,
+ int series,
+ int item,
+ CrosshairState crosshairState,
+ int pass) {
+
+ if (!getItemVisible(series, item)) {
+ return;
+ }
+ // get the data point...
+ double x1 = dataset.getXValue(series, item);
+ double y1 = dataset.getYValue(series, item);
+ if (Double.isNaN(y1)) {
+ y1 = 0.0;
+ }
+
+ List<Shape> hotspot = null;
+
+
+ if( series == CURVE_SERIE && mustDrawPolygone(x1,y1,dataset, item)) {
+ hotspot = buildShapeProfilLong(domainAxis, rangeAxis, dataset,plot,dataArea);
+
+ }
+
+
+ Paint paint = getItemPaint(series, item);
+ Stroke stroke = getItemStroke(series, item);
+ g2.setPaint(paint);
+ g2.setStroke(stroke);
+
+
+ if( series == CURVE_SERIE && mustDrawPolygone(x1,y1,dataset, item)) {
+ if(hotspot.size() >0)
+ g2.fill(hotspot.get(0));
+ if(drawProfileLine) {
+ Color previous = g2.getColor();
+ Stroke prevStroke = g2.getStroke();
+
+ Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[]{9}, 0);
+ g2.setStroke(dashed);
+ g2.setColor(Color.BLACK);
+ for(int i=1;i<hotspot.size();i++) {
+ g2.draw(hotspot.get(i));
+ g2.drawString("P"+(i-1), (int)((Line2D.Double)hotspot.get(i)).x1, (int)(((Line2D.Double)hotspot.get(i)).y1*1.3));
+ }
+ g2.setColor(previous);
+ g2.setStroke(prevStroke);
+ }
+ //-- warning: must draw he prevous line curve again to draw onto the polygon shape --//
+ if(itemLineToDraw != null)
+ for(Integer itemLine:itemLineToDraw)
+ defaultRenderer.drawItem(g2, state, dataArea, info, plot, domainAxis, rangeAxis, dataset, series, itemLine, crosshairState, pass);
+ }else {
+ //-- render line default renderer --//
+ defaultRenderer.drawItem(g2, state, dataArea, info, plot, domainAxis, rangeAxis, dataset, series, item, crosshairState, pass);
+ }
+
+ }
+
+
+
+
+ public boolean isNiveauEau() {
+ return isNiveauEau;
+ }
+
+ public void setNiveauEau(boolean isNiveauEau) {
+ this.isNiveauEau = isNiveauEau;
+ }
+
+
+ public boolean isDrawProfileLine() {
+ return drawProfileLine;
+ }
+
+
+ public void setDrawProfileLine(boolean drawProfileLine) {
+ this.drawProfileLine = drawProfileLine;
+ }
+
+
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|