|
From: <bma...@us...> - 2011-09-26 14:27:30
|
Revision: 6447
http://fudaa.svn.sourceforge.net/fudaa/?rev=6447&view=rev
Author: bmarchan
Date: 2011-09-26 14:27:24 +0000 (Mon, 26 Sep 2011)
Log Message:
-----------
Fix : Petit r?\195?\169glage pour trac?\195?\169 de labels.
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2011-09-26 13:41:16 UTC (rev 6446)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2011-09-26 14:27:24 UTC (rev 6447)
@@ -716,7 +716,7 @@
ptDest.autoApplique(versEcran);
final Rectangle2D rec=fm.getStringBounds(s, _g);
double x=ptDest.x_-rec.getWidth()/2;
- double y=ptDest.y_-3;
+ double y=ptDest.y_-5;
rec.setFrame(x, y-fm.getAscent(), rec.getWidth(), fm.getAscent()+2);
_g.setColor(bgColor);
_g.fill(rec);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2012-10-19 10:45:00
|
Revision: 7765
http://fudaa.svn.sourceforge.net/fudaa/?rev=7765&view=rev
Author: deniger
Date: 2012-10-19 10:44:51 +0000 (Fri, 19 Oct 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2012-10-19 10:01:54 UTC (rev 7764)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2012-10-19 10:44:51 UTC (rev 7765)
@@ -54,9 +54,8 @@
import com.vividsolutions.jts.geom.LinearRing;
/**
- * Un calque g\xE9rant des g\xE9om\xE9tries quelconques, \xE0 un niveau global ou atomique.<p> Le niveau atomique des g\xE9om\xE9tries est le niveau
- * sommet. Le calque s'appuie sur un mod\xE8le
- * {@link ZModeleGeometry}.
+ * Un calque g\xE9rant des g\xE9om\xE9tries quelconques, \xE0 un niveau global ou atomique.<p> Le niveau atomique des g\xE9om\xE9tries est le niveau sommet. Le calque
+ * s'appuie sur un mod\xE8le {@link ZModeleGeometry}.
*
* @author Bertrand Marchand
* @version $Id$
@@ -100,6 +99,7 @@
/**
* Le seul constructeur, avec le mod\xE8le.
+ *
* @param _modele le modele du calque
*/
public ZCalqueGeometry(final M _modele) {
@@ -135,7 +135,7 @@
}
protected void paintSelectionMulti(final Graphics _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran,
- final GrBoite _clipReel) {
+ final GrBoite _clipReel) {
if ((isRapide()) || (isSelectionEmpty())) {
return;
}
@@ -459,6 +459,7 @@
/**
* D\xE9finit l'attribut atomique pris pour afficher les labels.
+ *
* @param _att L'attribut. Si Null : Pas d'affichage de labels.
*/
public void setAttributForLabels(GISAttributeInterface _att) {
@@ -472,6 +473,7 @@
/**
* Indique si la s\xE9lection est vide.
+ *
* @return true Si aucun objet ni aucun point en mode atomique selectionn\xE9.
*/
public boolean isSelectionEmpty() {
@@ -511,7 +513,7 @@
* @param _g
*/
public void paintDonnees(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
- final GrBoite _clipReel) {
+ final GrBoite _clipReel) {
if ((modele_ == null) || (modele_.getNombre() <= 0)) {
return;
}
@@ -537,7 +539,7 @@
// on part de la fin : comme ca la premiere ligne apparait au-dessus
for (int i = nombre - 1; i >= 0; i--) {
if (!isPainted(i, _versEcran)//dans certains cas, ne pas dessiner l'objet
- || !modele_.isGeometryReliee(i)) {
+ || !modele_.isGeometryReliee(i)) {
continue;
}
@@ -584,7 +586,7 @@
}
protected void paintSurfaces(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
- final GrBoite _clipReel) {
+ final GrBoite _clipReel) {
final GrBoite clip = _clipReel;
final GrMorphisme versEcran = _versEcran;
@@ -592,9 +594,11 @@
final GrBoite bPoly = new GrBoite();
final TraceSurface ts;
+ Color iniColor = null;
if (surfModel_ != null) {
ts = surfModel_.buildCopy();
- ts.setCouleurFond(EbliLib.getAlphaColor(ts.getCouleurFond(), alpha_));
+ iniColor = EbliLib.getAlphaColor(ts.getCouleurFond(), alpha_);
+ ts.setCouleurFond(iniColor);
} else {
ts = null;
}
@@ -605,7 +609,7 @@
TIntArrayList y = new TIntArrayList(50);
for (int i = nombre - 1; i >= 0; i--) {
- if (!modele_.isGeometryReliee(i) || !modele_.isGeometryFermee(i)||!isPainted(i, _versEcran)) {
+ if (!modele_.isGeometryReliee(i) || !modele_.isGeometryFermee(i) || !isPainted(i, _versEcran)) {
continue;
}
@@ -635,13 +639,26 @@
x.add((int) pt.x_);
y.add((int) pt.y_);
}
+ Color surfaceColor = getSurfaceSpecColor(i, iniColor);
+ ts.setCouleurFond(surfaceColor);
ts.remplitPolygone((Graphics2D) _g, x.toNativeArray(), y.toNativeArray());
}
}
}
+ /**
+ * methode surcharg\xE9 par des sous-classes permettant de specifier une couleur diff\xE9rents.
+ *
+ * @param i
+ * @param initColor
+ * @return
+ */
+ protected Color getSurfaceSpecColor(int i, Color initColor) {
+ return initColor;
+ }
+
protected void paintIconsOnAtomics(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
- final GrBoite _clipReel) {
+ final GrBoite _clipReel) {
final GrBoite clip = _clipReel;
final GrMorphisme versEcran = _versEcran;
@@ -697,7 +714,7 @@
}
protected void paintLabelsOnAtomics(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel,
- final GrBoite _clipReel) {
+ final GrBoite _clipReel) {
final GrBoite clip = _clipReel;
final GrMorphisme versEcran = _versEcran;
@@ -768,7 +785,7 @@
}
public void paintSelection(final Graphics2D _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran,
- final GrBoite _clipReel) {
+ final GrBoite _clipReel) {
if (isSelectionEmpty()) {
return;
}
@@ -788,7 +805,7 @@
}
public void paintSelectionSimple(final Graphics _g, final ZSelectionTrace _trace, final GrMorphisme _versEcran,
- final GrBoite _clipReel, CtuluListSelection _containers) {
+ final GrBoite _clipReel, CtuluListSelection _containers) {
if ((isRapide()) || (isSelectionEmpty())) {
return;
}
@@ -947,7 +964,7 @@
final Envelope polyEnv = _poly.getEnvelopeInternal();
final GrBoite domaineBoite = getDomaine();
final Envelope domaine = new Envelope(domaineBoite.e_.x_, domaineBoite.o_.x_, domaineBoite.e_.y_,
- domaineBoite.o_.y_);
+ domaineBoite.o_.y_);
// si l'envelop du polygone n'intersect pas le domaine, il n'y a pas de
// selection
if (!polyEnv.intersects(domaine)) {
@@ -1021,7 +1038,7 @@
* @return La liste de selection.
*/
public EbliListeSelectionMulti selectionMulti(final GrPoint _ptReel, final int _tolerancePixel, boolean _inDepth,
- SelectionMode _mode) {
+ SelectionMode _mode) {
final GrMorphisme versReel = getVersReel();
GrBoite bClip = getDomaine();
if (bClip == null || (!bClip.contientXY(_ptReel)) && (bClip.distanceXY(_ptReel) > _tolerancePixel)) {
@@ -1098,7 +1115,7 @@
final Envelope polyEnv = _poly.getEnvelopeInternal();
final GrBoite domaineBoite = getDomaine();
final Envelope domaine = new Envelope(domaineBoite.e_.x_, domaineBoite.o_.x_, domaineBoite.e_.y_,
- domaineBoite.o_.y_);
+ domaineBoite.o_.y_);
// si l'envelop du polygone n'intersect pas le domaine, il n'y a pas de
// selection
if (!polyEnv.intersects(domaine)) {
@@ -1367,7 +1384,7 @@
* org.fudaa.ctulu.gis.GISAttributeInterface, int, java.lang.Object)
*/
public void attributeValueChangeAction(Object _source, int _indexAtt, GISAttributeInterface _att, int _indexGeom,
- Object _newValue) {
+ Object _newValue) {
/*
* A chaque changement de valeur d'un attribut, tout est redessin\xE9. On pourrai faire quelque chose de plus optimis\xE9 comme un
* repaint seulement quand la valeur de visibilit\xE9 est modifi\xE9 et pas dans les autres cas.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2012-12-18 15:42:38
|
Revision: 8151
http://fudaa.svn.sourceforge.net/fudaa/?rev=8151&view=rev
Author: deniger
Date: 2012-12-18 15:42:32 +0000 (Tue, 18 Dec 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2012-12-18 15:42:05 UTC (rev 8150)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2012-12-18 15:42:32 UTC (rev 8151)
@@ -137,8 +137,8 @@
_ligne.setCouleur(EbliLib.getAlphaColor(_ligne.getCouleur(), alpha_));
}
}
-
- @Override
+
+ @Override
public boolean getRange(CtuluRange _b) {
GISAttributeDouble attributeIsZ = modeleDonnees().getGeomData().getAttributeIsZ();
if (attributeIsZ != null) {
@@ -752,8 +752,8 @@
continue;
}
if (!isRapide()) {
- initTraceForAtomics(iconeModel, i,j);
- }
+ initTraceForAtomics(iconeModel, i, j);
+ }
ptDest.autoApplique(versEcran);
icone.paintIconCentre(this, _g, ptDest.x_, ptDest.y_);
}
@@ -1015,6 +1015,9 @@
}
final Envelope polyEnv = _poly.getEnvelopeInternal();
final GrBoite domaineBoite = getDomaine();
+ if (domaineBoite == null) {
+ return null;
+ }
final Envelope domaine = new Envelope(domaineBoite.e_.x_, domaineBoite.o_.x_, domaineBoite.e_.y_,
domaineBoite.o_.y_);
// si l'envelop du polygone n'intersect pas le domaine, il n'y a pas de
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-10 16:32:02
|
Revision: 8199
http://fudaa.svn.sourceforge.net/fudaa/?rev=8199&view=rev
Author: deniger
Date: 2013-01-10 16:31:55 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2013-01-10 16:02:52 UTC (rev 8198)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2013-01-10 16:31:55 UTC (rev 8199)
@@ -564,16 +564,15 @@
}
if (_p.isDefined(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND)) {
setLabelsBackgroundColor((Color) _p.get(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_BACKGROUND));
- }
- else{
+ } else {
setLabelsBackgroundColor(null);
}
if (_p.isDefined(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND)) {
setLabelsForegroundColor((Color) _p.get(ZCalqueGeometryLabelConfigure.PROPERTY_LABELS_FOREGROUND));
}
-
+
}
}
@@ -907,30 +906,29 @@
final GrPoint ptDest = new GrPoint();
for (int j = nbPoints - 1; j >= 0; j--) {
modele_.point(ptDest, i, j);
+
+ //pour \xE9viter de redessiner le texte au m\xEAme endroit:
+ Object o = mdl.getObjectValueAt(j);
+ if (o == null) {
+ continue;
+ }
+ String s = o.toString().trim();
+ if (StringUtils.isBlank(s)) {
+ continue;
+ }
if (!_clipReel.contientXY(ptDest)) {
continue;
}
+ ptDest.autoApplique2D(versEcran);
int idxOnScreen = (int) ptDest.x_ + (int) ptDest.y_ * w;
- //pour \xE9viter de redessiner le texte au m\xEAme endroit:
if (idxOnScreen >= 0 && !memory.isSelected(idxOnScreen)) {
memory.add(idxOnScreen);
- Object o = mdl.getObjectValueAt(j);
- if (o == null) {
- continue;
- }
- String s = o.toString().trim();
- if (StringUtils.isBlank(s)) {
- continue;
- }
-
- ptDest.autoApplique2D(versEcran);
- final Rectangle2D rec = fm.getStringBounds(s, _g);
- double x = ptDest.x_ - rec.getWidth() / 2;
- double y = ptDest.y_ - 5;
- rec.setFrame(x, y - fm.getAscent(), rec.getWidth(), fm.getAscent() + 2);
+ int stringWidth = fm.stringWidth(s);
+ int x = (int) (ptDest.x_ - stringWidth / 2);
+ int y = (int) (ptDest.y_ - 5);
if (bgColor != null) {
_g.setColor(bgColor);
- _g.fill(rec);
+ _g.fillRect(x, y - fm.getAscent(), stringWidth, fm.getHeight() + 2);
}
_g.setColor(fgColor);
_g.drawString(s, (int) x, (int) y);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|