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

View differences:

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