Revision 42980 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.symbology/org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/styling/LabelClass.java
LabelClass.java | ||
---|---|---|
100 | 100 |
import org.gvsig.fmap.geom.GeometryManager; |
101 | 101 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
102 | 102 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
103 |
import org.gvsig.fmap.geom.primitive.Polygon; |
|
103 | 104 |
import org.gvsig.fmap.mapcontext.ViewPort; |
104 | 105 |
import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelClass; |
105 | 106 |
import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelLocationMetrics; |
... | ... | |
118 | 119 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
119 | 120 |
import org.gvsig.tools.persistence.spi.PersistentContextServices; |
120 | 121 |
import org.gvsig.tools.util.Callable; |
122 |
|
|
121 | 123 |
import org.slf4j.Logger; |
122 | 124 |
import org.slf4j.LoggerFactory; |
123 | 125 |
|
... | ... | |
132 | 134 |
* @author jaume dominguez faus - jaume.dominguez@iver.es |
133 | 135 |
*/ |
134 | 136 |
public class LabelClass implements ILabelClass { |
135 |
|
|
137 |
|
|
136 | 138 |
private static final String FIELD_REFERENCE_SYSTEM = "referenceSystem"; |
137 | 139 |
private static final String FIELD_UNIT = "unit"; |
138 | 140 |
private static final String FIELD_SQL_QUERY = "sqlQuery"; |
... | ... | |
156 | 158 |
private String[] texts; |
157 | 159 |
private int priority; |
158 | 160 |
private double scale = 1; |
159 |
|
|
161 |
|
|
160 | 162 |
private String sqlQuery; |
161 | 163 |
private boolean usesSQL; |
162 | 164 |
|
163 | 165 |
private int unit = CartographicSupportToolkit.DefaultMeasureUnit; |
164 | 166 |
private int referenceSystem = |
165 | 167 |
CartographicSupportToolkit.DefaultReferenceSystem; |
166 |
|
|
168 |
|
|
167 | 169 |
/** |
168 | 170 |
* Returns true if the label will be showed in the map |
169 | 171 |
* |
... | ... | |
213 | 215 |
} else { |
214 | 216 |
this.labelExpressions = lbl_exps; |
215 | 217 |
} |
216 |
|
|
218 |
|
|
217 | 219 |
} |
218 | 220 |
|
219 | 221 |
/** |
... | ... | |
464 | 466 |
if (llm==null) |
465 | 467 |
return null; |
466 | 468 |
Point2D anchor = llm.getAnchor(); |
467 |
org.gvsig.fmap.geom.primitive.Point p = geomManager.createPoint(anchor.getX(), anchor.getY(), SUBTYPES.GEOM2D); |
|
468 | 469 |
double theta = llm.getRotation(); |
469 | 470 |
|
470 | 471 |
// 2. calculate the container shape |
471 |
Geometry returnedValue;
|
|
472 |
Polygon returnedValue;
|
|
472 | 473 |
Rectangle bounds = getBounds(); |
473 | 474 |
|
474 |
AffineTransform at = AffineTransform.getTranslateInstance(p.getX(), p.getY());
|
|
475 |
AffineTransform at = AffineTransform.getTranslateInstance(anchor.getX(), anchor.getY());
|
|
475 | 476 |
at.concatenate(AffineTransform.getRotateInstance(theta)); |
476 |
returnedValue = geomManager.createSurface(new GeneralPathX(bounds |
|
477 |
.getPathIterator(null)), SUBTYPES.GEOM2D); |
|
477 |
returnedValue = geomManager.createPolygon(SUBTYPES.GEOM2D); |
|
478 |
returnedValue.addVertex(bounds.getMinX(), bounds.getMinY()); |
|
479 |
returnedValue.addVertex(bounds.getMinX(), bounds.getMaxY()); |
|
480 |
returnedValue.addVertex(bounds.getMaxX(), bounds.getMaxY()); |
|
481 |
returnedValue.addVertex(bounds.getMaxX(), bounds.getMinY()); |
|
482 |
returnedValue.addVertex(bounds.getMinX(), bounds.getMinY()); |
|
478 | 483 |
|
479 | 484 |
returnedValue.transform(at); |
480 | 485 |
return returnedValue; |
... | ... | |
557 | 562 |
|
558 | 563 |
/* |
559 | 564 |
* (non-Javadoc) |
560 |
*
|
|
565 |
* |
|
561 | 566 |
* @seeorg.gvsig.tools.persistence.Persistent#saveToState(org.gvsig.tools. |
562 | 567 |
* persistence.PersistentState) |
563 | 568 |
*/ |
... | ... | |
566 | 571 |
state.set(FIELD_TEXT_SYMBOL, getTextSymbol()); |
567 | 572 |
state.set(FIELD_LABEL_EXPRESSIONS, getLabelExpressions()); |
568 | 573 |
state.set(FIELD_VISIBLE, isVisible()); |
569 |
|
|
574 |
|
|
570 | 575 |
ILabelStyle sty = getLabelStyle(); |
571 | 576 |
if (sty != null) { |
572 | 577 |
state.set(FIELD_LABEL_STYLE, getLabelStyle()); |
573 | 578 |
} |
574 |
|
|
579 |
|
|
575 | 580 |
state.set(FIELD_TEXTS, getTexts()); |
576 | 581 |
state.set(FIELD_PRIORITY, getPriority()); |
577 | 582 |
|
578 | 583 |
state.set(FIELD_SCALE, scale); |
579 | 584 |
state.set(FIELD_SQL_QUERY, getSQLQuery()); |
580 | 585 |
state.set(FIELD_IS_USESQL, isUseSqlQuery()); |
581 |
|
|
586 |
|
|
582 | 587 |
state.set(FIELD_UNIT, getUnit()); |
583 | 588 |
state.set(FIELD_REFERENCE_SYSTEM, getReferenceSystem()); |
584 | 589 |
} |
585 | 590 |
|
586 | 591 |
/* |
587 | 592 |
* (non-Javadoc) |
588 |
*
|
|
593 |
* |
|
589 | 594 |
* @see |
590 | 595 |
* org.gvsig.tools.persistence.Persistent#loadFromState(org.gvsig.tools. |
591 | 596 |
* persistence.PersistentState) |
... | ... | |
596 | 601 |
setTextSymbol((ITextSymbol) state.get(FIELD_TEXT_SYMBOL)); |
597 | 602 |
setLabelExpressions(state.getStringArray(FIELD_LABEL_EXPRESSIONS)); |
598 | 603 |
setVisible(state.getBoolean(FIELD_VISIBLE)); |
599 |
|
|
604 |
|
|
600 | 605 |
if (state.hasValue(FIELD_LABEL_STYLE)) { |
601 |
setLabelStyle((ILabelStyle) state.get(FIELD_LABEL_STYLE));
|
|
606 |
setLabelStyle((ILabelStyle) state.get(FIELD_LABEL_STYLE)); |
|
602 | 607 |
} |
603 |
|
|
608 |
|
|
604 | 609 |
setTexts((String[]) state.getArray(FIELD_TEXTS, String.class)); |
605 | 610 |
setPriority(state.getInt(FIELD_PRIORITY)); |
606 | 611 |
scale = state.getDouble(FIELD_SCALE); |
607 |
|
|
612 |
|
|
608 | 613 |
setUseSqlQuery(state.getBoolean(FIELD_IS_USESQL)); |
609 | 614 |
setSQLQuery(state.getString(FIELD_SQL_QUERY)); |
610 |
|
|
615 |
|
|
611 | 616 |
setUnit(state.getInt(FIELD_UNIT)); |
612 | 617 |
setReferenceSystem(state.getInt(FIELD_REFERENCE_SYSTEM)); |
613 | 618 |
} |
... | ... | |
621 | 626 |
LabelClass.class, |
622 | 627 |
LABEL_CLASS_PERSISTENCE_DEFINITION_NAME, |
623 | 628 |
LABEL_CLASS_PERSISTENCE_DEFINITION_NAME+" Persistence definition", |
624 |
null,
|
|
629 |
null, |
|
625 | 630 |
null |
626 | 631 |
); |
627 | 632 |
|
628 | 633 |
definition.addDynFieldString(FIELD_NAME).setMandatory(true); |
629 | 634 |
definition.addDynFieldObject(FIELD_TEXT_SYMBOL).setMandatory(true).setClassOfValue(ITextSymbol.class); |
630 |
|
|
635 |
|
|
631 | 636 |
definition.addDynFieldArray(FIELD_LABEL_EXPRESSIONS) |
632 | 637 |
.setClassOfItems(String.class).setMandatory(true); |
633 |
|
|
638 |
|
|
634 | 639 |
definition.addDynFieldBoolean(FIELD_VISIBLE).setMandatory(true); |
635 |
|
|
640 |
|
|
636 | 641 |
definition.addDynFieldObject(FIELD_LABEL_STYLE).setMandatory(false) |
637 | 642 |
.setClassOfValue(ILabelStyle.class); |
638 |
|
|
643 |
|
|
639 | 644 |
definition.addDynFieldList(FIELD_TEXTS).setMandatory(true).setClassOfItems(String.class); |
640 | 645 |
definition.addDynFieldInt(FIELD_PRIORITY).setMandatory(true); |
641 | 646 |
definition.addDynFieldDouble(FIELD_SCALE).setMandatory(true); |
... | ... | |
646 | 651 |
} |
647 | 652 |
return Boolean.TRUE; |
648 | 653 |
} |
649 |
|
|
654 |
|
|
650 | 655 |
} |
651 | 656 |
|
652 | 657 |
public void setUseSqlQuery(boolean use_sql) { |
... | ... | |
704 | 709 |
|
705 | 710 |
} |
706 | 711 |
|
707 |
|
|
708 | 712 |
|
709 |
|
|
713 |
|
|
714 |
|
|
710 | 715 |
} |
Also available in: Unified diff