|
From: <bma...@us...> - 2011-04-01 09:31:09
|
Revision: 6201
http://fudaa.svn.sourceforge.net/fudaa/?rev=6201&view=rev
Author: bmarchan
Date: 2011-04-01 09:31:02 +0000 (Fri, 01 Apr 2011)
Log Message:
-----------
ADD : Trac?\195?\169 de marqueur de courbe avec un titre diff?\195?\169rent de value.
ADD : Trac?\195?\169 de labels de points de courbe.
Modified Paths:
--------------
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbe.java
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbeMarqueur.java
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/trace/TraceBox.java
Property Changed:
----------------
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbe.java
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EvolutionOperations.java
Property changes on: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe:3860-6161
+ /branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe:3860-6200
Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbe.java
===================================================================
--- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbe.java 2011-03-31 13:52:29 UTC (rev 6200)
+++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbe.java 2011-04-01 09:31:02 UTC (rev 6201)
@@ -1,17 +1,22 @@
/*
* @creation 11 d\xE9c. 2003
- *
* @modification $Date: 2007-05-22 14:19:05 $
- *
* @license GNU General Public License 2
- *
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
*/
package org.fudaa.ebli.courbe;
import gnu.trove.TIntArrayList;
-import java.awt.*;
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Shape;
+import java.awt.Stroke;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.List;
@@ -20,8 +25,6 @@
import javax.swing.SwingConstants;
import javax.swing.tree.TreeNode;
-import com.vividsolutions.jts.geom.Envelope;
-
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibString;
import org.fudaa.ctulu.CtuluListSelectionInterface;
@@ -38,6 +41,8 @@
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.ebli.trace.TraceLigneModel;
+import com.vividsolutions.jts.geom.Envelope;
+
/**
* Cette Courbe suppose que tous les x du mod\xE8le sont rang\xE9es dans l'ordre croissant.
*
@@ -74,6 +79,7 @@
EGCourbeSurfacePainter surfacePainter_;
TraceBox tbox_;
+ TraceBox tboxLabels_;
/**
* @param _model le model a prendre en compte
@@ -120,6 +126,21 @@
}
}
+ private void initLabelsTraceBox(Color _c) {
+ if (tboxLabels_==null) {
+ tboxLabels_=new TraceBox();
+ tboxLabels_.setColorFond(Color.WHITE);
+ tboxLabels_.setHMargin(1);
+ tboxLabels_.setVMargin(1);
+ tboxLabels_.setHPosition(SwingConstants.LEFT);
+ tboxLabels_.setVPosition(SwingConstants.CENTER);
+ tboxLabels_.setDrawBox(true);
+ tboxLabels_.setDrawFond(true);
+ }
+ tboxLabels_.setColorBoite(_c);
+ tboxLabels_.setColorText(_c);
+ }
+
protected void traceMarks(final Graphics2D _g, final EGRepere _t) {
final int xmin = _t.getMinEcranX();
final int xmax = _t.getMaxEcranX();
@@ -177,7 +198,12 @@
if (axeY.containsPoint(marqueur.getValue()) && marqueur.isVisible() && marqueur.traceHorizontal_) {
final int yie = _t.getYEcran(marqueur.getValue(), axeY);
int x = xmin + 3;
- final String str = axeY.getStringAffiche(marqueur.getValue());
+ final String str;
+ if (marqueur.getTitle()!=null)
+ str=marqueur.getTitle();
+ else
+ str=axeY.getStringAffiche(marqueur.getValue());
+
if (axeY.isDroite()) {
x = xmax - 6 - _g.getFontMetrics().stringWidth(str);
}
@@ -189,7 +215,11 @@
&& !marqueur.traceHorizontal_) {
final int xie = _t.getXEcran(marqueur.getValue());
int y = 0 + 6;
- final String str = getAxeX().getStringAffiche(marqueur.getValue());
+ final String str;
+ if (marqueur.getTitle()!=null)
+ str=marqueur.getTitle();
+ else
+ str = getAxeX().getStringAffiche(marqueur.getValue());
// if (getAxeX().isDroite()) {
// x = xmax - 6 - _g.getFontMetrics().stringWidth(str);
// }
@@ -426,6 +456,8 @@
trIcon.setCouleur(EbliLib.getAlphaColor(trIcon.getCouleur(), alpha_));
trLigne.setCouleur(EbliLib.getAlphaColor(trLigne.getCouleur(), alpha_));
}
+ // Les labels ont m\xEAme couleur que la courbe.
+ initLabelsTraceBox(trLigne.getCouleur());
for (int i = 0; i < nbPt; i++) {
xi = model_.getX(i);
yi = model_.getY(i);
@@ -434,15 +466,39 @@
xiVisible = _t.getXAxe().containsPoint(xi);
yiVisible = getAxeY().containsPoint(yi);
- if (model_.isPointDrawn(i) && xiVisible && yiVisible && iconeModel_.getType() != TraceIcon.RIEN) {
- if (displayTitleOnCurve_) {
- if (rangeDisplayed == null) {
- rangeDisplayed = new Envelope();
+ if(model_.isPointDrawn(i) && xiVisible && yiVisible) {
+ // Paint point label
+ String pLabel=model_.getPointLabel(i);
+ if(pLabel!=null) {
+ // Dessin de la boite et du label
+ // X
+ int xBox;
+ if(((int) xie)<=_t.getMinEcranX())
+ xBox=((int) xie);
+ else if(((int) xie)>=_t.getMaxEcranX())
+ xBox=((int) xie)-_g.getFontMetrics().stringWidth(pLabel)-3;
+ else
+ xBox=((int) xie)-_g.getFontMetrics().stringWidth(pLabel)/2-2;
+ // Y
+ int yBox;
+ if(((int) yie)>=_t.getMaxEcranY())
+ yBox=((int) yie)-10;
+ else
+ yBox=((int) yie)+10;
+ // Paint
+ tboxLabels_.paintBox(_g, xBox, yBox, pLabel);
+ }
+ // Paint point
+ if(iconeModel_.getType() != TraceIcon.RIEN) {
+ if (displayTitleOnCurve_) {
+ if (rangeDisplayed == null) {
+ rangeDisplayed = new Envelope();
+ }
+ rangeDisplayed.expandToInclude(xi, yi);
}
- rangeDisplayed.expandToInclude(xi, yi);
+ // icone_.couleur(getAspectContour());
+ trIcon.paintIconCentre(_g, xie, yie);
}
- // icone_.couleur(getAspectContour());
- trIcon.paintIconCentre(_g, xie, yie);
}
if ((i > 0) && model_.isSegmentDrawn(i - 1) && (xpVisible || xiVisible || _t.getXAxe().isContained(xpe, xie))) {
if (displayTitleOnCurve_) {
@@ -964,6 +1020,7 @@
return setTitle(_newTitle);
}
+ @Override
public String toString() {
return getTitle();
}
@@ -976,12 +1033,14 @@
this.tbox_ = tbox_;
}
+ @Override
public BConfigurePalette getPalette() {
return paletteEnCours_;
}
BConfigurePalette paletteEnCours_ = null;
+ @Override
public void setPalette(BConfigurePalette pal) {
paletteEnCours_ = pal;
@@ -989,6 +1048,7 @@
public static String INDICE_PANEL_SHOW = "indicePtoshow";
+ @Override
public boolean reloadPalette(Map infos) {
int panelToShow = -1;
Property changes on: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbe.java
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGCourbe.java:3860-6200
Added: svn:eol-style
+ native
Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbeMarqueur.java
===================================================================
--- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbeMarqueur.java 2011-03-31 13:52:29 UTC (rev 6200)
+++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCourbeMarqueur.java 2011-04-01 09:31:02 UTC (rev 6201)
@@ -3,14 +3,17 @@
import org.fudaa.ebli.trace.TraceLigneModel;
/**
- * Gestion d'un seul marqueur pour la courbe.
- * un marqueur contient une valeur, un boolean d'affichage et un traceligne Model.
- * il contient un boolean pour indiquer si on affiche sur l'axe desy ou x.
- * il contient \xE9galement un titre pour indiquer son nom.
- * EgCourbe contient une liste de ces objets.
- * Ces objets sont faciles \xE0 persister.
+ * Marqueur de trac\xE9 de courbes.
+ *
+ * Un marqueur est trac\xE9 suivant une ligne verticale ou horizontale (suivant
+ * son axe de r\xE9f\xE9rence). Il contient une valeur, un boolean d'affichage et un
+ * traceligne Model. Il contient un boolean pour indiquer si on affiche sur l'axe
+ * des y ou x. Il contient \xE9galement un titre pour indiquer son nom. Si aucun
+ * titre donn\xE9, la valeur de sa position sur l'axe est indiqu\xE9e.<p>
+ *
+ * Remarque : Le marqueur est facile \xE0 persister.
* @author Adrien Hadoux
- *
+ * @see EGCourbe
*/
public class EGCourbeMarqueur {
@@ -18,17 +21,22 @@
boolean view_=false;
TraceLigneModel model_;
boolean traceHorizontal_=true;
+ /** Titre : Peut \xEAtre null. */
+ String title_;
- public EGCourbeMarqueur(double value, boolean view, TraceLigneModel model,boolean traceH) {
+ public EGCourbeMarqueur(double value, String _title, boolean view, TraceLigneModel model,boolean traceH) {
super();
this.value_ = value;
this.view_ = view;
this.model_ = model;
traceHorizontal_=traceH;
+ title_=_title;
}
+ public EGCourbeMarqueur(double value, boolean view, TraceLigneModel model,boolean traceH) {
+ this(value, null, view, model, traceH);
+ }
-
public double getValue() {
return value_;
}
@@ -54,8 +62,15 @@
public void setTraceHorizontal(boolean traceHorizontal) {
this.traceHorizontal_ = traceHorizontal;
}
+
+ public void setTitle(String _title) {
+ title_=_title;
+ }
+
+ public String getTitle() {
+ return title_;
+ }
-
public EGCourbeMarqueur duplique(){
return new EGCourbeMarqueur(this.value_,view_,model_,traceHorizontal_);
Property changes on: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EvolutionOperations.java
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/collection/EvolutionOperations.java:3860-6161
/branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EvolutionOperations.java:3860-6161
+ /branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/collection/EvolutionOperations.java:3860-6161
/branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EvolutionOperations.java:3860-6200
Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/trace/TraceBox.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/trace/TraceBox.java 2011-03-31 13:52:29 UTC (rev 6200)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/trace/TraceBox.java 2011-04-01 09:31:02 UTC (rev 6201)
@@ -14,6 +14,14 @@
import javax.swing.SwingConstants;
/**
+ * Une classe permettant de tracer un texte \xE0 une position (x,y) donn\xE9e. Le texte
+ * peut \xEAtre trac\xE9 :
+ * <ul>
+ * <li>Centr\xE9/\xE0 gauche/\xE0 droite/au milieu/en bas/en haut de la position suivant
+ * les constantes {@link SwingConstants}.</li>
+ * <li>Avec une d\xE9coration (fond/contour rectangle visible)</li>
+ * </ul>
+ *
* @author Fred Deniger
* @version $Id: TraceBox.java,v 1.5 2006-09-19 14:55:49 deniger Exp $
*/
@@ -93,7 +101,7 @@
public int currentWidth_=-1;
-
+
public void paintBox(final Graphics2D _g2d, final int _x, final int _y, final String _s) {
if (traceLigne_ == null) {
traceLigne_ = new TraceLigne();
@@ -155,6 +163,12 @@
hMargin_ = _margin;
}
+ /**
+ * @param _position Position horizontale du texte.
+ * @see SwingConstants#LEFT
+ * @see SwingConstants#CENTER
+ * @see SwingConstants#RIGHT
+ */
public void setHPosition(final int _position) {
hPosition_ = _position;
}
@@ -167,6 +181,12 @@
vMargin_ = _margin;
}
+ /**
+ * @param _position Position verticale du texte.
+ * @see SwingConstants#TOP
+ * @see SwingConstants#CENTER
+ * @see SwingConstants#BOTTOM
+ */
public void setVPosition(final int _position) {
vPosition_ = _position;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|