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