Revision 5143
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.app/org.gvsig.legend.urbanhorizontalsignage.app.mainplugin/src/main/java/org/gvsig/legend/urbanhorizontalsignage/app/UrbanHorizontalSignageExtension.java | ||
---|---|---|
36 | 36 |
@Override |
37 | 37 |
public void initialize() { |
38 | 38 |
IconThemeHelper.registerIcon("legend", "legend-overview-vectorial-urbanhorizontalsignage", this); |
39 |
IconThemeHelper.registerIcon("legend", "legend-overview-vectorial-picturemarkersymboltable", this); |
|
39 | 40 |
IconThemeHelper.registerIcon("action", "layer-modify-clipboard-copy-as-polygons", this); |
40 | 41 |
|
41 | 42 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.app/org.gvsig.legend.urbanhorizontalsignage.app.mainplugin/src/main/resources-plugin/i18n/text.properties | ||
---|---|---|
15 | 15 |
_Copy_as_polygons=Copiar como pol\u00edgonos |
16 | 16 |
_Target_Color_field=Campo de destino para el color |
17 | 17 |
_Target_Length_field=Campo de destino para la longitud |
18 |
_Target_Area_field=Campo de destino para el \u00e1rea |
|
18 |
_Target_Area_field=Campo de destino para el \u00e1rea |
|
19 |
# --------------------------------------- |
|
20 |
# Picture marker symbol table legend |
|
21 |
# |
|
22 |
_Picture_marker_symbol_table_legend=Leyenda de la tabla de s\u00edmbolos de marcador de imagen |
|
23 |
_Legend_table_fields=Campos de la tabla de la leyenda |
|
24 |
_Images_table_fields=Campos de la tabla de las imagenes |
|
25 |
_Unit=Unidad |
|
26 |
_Line_to_offset_color=Color de la linea al offset |
|
27 |
_Draw_line_to_offset=Pinta la linea al offset |
|
28 |
_Classifying_field=Campo para clasificar |
|
29 |
_OffsetX_field=Campo para el offset X |
|
30 |
_OffsetY_field=Campo para el offset Y |
|
31 |
_Rotation_field=Campo para la rotaci\u00f3n |
|
32 |
_Line_to_offset_color_field=Campo para el color de la linea al offset |
|
33 |
_Table_name=Nombre de tabla |
|
34 |
_Image_field=Campo de la imagen |
|
35 |
_Image_selected_field=Campo de la imagen seleccionada |
|
36 |
# --------------------------------------- |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.app/org.gvsig.legend.urbanhorizontalsignage.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties | ||
---|---|---|
16 | 16 |
_Target_Color_field=Target color field |
17 | 17 |
_Target_Length_field=Target length field |
18 | 18 |
_Target_Area_field=Target area field |
19 |
# --------------------------------------- |
|
20 |
# Picture marker symbol table legend |
|
21 |
# |
|
22 |
_Picture_marker_symbol_table_legend=Picture marker symbol table legend |
|
23 |
_Legend_table_fields=Legend table fields |
|
24 |
_Images_table_fields=Images table fields |
|
25 |
_Unit=Unit |
|
26 |
_Line_to_offset_color=Line to offset color |
|
27 |
_Draw_line_to_offset=Draw line to offset |
|
28 |
_Classifying_field=Classifying field |
|
29 |
_OffsetX_field=OffsetX field |
|
30 |
_OffsetY_field=OffsetY field |
|
31 |
_Rotation_field=Rotation field |
|
32 |
_Line_to_offset_color_field=Line to offset color field |
|
33 |
_Table_name=Table name |
|
34 |
_Image_field=Image field |
|
35 |
_Image_selected_field=Image selected field |
|
36 |
# --------------------------------------- |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.impl/src/main/resources/org/gvsig/legend/urbanhorizontalsignage/lib/impl/UrbanHorizontalSignagePersistence.xml | ||
---|---|---|
93 | 93 |
</fields> |
94 | 94 |
</class> |
95 | 95 |
|
96 |
<class name="DefaultPictureMarkerSymbolTableLegend"> |
|
97 |
<extends> |
|
98 |
<class name="VectorialLegend" namespace="persistence"/> |
|
99 |
</extends> |
|
100 |
<fields> |
|
101 |
<field name="size" type="Double" defaultValue="15" mandatory="false"> |
|
102 |
<description></description> |
|
103 |
</field> |
|
104 |
<field name="units" type="Integer" defaultValue="-1" mandatory="false"> |
|
105 |
<description></description> |
|
106 |
</field> |
|
107 |
<field name="lineToOffsetColor" type="Object" ClassOfValue="java.awt.Color" defaultValue="darkgrey" mandatory="false"> |
|
108 |
<description></description> |
|
109 |
</field> |
|
110 |
<field name="drawLineToOffset" type="Boolean" defaultValue="true" mandatory="false"> |
|
111 |
<description></description> |
|
112 |
</field> |
|
113 |
<field name="classifyingFieldName" type="String" defaultValue="" mandatory="true"> |
|
114 |
<description></description> |
|
115 |
</field> |
|
116 |
<field name="offsetXFieldName" type="String" defaultValue="" mandatory="false"> |
|
117 |
<description></description> |
|
118 |
</field> |
|
119 |
<field name="offsetYFieldName" type="String" defaultValue="" mandatory="false"> |
|
120 |
<description></description> |
|
121 |
</field> |
|
122 |
<field name="rotationFieldName" type="String" defaultValue="" mandatory="false"> |
|
123 |
<description></description> |
|
124 |
</field> |
|
125 |
<field name="lineToOffsetColorFieldlName" type="String" defaultValue="" mandatory="false"> |
|
126 |
<description></description> |
|
127 |
</field> |
|
128 |
<field name="imagesTableName" type="String" defaultValue="" mandatory="true"> |
|
129 |
<description></description> |
|
130 |
</field> |
|
131 |
<field name="imagesTableClassifyingFieldName" type="String" defaultValue="" mandatory="true"> |
|
132 |
<description></description> |
|
133 |
</field> |
|
134 |
<field name="imageFieldName" type="String" defaultValue="" mandatory="true"> |
|
135 |
<description></description> |
|
136 |
</field> |
|
137 |
<field name="imageSelectedFieldName" type="String" defaultValue="" mandatory="false"> |
|
138 |
<description></description> |
|
139 |
</field> |
|
140 |
</fields> |
|
141 |
</class> |
|
142 |
|
|
96 | 143 |
</classes> |
97 | 144 |
</definitions> |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.impl/src/main/java/org/gvsig/legend/urbanhorizontalsignage/lib/impl/DefaultUrbanHorizontalSignageManager.java | ||
---|---|---|
23 | 23 |
package org.gvsig.legend.urbanhorizontalsignage.lib.impl; |
24 | 24 |
|
25 | 25 |
import java.io.File; |
26 |
import java.util.ArrayList; |
|
27 | 26 |
import java.util.Iterator; |
28 | 27 |
import java.util.List; |
29 | 28 |
import java.util.UUID; |
... | ... | |
67 | 66 |
import org.gvsig.legend.urbanhorizontalsignage.lib.api.UrbanHorizontalSignageLegend; |
68 | 67 |
import org.gvsig.legend.urbanhorizontalsignage.lib.api.UrbanHorizontalSignageLocator; |
69 | 68 |
import org.gvsig.legend.urbanhorizontalsignage.lib.api.UrbanHorizontalSignageManager; |
69 |
import org.gvsig.legend.urbanverticalsignage.lib.api.PictureMarkerSymbolTableLegend; |
|
70 |
import org.gvsig.legend.urbanverticalsignage.lib.impl.DefaultPictureMarkerSymbolTableLegend; |
|
70 | 71 |
import org.gvsig.tools.ToolsLocator; |
71 | 72 |
import org.gvsig.tools.folders.FoldersManager; |
72 | 73 |
import org.gvsig.tools.task.SimpleTaskStatus; |
73 | 74 |
import org.gvsig.tools.util.HasAFile; |
74 | 75 |
import org.slf4j.LoggerFactory; |
75 | 76 |
|
77 |
@SuppressWarnings("UseSpecificCatch") |
|
76 | 78 |
public class DefaultUrbanHorizontalSignageManager implements UrbanHorizontalSignageManager { |
77 | 79 |
|
78 | 80 |
private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(DefaultUrbanHorizontalSignageManager.class); |
79 | 81 |
|
80 | 82 |
@Override |
81 |
public UrbanHorizontalSignageLegend create() { |
|
83 |
public UrbanHorizontalSignageLegend createUrbanHorizontalSignageLegend() {
|
|
82 | 84 |
return new DefaultUrbanHorizontalSignageLegend(); |
83 | 85 |
} |
84 | 86 |
|
85 | 87 |
@Override |
86 |
public Class<? extends UrbanHorizontalSignageLegend> getLegendClass() { |
|
88 |
public Class<? extends UrbanHorizontalSignageLegend> getUrbanHorizontalSignageLegendClass() {
|
|
87 | 89 |
return DefaultUrbanHorizontalSignageLegend.class; |
88 | 90 |
} |
89 | 91 |
|
... | ... | |
221 | 223 |
Geometry buffer; |
222 | 224 |
final int joinStyle = roundVertex ? JOIN_STYLE_ROUND : JOIN_STYLE_MITRE; |
223 | 225 |
|
224 |
Geometry segmentOffset = null;
|
|
226 |
Geometry segmentOffset; |
|
225 | 227 |
if (segment.isClosed() && segment.getNumVertices() > 2 && segment.isCCW()) { |
226 | 228 |
Line cloned = segment.cloneGeometry(); |
227 | 229 |
cloned.flip(); |
... | ... | |
280 | 282 |
} |
281 | 283 |
previousPoint = currentPoint.cloneGeometry(); |
282 | 284 |
advanceToNext = true; |
283 |
continue; |
|
285 |
// continue;
|
|
284 | 286 |
} else { |
285 | 287 |
//buscar punto dentro del segmento a una distancia = segmentLengthMeters-previousLength |
286 | 288 |
Point point = calculateIntermediatePoint(previousPoint, currentPoint, (segmentLength - previousLength) / distance); |
... | ... | |
296 | 298 |
previousPoint = point.clone(); |
297 | 299 |
previousLength = 0; |
298 | 300 |
advanceToNext = false; |
299 |
continue; |
|
301 |
// continue;
|
|
300 | 302 |
} |
301 | 303 |
} else { |
302 | 304 |
if (previousLength + distance < holesLength) { |
... | ... | |
306 | 308 |
} |
307 | 309 |
previousPoint = currentPoint.cloneGeometry(); |
308 | 310 |
advanceToNext = true; |
309 |
continue; |
|
311 |
// continue;
|
|
310 | 312 |
} else { |
311 | 313 |
//buscar punto dentro del segmento a una distancia = segmentLengthMeters-previousLength |
312 | 314 |
Point point = calculateIntermediatePoint(previousPoint, currentPoint, (holesLength - previousLength) / distance); |
... | ... | |
322 | 324 |
previousPoint = point.clone(); |
323 | 325 |
previousLength = 0; |
324 | 326 |
advanceToNext = false; |
325 |
continue; |
|
327 |
// continue;
|
|
326 | 328 |
} |
327 | 329 |
} |
328 | 330 |
} |
... | ... | |
355 | 357 |
return p; |
356 | 358 |
} |
357 | 359 |
|
358 |
/*friend*/ static class SplittedLine { |
|
359 |
|
|
360 |
List<Line> segments; |
|
361 |
List<Line> holes; |
|
362 |
|
|
363 |
public SplittedLine() { |
|
364 |
segments = new ArrayList<>(); |
|
365 |
holes = new ArrayList<>(); |
|
366 |
} |
|
367 |
|
|
368 |
public List<Line> getSegments() { |
|
369 |
return this.segments; |
|
370 |
} |
|
371 |
|
|
372 |
public List<Line> getHoles() { |
|
373 |
return this.holes; |
|
374 |
} |
|
375 |
|
|
376 |
public void addSegment(Line segment) { |
|
377 |
this.segments.add(segment); |
|
378 |
} |
|
379 |
|
|
380 |
public void addHole(Line hole) { |
|
381 |
this.holes.add(hole); |
|
382 |
} |
|
383 |
|
|
384 |
} |
|
385 |
|
|
360 |
@Override |
|
386 | 361 |
public FeatureStore convertLinesToPolygons(FeatureSet sourceFeatureSet, UrbanHorizontalSignageConfig config, SimpleTaskStatus status) { |
387 | 362 |
|
388 | 363 |
//TODO: el status.... |
... | ... | |
508 | 483 |
} |
509 | 484 |
} |
510 | 485 |
|
486 |
@Override |
|
487 |
public PictureMarkerSymbolTableLegend createPictureMarkerSymbolTableLegend() { |
|
488 |
return new DefaultPictureMarkerSymbolTableLegend(); |
|
489 |
} |
|
511 | 490 |
|
491 |
@Override |
|
492 |
public Class<? extends PictureMarkerSymbolTableLegend> getPictureMarkerSymbolTableLegendClass() { |
|
493 |
return DefaultPictureMarkerSymbolTableLegend.class; |
|
494 |
} |
|
495 |
|
|
496 |
|
|
512 | 497 |
|
513 | 498 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.impl/src/main/java/org/gvsig/legend/urbanhorizontalsignage/lib/impl/SplittedLine.java | ||
---|---|---|
1 |
package org.gvsig.legend.urbanhorizontalsignage.lib.impl; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.List; |
|
5 |
import org.gvsig.fmap.geom.primitive.Line; |
|
6 |
|
|
7 |
/** |
|
8 |
* |
|
9 |
* @author gvSIG Team |
|
10 |
*/ |
|
11 |
class SplittedLine { |
|
12 |
|
|
13 |
List<Line> segments; |
|
14 |
List<Line> holes; |
|
15 |
|
|
16 |
public SplittedLine() { |
|
17 |
segments = new ArrayList<>(); |
|
18 |
holes = new ArrayList<>(); |
|
19 |
} |
|
20 |
|
|
21 |
public List<Line> getSegments() { |
|
22 |
return this.segments; |
|
23 |
} |
|
24 |
|
|
25 |
public List<Line> getHoles() { |
|
26 |
return this.holes; |
|
27 |
} |
|
28 |
|
|
29 |
public void addSegment(Line segment) { |
|
30 |
this.segments.add(segment); |
|
31 |
} |
|
32 |
|
|
33 |
public void addHole(Line hole) { |
|
34 |
this.holes.add(hole); |
|
35 |
} |
|
36 |
|
|
37 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.impl/src/main/java/org/gvsig/legend/urbanhorizontalsignage/lib/impl/UrbanHorizontalSignageLibraryImpl.java | ||
---|---|---|
29 | 29 |
import org.gvsig.fmap.mapcontext.MapContextLibrary; |
30 | 30 |
import org.gvsig.fmap.mapcontext.MapContextLocator; |
31 | 31 |
import org.gvsig.fmap.mapcontext.MapContextManager; |
32 |
import org.gvsig.legend.urbanhorizontalsignage.lib.api.UrbanHorizontalSignageConfig; |
|
33 | 32 |
import org.gvsig.legend.urbanhorizontalsignage.lib.api.UrbanHorizontalSignageLibrary; |
34 | 33 |
import org.gvsig.legend.urbanhorizontalsignage.lib.api.UrbanHorizontalSignageLocator; |
34 |
import org.gvsig.legend.urbanverticalsignage.lib.impl.DefaultPictureMarkerSymbolTableLegend; |
|
35 | 35 |
import org.gvsig.symbology.impl.SymbologyDefaultImplLibrary; |
36 | 36 |
import org.gvsig.tools.ToolsLocator; |
37 | 37 |
import org.gvsig.tools.dynobject.DynStruct; |
... | ... | |
77 | 77 |
"UrbanHorizontalSignageSymbol", |
78 | 78 |
definitions, |
79 | 79 |
null, |
80 |
null); |
|
80 |
null |
|
81 |
); |
|
81 | 82 |
persistenceManager.addDefinition( |
82 | 83 |
DefaultUrbanHorizontalSignageConfig.class, |
83 | 84 |
"DefaultUrbanHorizontalSignageConfig", |
84 | 85 |
definitions, |
85 | 86 |
null, |
86 |
null); |
|
87 |
null |
|
88 |
); |
|
89 |
persistenceManager.addDefinition( |
|
90 |
DefaultPictureMarkerSymbolTableLegend.class, |
|
91 |
"DefaultPictureMarkerSymbolTableLegend", |
|
92 |
definitions, |
|
93 |
null, |
|
94 |
null |
|
95 |
); |
|
87 | 96 |
} |
88 | 97 |
|
89 | 98 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.impl/src/main/java/org/gvsig/legend/urbanverticalsignage/lib/impl/ImageMarkerSymbol.java | ||
---|---|---|
1 |
package org.gvsig.legend.urbanverticalsignage.lib.impl; |
|
2 |
|
|
3 |
import java.awt.Graphics2D; |
|
4 |
import java.awt.Rectangle; |
|
5 |
import java.awt.geom.AffineTransform; |
|
6 |
import java.awt.geom.Point2D; |
|
7 |
import java.awt.image.BufferedImage; |
|
8 |
import org.gvsig.fmap.dal.feature.Feature; |
|
9 |
import org.gvsig.fmap.geom.Geometry; |
|
10 |
import org.gvsig.fmap.geom.primitive.Point; |
|
11 |
import org.gvsig.fmap.mapcontext.MapContext; |
|
12 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
|
13 |
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.impl.CartographicSupportToolkit; |
|
14 |
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.marker.IMarkerSymbol; |
|
15 |
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.marker.impl.AbstractMarkerSymbol; |
|
16 |
import org.gvsig.tools.task.Cancellable; |
|
17 |
|
|
18 |
/** |
|
19 |
* |
|
20 |
* @author gvSIG Team |
|
21 |
*/ |
|
22 |
@SuppressWarnings("UseSpecificCatch") |
|
23 |
public class ImageMarkerSymbol extends AbstractMarkerSymbol implements IMarkerSymbol { |
|
24 |
|
|
25 |
private ImageMarkerSymbol selectionSym; |
|
26 |
private boolean selected; |
|
27 |
private BufferedImage image; |
|
28 |
private BufferedImage imagesel; |
|
29 |
|
|
30 |
void setImage(BufferedImage img) { |
|
31 |
this.image = img; |
|
32 |
} |
|
33 |
|
|
34 |
void setImageSel(BufferedImage img) { |
|
35 |
this.imagesel = img; |
|
36 |
} |
|
37 |
|
|
38 |
@Override |
|
39 |
public void draw(Graphics2D g, AffineTransform affineTransform, Geometry geom, Feature f, Cancellable cancel) { |
|
40 |
Point p; |
|
41 |
try { |
|
42 |
p = geom.centroid(); |
|
43 |
} catch (Exception ex) { |
|
44 |
return; |
|
45 |
} |
|
46 |
if (affineTransform != null) { |
|
47 |
p.transform(affineTransform); |
|
48 |
} |
|
49 |
double x, y; |
|
50 |
int size = (int) Math.round(getEfectiveSize(f)); |
|
51 |
double halfSize = getEfectiveSize(f) / 2; |
|
52 |
x = p.getX() - halfSize; |
|
53 |
y = p.getY() - halfSize; |
|
54 |
Point2D theOffset = this.getEfectiveOffset(f); |
|
55 |
int xOffset = (int) theOffset.getX(); |
|
56 |
int yOffset = (int) theOffset.getY(); |
|
57 |
|
|
58 |
if (size > 0) { |
|
59 |
if( isDrawLineToOffset() ) { |
|
60 |
g.setColor(this.getEfectiveLineToOffsetColor(f)); |
|
61 |
g.drawLine((int)p.getX(), (int)p.getY(), (int)p.getX() + xOffset, (int)p.getY() + yOffset); |
|
62 |
} |
|
63 |
Rectangle rect = new Rectangle(size, size); |
|
64 |
g.translate(x + xOffset, y + yOffset); |
|
65 |
double auxRotation = getEfectiveRotationInRadians(f); |
|
66 |
g.rotate(auxRotation, halfSize, halfSize); |
|
67 |
|
|
68 |
this.drawInsideRectangle(g, rect, true); |
|
69 |
|
|
70 |
g.rotate(-auxRotation, halfSize, halfSize); |
|
71 |
g.translate(-(x + xOffset), -(y + yOffset)); |
|
72 |
|
|
73 |
} |
|
74 |
} |
|
75 |
|
|
76 |
private void drawInsideRectangle(Graphics2D g, Rectangle r, boolean keepAspectRatio) { |
|
77 |
BufferedImage theImage = (!selected) ? this.image : this.imagesel; |
|
78 |
if (theImage != null) { |
|
79 |
|
|
80 |
double xOffset = 0; |
|
81 |
double yOffset = 0; |
|
82 |
@SuppressWarnings("UnusedAssignment") |
|
83 |
double xScale = 1; |
|
84 |
@SuppressWarnings("UnusedAssignment") |
|
85 |
double yScale = 1; |
|
86 |
if (keepAspectRatio) { |
|
87 |
double scale; |
|
88 |
if (theImage.getWidth() > theImage.getHeight()) { |
|
89 |
scale = r.getWidth() / theImage.getWidth(); |
|
90 |
yOffset = 0.5 * (r.getHeight() - theImage.getHeight() * scale); |
|
91 |
} else { |
|
92 |
scale = r.getHeight() / theImage.getHeight(); |
|
93 |
xOffset = 0.5 * (r.getWidth() - theImage.getWidth() * scale); |
|
94 |
} |
|
95 |
xScale = yScale = scale; |
|
96 |
|
|
97 |
} else { |
|
98 |
xScale = r.getWidth() / theImage.getWidth(); |
|
99 |
yScale = r.getHeight() / theImage.getHeight(); |
|
100 |
yOffset = theImage.getHeight() * 0.5 * yScale; |
|
101 |
|
|
102 |
} |
|
103 |
|
|
104 |
AffineTransform at = AffineTransform.getTranslateInstance(xOffset, yOffset); |
|
105 |
at.concatenate(AffineTransform.getScaleInstance(xScale, yScale)); |
|
106 |
g.drawRenderedImage(theImage, at); |
|
107 |
} |
|
108 |
} |
|
109 |
|
|
110 |
@Override |
|
111 |
public ISymbol getSymbolForSelection() { |
|
112 |
if (selectionSym == null) { |
|
113 |
try { |
|
114 |
selectionSym = (ImageMarkerSymbol) this.clone(); |
|
115 |
} catch (CloneNotSupportedException e) { |
|
116 |
// LOG.warn("Error creating the selection symbol for the symbol "+ this, e); |
|
117 |
} |
|
118 |
selectionSym.selected = true; |
|
119 |
selectionSym.selectionSym = selectionSym; // avoid too much lazy creations |
|
120 |
} else { |
|
121 |
selectionSym.setColor(MapContext.getSelectionColor()); |
|
122 |
} |
|
123 |
return selectionSym; |
|
124 |
} |
|
125 |
|
|
126 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.impl/src/main/java/org/gvsig/legend/urbanverticalsignage/lib/impl/DefaultPictureMarkerSymbolTableLegend.java | ||
---|---|---|
1 |
package org.gvsig.legend.urbanverticalsignage.lib.impl; |
|
2 |
|
|
3 |
import java.awt.Color; |
|
4 |
import java.awt.geom.Point2D; |
|
5 |
import java.awt.image.BufferedImage; |
|
6 |
import java.util.ArrayList; |
|
7 |
import java.util.List; |
|
8 |
import javax.annotation.processing.SupportedSourceVersion; |
|
9 |
import javax.lang.model.SourceVersion; |
|
10 |
import org.apache.commons.collections4.map.LRUMap; |
|
11 |
import org.apache.commons.lang3.StringUtils; |
|
12 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
|
13 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
|
14 |
import org.gvsig.fmap.dal.DALLocator; |
|
15 |
import org.gvsig.fmap.dal.DataTypes; |
|
16 |
import org.gvsig.fmap.dal.StoresRepository; |
|
17 |
import org.gvsig.fmap.dal.exception.DataException; |
|
18 |
import org.gvsig.fmap.dal.feature.Feature; |
|
19 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
20 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
21 |
import org.gvsig.fmap.dal.feature.FeatureType; |
|
22 |
import org.gvsig.fmap.geom.Geometry; |
|
23 |
import org.gvsig.fmap.geom.GeometryUtils; |
|
24 |
import org.gvsig.fmap.mapcontext.MapContextException; |
|
25 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
|
26 |
import org.gvsig.legend.urbanverticalsignage.lib.api.PictureMarkerSymbolTableLegend; |
|
27 |
import org.gvsig.symbology.SymbologyLocator; |
|
28 |
import org.gvsig.symbology.SymbologyManager; |
|
29 |
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend; |
|
30 |
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.marker.impl.SimpleMarkerSymbol; |
|
31 |
import org.gvsig.tools.ToolsLocator; |
|
32 |
import org.gvsig.tools.dataTypes.Coercion; |
|
33 |
import org.gvsig.tools.persistence.PersistentState; |
|
34 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
|
35 |
import org.gvsig.tools.swing.api.SimpleImage; |
|
36 |
import org.slf4j.Logger; |
|
37 |
import org.slf4j.LoggerFactory; |
|
38 |
|
|
39 |
@SupportedSourceVersion(SourceVersion.RELEASE_8) |
|
40 |
@SuppressWarnings("UseSpecificCatch") |
|
41 |
public class DefaultPictureMarkerSymbolTableLegend |
|
42 |
extends AbstractVectorialLegend |
|
43 |
implements PictureMarkerSymbolTableLegend |
|
44 |
{ |
|
45 |
|
|
46 |
private static final Logger LOGGER = LoggerFactory.getLogger(DefaultPictureMarkerSymbolTableLegend.class); |
|
47 |
|
|
48 |
private static final int IMAGESCACHE_SIZE = 100; |
|
49 |
|
|
50 |
transient private final Coercion toColor; |
|
51 |
transient private final SimpleMarkerSymbol defaultSymbol; |
|
52 |
transient private FeatureStore imagesStore; |
|
53 |
transient private ExpressionBuilder expressionBuilder; |
|
54 |
transient private final LRUMap<Object, BufferedImage[]> imagesCache; |
|
55 |
|
|
56 |
private double size; |
|
57 |
private int units; |
|
58 |
private Color lineToOffsetColor; |
|
59 |
private boolean drawLineToOffset; |
|
60 |
|
|
61 |
private String classifyingFieldName; |
|
62 |
private String offsetXFieldName; |
|
63 |
private String offsetYFieldName; |
|
64 |
private String rotationFieldName; |
|
65 |
private String lineToOffsetColorFieldlName; |
|
66 |
|
|
67 |
private String imagesTableName; |
|
68 |
private String imagesTableClassifyingFieldName; |
|
69 |
private String imageFieldName; |
|
70 |
private String imageSelectedFieldName; |
|
71 |
|
|
72 |
public DefaultPictureMarkerSymbolTableLegend() { |
|
73 |
|
|
74 |
SymbologyManager symbologyManager = SymbologyLocator.getSymbologyManager(); |
|
75 |
this.defaultSymbol = new SimpleMarkerSymbol(); |
|
76 |
this.toColor = ToolsLocator.getDataTypesManager().getCoercion(DataTypes.COLOR); |
|
77 |
this.size = DEFAULT_IMAGE_SIZE; |
|
78 |
this.drawLineToOffset = true; |
|
79 |
this.lineToOffsetColor = Color.DARK_GRAY; |
|
80 |
this.imagesCache = new LRUMap<>(IMAGESCACHE_SIZE); |
|
81 |
} |
|
82 |
|
|
83 |
@Override |
|
84 |
public ISymbol getDefaultSymbol() { |
|
85 |
return this.defaultSymbol; |
|
86 |
} |
|
87 |
|
|
88 |
@Override |
|
89 |
public void setDefaultSymbol(ISymbol is) { |
|
90 |
//DO NOTHING |
|
91 |
} |
|
92 |
|
|
93 |
private Color getColor(Feature feature, String attrname, Color defaultValue) { |
|
94 |
if( StringUtils.isBlank(attrname) ) { |
|
95 |
return defaultValue; |
|
96 |
} |
|
97 |
try { |
|
98 |
return (Color) toColor.coerce(feature.get(attrname)); |
|
99 |
} catch(Exception ex) { |
|
100 |
return defaultValue; |
|
101 |
} |
|
102 |
} |
|
103 |
|
|
104 |
@Override |
|
105 |
public ISymbol getSymbolByFeature(Feature feature) throws MapContextException { |
|
106 |
ImageMarkerSymbol symbol = new ImageMarkerSymbol(); |
|
107 |
|
|
108 |
Point2D.Double offset = new Point2D.Double(0,0); |
|
109 |
if( StringUtils.isNotBlank(this.offsetXFieldName)) { |
|
110 |
offset.x = feature.getDouble(this.offsetXFieldName); |
|
111 |
} |
|
112 |
if( StringUtils.isNotBlank(this.offsetYFieldName)) { |
|
113 |
offset.y = feature.getDouble(this.offsetXFieldName); |
|
114 |
} |
|
115 |
symbol.setOffset(offset); |
|
116 |
|
|
117 |
if( StringUtils.isNotBlank(this.rotationFieldName)) { |
|
118 |
symbol.setRotation(feature.getDouble(this.rotationFieldName)); |
|
119 |
} else { |
|
120 |
symbol.setRotation(0); |
|
121 |
} |
|
122 |
|
|
123 |
if( drawLineToOffset && (offset.x==0 || offset.y==0)) { |
|
124 |
symbol.setDrawLineToOffset(true); |
|
125 |
symbol.setLineToOffsetColor( |
|
126 |
getColor( |
|
127 |
feature, |
|
128 |
this.lineToOffsetColorFieldlName, |
|
129 |
this.lineToOffsetColor |
|
130 |
) |
|
131 |
); |
|
132 |
} else { |
|
133 |
symbol.setDrawLineToOffset(false); |
|
134 |
symbol.setLineToOffsetColor(Color.DARK_GRAY); |
|
135 |
} |
|
136 |
symbol.setSize(this.size); |
|
137 |
symbol.setUnit(this.units); |
|
138 |
|
|
139 |
Object classifyingValue = feature.get(this.classifyingFieldName); |
|
140 |
BufferedImage[] images = this.getImages(classifyingValue); |
|
141 |
symbol.setImage(images[0]); |
|
142 |
symbol.setImageSel(images[1]); |
|
143 |
return symbol; |
|
144 |
} |
|
145 |
|
|
146 |
@Override |
|
147 |
public int getShapeType() { |
|
148 |
return Geometry.TYPES.POINT; |
|
149 |
} |
|
150 |
|
|
151 |
private BufferedImage[] getImages(Object classifyingValue) { |
|
152 |
|
|
153 |
BufferedImage[] images; |
|
154 |
images = this.imagesCache.get(classifyingValue); |
|
155 |
if( images!=null ) { |
|
156 |
return images; |
|
157 |
} |
|
158 |
|
|
159 |
images = new BufferedImage[] { null, null }; |
|
160 |
try { |
|
161 |
FeatureStore store = this.getImagesStore(); |
|
162 |
FeatureType featureType = store.getDefaultFeatureTypeQuietly(); |
|
163 |
FeatureAttributeDescriptor attr = featureType.getAttributeDescriptor(this.imagesTableClassifyingFieldName); |
|
164 |
Object value = attr.coerce(classifyingValue); |
|
165 |
ExpressionBuilder builder = this.getExpressionBuilder(); |
|
166 |
String filter = builder.eq( |
|
167 |
builder.column(this.imagesTableClassifyingFieldName), |
|
168 |
builder.constant(value) |
|
169 |
).toString(); |
|
170 |
Feature f = store.findFirst(filter); |
|
171 |
if( f!=null ) { |
|
172 |
SimpleImage image = (SimpleImage) f.getFromProfile(this.imageFieldName); |
|
173 |
if( image != null ) { |
|
174 |
images[0] = image.getBufferedImage(); |
|
175 |
} |
|
176 |
image = (SimpleImage) f.getFromProfile(this.imageSelectedFieldName); |
|
177 |
if( image != null ) { |
|
178 |
images[1] = image.getBufferedImage(); |
|
179 |
} |
|
180 |
} |
|
181 |
} catch(Exception ex) { |
|
182 |
LOGGER.debug("Can't retrieve images from table '"+this.imagesTableName+"'", ex); |
|
183 |
} |
|
184 |
this.imagesCache.put(classifyingValue, images); |
|
185 |
return images; |
|
186 |
} |
|
187 |
|
|
188 |
private ExpressionBuilder getExpressionBuilder() { |
|
189 |
if( this.expressionBuilder == null ) { |
|
190 |
this.expressionBuilder = ExpressionUtils.createExpressionBuilder(); |
|
191 |
} |
|
192 |
return this.expressionBuilder; |
|
193 |
} |
|
194 |
|
|
195 |
private FeatureStore getImagesStore() { |
|
196 |
if( this.imagesStore == null ) { |
|
197 |
StoresRepository repository = DALLocator.getDataManager().getStoresRepository(); |
|
198 |
this.imagesStore = (FeatureStore) repository.getStore(this.imagesTableName); |
|
199 |
} |
|
200 |
return this.imagesStore; |
|
201 |
} |
|
202 |
|
|
203 |
@Override |
|
204 |
public void setShapeType(int i) { |
|
205 |
} |
|
206 |
|
|
207 |
@Override |
|
208 |
public boolean isUseDefaultSymbol() { |
|
209 |
return true; |
|
210 |
} |
|
211 |
|
|
212 |
@Override |
|
213 |
public void useDefaultSymbol(boolean bln) { |
|
214 |
} |
|
215 |
|
|
216 |
@Override |
|
217 |
public boolean isSuitableForShapeType(int shapeType) { |
|
218 |
return GeometryUtils.isSubtype(Geometry.TYPES.POINT, shapeType); |
|
219 |
} |
|
220 |
|
|
221 |
@Override |
|
222 |
public void loadFromState(PersistentState state) throws PersistenceException { |
|
223 |
super.loadFromState(state); |
|
224 |
|
|
225 |
this.size = state.getDouble("size",DEFAULT_IMAGE_SIZE); |
|
226 |
this.units = state.getInt("units",-1); |
|
227 |
this.lineToOffsetColor = (Color) state.get("lineToOffsetColor"); |
|
228 |
this.drawLineToOffset = state.getBoolean("drawLineToOffset",true); |
|
229 |
this.classifyingFieldName = state.getString("classifyingFieldName"); |
|
230 |
|
|
231 |
this.offsetXFieldName = state.getString("offsetXFieldName"); |
|
232 |
this.offsetYFieldName = state.getString("offsetYFieldName"); |
|
233 |
this.rotationFieldName = state.getString("rotationFieldName"); |
|
234 |
this.lineToOffsetColorFieldlName = state.getString("lineToOffsetColorFieldlName"); |
|
235 |
|
|
236 |
this.imagesTableName = state.getString("imagesTableName"); |
|
237 |
this.imagesTableClassifyingFieldName = state.getString("imagesTableClassifyingFieldName"); |
|
238 |
this.imageFieldName = state.getString("imageFieldName"); |
|
239 |
this.imageSelectedFieldName = state.getString("imageSelectedFieldName"); |
|
240 |
|
|
241 |
} |
|
242 |
|
|
243 |
@Override |
|
244 |
public void saveToState(PersistentState state) throws PersistenceException { |
|
245 |
super.saveToState(state); |
|
246 |
|
|
247 |
state.set("size", this.size); |
|
248 |
state.set("units", this.units); |
|
249 |
state.set("lineToOffsetColor", this.lineToOffsetColor); |
|
250 |
state.set("drawLineToOffset", this.drawLineToOffset); |
|
251 |
state.set("classifyingFieldName", this.classifyingFieldName); |
|
252 |
|
|
253 |
state.set("offsetXFieldName", this.offsetXFieldName); |
|
254 |
state.set("offsetYFieldName", this.offsetYFieldName); |
|
255 |
state.set("rotationFieldName", this.rotationFieldName); |
|
256 |
state.set("lineToOffsetColorFieldlName", this.lineToOffsetColorFieldlName); |
|
257 |
|
|
258 |
state.set("imagesTableName", this.imagesTableName); |
|
259 |
state.set("imagesTableClassifyingFieldName", this.imagesTableClassifyingFieldName); |
|
260 |
state.set("imageFieldName", this.imageFieldName); |
|
261 |
state.set("imageSelectedFieldName", this.imageSelectedFieldName); |
|
262 |
|
|
263 |
} |
|
264 |
|
|
265 |
@Override |
|
266 |
protected String[] getRequiredFeatureAttributeNames(FeatureStore fs) throws DataException { |
|
267 |
List<String> attributes = new ArrayList<>(); |
|
268 |
if( StringUtils.isNotBlank(this.classifyingFieldName)) { |
|
269 |
attributes.add(this.classifyingFieldName); |
|
270 |
} |
|
271 |
if( StringUtils.isNotBlank(this.offsetXFieldName)) { |
|
272 |
attributes.add(this.offsetXFieldName); |
|
273 |
} |
|
274 |
if( StringUtils.isNotBlank(this.offsetYFieldName)) { |
|
275 |
attributes.add(this.offsetYFieldName); |
|
276 |
} |
|
277 |
if( StringUtils.isNotBlank(this.rotationFieldName)) { |
|
278 |
attributes.add(this.rotationFieldName); |
|
279 |
} |
|
280 |
if( StringUtils.isNotBlank(this.lineToOffsetColorFieldlName)) { |
|
281 |
attributes.add(this.lineToOffsetColorFieldlName); |
|
282 |
} |
|
283 |
attributes.add( fs.getDefaultFeatureType().getDefaultGeometryAttributeName() ); |
|
284 |
return attributes.toArray(new String[attributes.size()]); |
|
285 |
} |
|
286 |
|
|
287 |
@Override |
|
288 |
public Color getDefaultLineToOffsetColor() { |
|
289 |
return this.lineToOffsetColor; |
|
290 |
} |
|
291 |
|
|
292 |
@Override |
|
293 |
public void setDefaultLineToOffsetColor(Color color) { |
|
294 |
this.lineToOffsetColor = color; |
|
295 |
} |
|
296 |
|
|
297 |
@Override |
|
298 |
public boolean isDrawLineToOffset() { |
|
299 |
return this.drawLineToOffset; |
|
300 |
} |
|
301 |
|
|
302 |
@Override |
|
303 |
public void setDrawLineToOffset(boolean drawLineToOffset) { |
|
304 |
this.drawLineToOffset = drawLineToOffset; |
|
305 |
} |
|
306 |
|
|
307 |
@Override |
|
308 |
public double getImageSize() { |
|
309 |
return this.size; |
|
310 |
} |
|
311 |
|
|
312 |
@Override |
|
313 |
public void setImageSize(double size) { |
|
314 |
this.size = size; |
|
315 |
} |
|
316 |
|
|
317 |
@Override |
|
318 |
public String getLineToOffsetColorFieldName() { |
|
319 |
return this.lineToOffsetColorFieldlName; |
|
320 |
} |
|
321 |
|
|
322 |
@Override |
|
323 |
public void setLineToOffsetColorFieldName(String fieldName) { |
|
324 |
this.lineToOffsetColorFieldlName = fieldName; |
|
325 |
} |
|
326 |
|
|
327 |
@Override |
|
328 |
public String getOffsetXFieldName() { |
|
329 |
return this.offsetXFieldName; |
|
330 |
} |
|
331 |
|
|
332 |
@Override |
|
333 |
public void setOffsetXFieldName(String fieldName) { |
|
334 |
this.offsetXFieldName = fieldName; |
|
335 |
} |
|
336 |
|
|
337 |
@Override |
|
338 |
public String getOffsetYFieldName() { |
|
339 |
return this.offsetYFieldName; |
|
340 |
} |
|
341 |
|
|
342 |
@Override |
|
343 |
public void setOffsetYFieldName(String fieldName) { |
|
344 |
this.offsetYFieldName = fieldName; |
|
345 |
} |
|
346 |
|
|
347 |
@Override |
|
348 |
public String getRotationFieldName() { |
|
349 |
return this.rotationFieldName; |
|
350 |
} |
|
351 |
|
|
352 |
@Override |
|
353 |
public void setRotationFieldName(String fieldName) { |
|
354 |
this.rotationFieldName = fieldName; |
|
355 |
} |
|
356 |
|
|
357 |
@Override |
|
358 |
public String getImagesTableName() { |
|
359 |
return imagesTableName; |
|
360 |
} |
|
361 |
|
|
362 |
@Override |
|
363 |
public void setImagesTableName(String imagesTableName) { |
|
364 |
this.imagesTableName = imagesTableName; |
|
365 |
this.imagesCache.clear(); |
|
366 |
} |
|
367 |
|
|
368 |
@Override |
|
369 |
public String getImageFieldName() { |
|
370 |
return imageFieldName; |
|
371 |
} |
|
372 |
|
|
373 |
@Override |
|
374 |
public void setImageFieldName(String imageFieldName) { |
|
375 |
this.imageFieldName = imageFieldName; |
|
376 |
this.imagesCache.clear(); |
|
377 |
} |
|
378 |
|
|
379 |
@Override |
|
380 |
public String getClassifyingFieldName() { |
|
381 |
return classifyingFieldName; |
|
382 |
} |
|
383 |
|
|
384 |
@Override |
|
385 |
public void setClassifyingFieldName(String classifyingFieldName) { |
|
386 |
this.classifyingFieldName = classifyingFieldName; |
|
387 |
this.imagesCache.clear(); |
|
388 |
} |
|
389 |
|
|
390 |
@Override |
|
391 |
public String getImageSelectedFieldName() { |
|
392 |
return imageSelectedFieldName; |
|
393 |
} |
|
394 |
|
|
395 |
@Override |
|
396 |
public void setImageSelectedFieldName(String imageSelectedFieldName) { |
|
397 |
this.imageSelectedFieldName = imageSelectedFieldName; |
|
398 |
this.imagesCache.clear(); |
|
399 |
} |
|
400 |
|
|
401 |
@Override |
|
402 |
public String getImagesTableClassifyingFieldName() { |
|
403 |
return imagesTableClassifyingFieldName; |
|
404 |
} |
|
405 |
|
|
406 |
@Override |
|
407 |
public void setImagesTableClassifyingFieldName(String imagesTableClassifyingFieldName) { |
|
408 |
this.imagesTableClassifyingFieldName = imagesTableClassifyingFieldName; |
|
409 |
this.imagesCache.clear(); |
|
410 |
} |
|
411 |
|
|
412 |
@Override |
|
413 |
public String[] getDescriptions() { |
|
414 |
return new String[] { this.classifyingFieldName + "->" + this.imagesTableName}; |
|
415 |
} |
|
416 |
|
|
417 |
@Override |
|
418 |
public ISymbol[] getSymbols() { |
|
419 |
return new ISymbol[] { this.defaultSymbol }; |
|
420 |
} |
|
421 |
|
|
422 |
@Override |
|
423 |
public Object[] getValues() { |
|
424 |
return new Object[] { "" } ; |
|
425 |
} |
|
426 |
|
|
427 |
@Override |
|
428 |
public int getUnits() { |
|
429 |
return units; |
|
430 |
} |
|
431 |
|
|
432 |
@Override |
|
433 |
public void setUnits(int units) { |
|
434 |
this.units = units; |
|
435 |
} |
|
436 |
|
|
437 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.impl/src/test/java/org/gvsig/legend/urbanhorizontalsignage/lib/impl/Test01CalculateGeometries.java | ||
---|---|---|
72 | 72 |
// data.setRoundVertex(false); |
73 | 73 |
// data.setPaintHoles(true); |
74 | 74 |
|
75 |
DefaultUrbanHorizontalSignageManager.SplittedLine splittedLine = uhsManager.splitLine(line, 1, 0.5);
|
|
75 |
SplittedLine splittedLine = uhsManager.splitLine(line, 1, 0.5); |
|
76 | 76 |
|
77 | 77 |
List<Line> segments = splittedLine.getSegments(); |
78 | 78 |
List<Line> holes = splittedLine.getHoles(); |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.api/src/main/java/org/gvsig/legend/urbanhorizontalsignage/lib/api/UrbanHorizontalSignageManager.java | ||
---|---|---|
25 | 25 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
26 | 26 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
27 | 27 |
import org.gvsig.fmap.geom.Geometry; |
28 |
import org.gvsig.legend.urbanverticalsignage.lib.api.PictureMarkerSymbolTableLegend; |
|
28 | 29 |
import org.gvsig.tools.task.SimpleTaskStatus; |
29 | 30 |
|
30 | 31 |
|
31 | 32 |
public interface UrbanHorizontalSignageManager { |
32 | 33 |
|
33 |
public UrbanHorizontalSignageLegend create(); |
|
34 |
public UrbanHorizontalSignageLegend createUrbanHorizontalSignageLegend();
|
|
34 | 35 |
|
35 |
public Class<? extends UrbanHorizontalSignageLegend> getLegendClass(); |
|
36 |
public Class<? extends UrbanHorizontalSignageLegend> getUrbanHorizontalSignageLegendClass();
|
|
36 | 37 |
|
37 | 38 |
public UrbanHorizontalSignageData createUrbanHorizontalSignageData(); |
38 | 39 |
|
... | ... | |
40 | 41 |
|
41 | 42 |
public FeatureStore convertLinesToPolygons(FeatureSet selection, UrbanHorizontalSignageConfig config, SimpleTaskStatus status); |
42 | 43 |
|
44 |
public PictureMarkerSymbolTableLegend createPictureMarkerSymbolTableLegend(); |
|
45 |
|
|
46 |
public Class<? extends PictureMarkerSymbolTableLegend> getPictureMarkerSymbolTableLegendClass(); |
|
47 |
|
|
43 | 48 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.lib/org.gvsig.legend.urbanhorizontalsignage.lib.api/src/main/java/org/gvsig/legend/urbanverticalsignage/lib/api/PictureMarkerSymbolTableLegend.java | ||
---|---|---|
1 |
package org.gvsig.legend.urbanverticalsignage.lib.api; |
|
2 |
|
|
3 |
import java.awt.Color; |
|
4 |
import org.gvsig.fmap.mapcontext.rendering.legend.IClassifiedLegend; |
|
5 |
import org.gvsig.fmap.mapcontext.rendering.legend.ISingleSymbolLegend; |
|
6 |
import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend; |
|
7 |
|
|
8 |
public interface PictureMarkerSymbolTableLegend |
|
9 |
extends IVectorLegend, IClassifiedLegend, ISingleSymbolLegend |
|
10 |
{ |
|
11 |
|
|
12 |
public static final int DEFAULT_IMAGE_SIZE = 15; |
|
13 |
|
|
14 |
public double getImageSize(); |
|
15 |
|
|
16 |
public int getUnits(); |
|
17 |
|
|
18 |
public boolean isDrawLineToOffset(); |
|
19 |
|
|
20 |
public Color getDefaultLineToOffsetColor(); |
|
21 |
|
|
22 |
|
|
23 |
public String getClassifyingFieldName(); |
|
24 |
|
|
25 |
public String getOffsetXFieldName(); |
|
26 |
|
|
27 |
public String getOffsetYFieldName(); |
|
28 |
|
|
29 |
public String getRotationFieldName(); |
|
30 |
|
|
31 |
public String getLineToOffsetColorFieldName(); |
|
32 |
|
|
33 |
|
|
34 |
|
|
35 |
public String getImagesTableName(); |
|
36 |
|
|
37 |
public String getImageFieldName(); |
|
38 |
|
|
39 |
public String getImageSelectedFieldName(); |
|
40 |
|
|
41 |
public String getImagesTableClassifyingFieldName(); |
|
42 |
|
|
43 |
|
|
44 |
|
|
45 |
|
|
46 |
public void setImageSize(double size); |
|
47 |
|
|
48 |
public void setUnits(int unit); |
|
49 |
|
|
50 |
public void setDefaultLineToOffsetColor(Color color); |
|
51 |
|
|
52 |
public void setDrawLineToOffset(boolean drawLineToOffset); |
|
53 |
|
|
54 |
|
|
55 |
|
|
56 |
public void setLineToOffsetColorFieldName(String fieldName); |
|
57 |
|
|
58 |
public void setOffsetXFieldName(String fieldName); |
|
59 |
|
|
60 |
public void setOffsetYFieldName(String fieldName); |
|
61 |
|
|
62 |
public void setRotationFieldName(String fieldName); |
|
63 |
|
|
64 |
public void setClassifyingFieldName(String classifyingFieldName); |
|
65 |
|
|
66 |
|
|
67 |
|
|
68 |
public void setImagesTableName(String imagesTableName); |
|
69 |
|
|
70 |
public void setImageFieldName(String imageFieldName); |
|
71 |
|
|
72 |
public void setImageSelectedFieldName(String imageSelectedFieldName); |
|
73 |
|
|
74 |
public void setImagesTableClassifyingFieldName(String imagesTableClassifyingFieldName); |
|
75 |
|
|
76 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.swing/org.gvsig.legend.urbanhorizontalsignage.swing.api/src/main/java/org/gvsig/legend/urbanverticalsignage/swing/api/PictureMarkerSymbolTableLegendEditor.java | ||
---|---|---|
1 |
|
|
2 |
package org.gvsig.legend.urbanverticalsignage.swing.api; |
|
3 |
|
|
4 |
import org.gvsig.app.project.documents.view.legend.gui.ILegendPanel; |
|
5 |
|
|
6 |
|
|
7 |
public interface PictureMarkerSymbolTableLegendEditor extends ILegendPanel { |
|
8 |
|
|
9 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.swing/org.gvsig.legend.urbanhorizontalsignage.swing.impl/src/main/java/org/gvsig/legend/urbanhorizontalsignage/swing/impl/DefaultUrbanHorizontalSignageLegendEditor.java | ||
---|---|---|
24 | 24 |
import org.slf4j.LoggerFactory; |
25 | 25 |
|
26 | 26 |
|
27 |
@SuppressWarnings("UseSpecificCatch") |
|
27 | 28 |
public class DefaultUrbanHorizontalSignageLegendEditor extends DefaultUrbanHorizontalSignageLegendEditorView implements UrbanHorizontalSignageLegendEditor { |
28 | 29 |
|
29 | 30 |
private static final long serialVersionUID = 4307714097793669675L; |
... | ... | |
35 | 36 |
private DefaultUrbanHorizontalSignageConfigPanel configPanel; |
36 | 37 |
|
37 | 38 |
public DefaultUrbanHorizontalSignageLegendEditor() { |
38 |
this.legendClass = UrbanHorizontalSignageLocator.getUrbanHorizontalSignageManager().getLegendClass(); |
|
39 |
this.legendClass = UrbanHorizontalSignageLocator.getUrbanHorizontalSignageManager().getUrbanHorizontalSignageLegendClass();
|
|
39 | 40 |
initComponents(); |
40 | 41 |
} |
41 | 42 |
|
... | ... | |
61 | 62 |
if( this.getLegendClass().isInstance(legend) ) { |
62 | 63 |
this.legend = (UrbanHorizontalSignageLegend) legend; |
63 | 64 |
} else { |
64 |
this.legend = UrbanHorizontalSignageLocator.getUrbanHorizontalSignageManager().create(); |
|
65 |
this.legend = UrbanHorizontalSignageLocator.getUrbanHorizontalSignageManager().createUrbanHorizontalSignageLegend();
|
|
65 | 66 |
} |
66 | 67 |
|
67 | 68 |
if( layer instanceof FLyrVect ) { |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.swing/org.gvsig.legend.urbanhorizontalsignage.swing.impl/src/main/java/org/gvsig/legend/urbanhorizontalsignage/swing/impl/UrbanHorizontalSignageLegendSwingLibrary.java | ||
---|---|---|
25 | 25 |
package org.gvsig.legend.urbanhorizontalsignage.swing.impl; |
26 | 26 |
|
27 | 27 |
import org.gvsig.legend.urbanhorizontalsignage.swing.api.UrbanHorizontalSignageSwingLocator; |
28 |
import org.gvsig.legend.urbanverticalsignage.swing.impl.DefaultPictureMarkerSymbolTableLegendEditor; |
|
28 | 29 |
import org.gvsig.symbology.swing.SymbologySwingLibrary; |
29 | 30 |
import org.gvsig.symbology.swing.SymbologySwingLocator; |
30 | 31 |
import org.gvsig.symbology.swing.SymbologySwingManager; |
... | ... | |
51 | 52 |
protected void doPostInitialize() throws LibraryException { |
52 | 53 |
SymbologySwingManager symmnager = SymbologySwingLocator.getSwingManager(); |
53 | 54 |
symmnager.registerLegendEditor(DefaultUrbanHorizontalSignageLegendEditor.class); |
54 |
} |
|
55 |
symmnager.registerLegendEditor(DefaultPictureMarkerSymbolTableLegendEditor.class); |
|
56 |
} |
|
55 | 57 |
|
56 | 58 |
} |
org.gvsig.legend.urbanhorizontalsignage/trunk/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.swing/org.gvsig.legend.urbanhorizontalsignage.swing.impl/src/main/java/org/gvsig/legend/urbanverticalsignage/swing/impl/DefaultPictureMarkerSymbolTableLegendEditorView.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
|
|
3 |
<object classname="com.jeta.forms.store.memento.FormPackage"> |
|
4 |
<at name="fileversion"> |
|
5 |
<object classname="com.jeta.forms.store.memento.FormsVersion2"> |
|
6 |
<at name="major">2</at> |
|
7 |
<at name="minor">0</at> |
|
8 |
<at name="sub">0</at> |
|
9 |
</object> |
|
10 |
</at> |
|
11 |
<at name="form"> |
|
12 |
<object classname="com.jeta.forms.store.memento.FormMemento"> |
|
13 |
<super classname="com.jeta.forms.store.memento.ComponentMemento"> |
|
14 |
<at name="cellconstraints"> |
|
15 |
<object classname="com.jeta.forms.store.memento.CellConstraintsMemento"> |
|
16 |
<at name="column">1</at> |
|
17 |
<at name="row">1</at> |
|
18 |
<at name="colspan">1</at> |
|
19 |
<at name="rowspan">1</at> |
|
20 |
<at name="halign">default</at> |
|
21 |
<at name="valign">default</at> |
|
22 |
<at name="insets" object="insets">0,0,0,0</at> |
|
23 |
</object> |
|
24 |
</at> |
|
25 |
<at name="componentclass">com.jeta.forms.gui.form.FormComponent</at> |
|
26 |
</super> |
|
27 |
<at name="id">/home/jjdelcerro/datos/devel/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.swing/org.gvsig.legend.urbanhorizontalsignage.swing.impl/src/main/java/org/gvsig/legend/urbanverticalsignage/swing/impl/DefaultPictureMarkerSymbolTableLegendEditorView.xml</at> |
|
28 |
<at name="path">datos/devel/org.gvsig.legend.urbanhorizontalsignage/org.gvsig.legend.urbanhorizontalsignage.swing/org.gvsig.legend.urbanhorizontalsignage.swing.impl/src/main/java/org/gvsig/legend/urbanverticalsignage/swing/impl/DefaultPictureMarkerSymbolTableLegendEditorView.xml</at> |
|
29 |
<at name="rowspecs">CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE</at> |
|
30 |
<at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE</at> |
|
31 |
<at name="components"> |
|
32 |
<object classname="java.util.LinkedList"> |
|
33 |
<item > |
|
34 |
<at name="value"> |
|
35 |
<object classname="com.jeta.forms.store.memento.BeanMemento"> |
|
36 |
<super classname="com.jeta.forms.store.memento.ComponentMemento"> |
|
37 |
<at name="cellconstraints"> |
|
38 |
<object classname="com.jeta.forms.store.memento.CellConstraintsMemento"> |
|
39 |
<at name="column">2</at> |
|
40 |
<at name="row">2</at> |
|
41 |
<at name="colspan">1</at> |
|
42 |
<at name="rowspan">1</at> |
|
43 |
<at name="halign">default</at> |
|
44 |
<at name="valign">default</at> |
|
45 |
<at name="insets" object="insets">0,0,0,0</at> |
|
46 |
</object> |
|
47 |
</at> |
|
48 |
<at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at> |
|
49 |
</super> |
|
50 |
<at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at> |
|
51 |
<at name="beanclass">com.jeta.forms.components.label.JETALabel</at> |
|
52 |
<at name="beanproperties"> |
|
53 |
<object classname="com.jeta.forms.store.memento.PropertiesMemento"> |
|
54 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
|
55 |
<at name="properties"> |
|
56 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
|
57 |
<at name="border"> |
|
58 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
|
59 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
60 |
<at name="name">border</at> |
|
61 |
</super> |
|
62 |
<at name="borders"> |
|
63 |
<object classname="java.util.LinkedList"> |
|
64 |
<item > |
|
65 |
<at name="value"> |
|
66 |
<object classname="com.jeta.forms.store.properties.DefaultBorderProperty"> |
|
67 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
68 |
<at name="name">border</at> |
|
69 |
</super> |
|
70 |
</object> |
|
71 |
</at> |
|
72 |
</item> |
|
73 |
</object> |
|
74 |
</at> |
|
75 |
</object> |
|
76 |
</at> |
|
77 |
<at name="name">lblImageSize</at> |
|
78 |
<at name="width">229</at> |
|
79 |
<at name="text">_Size</at> |
|
80 |
<at name="fill"> |
|
81 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
82 |
<at name="name">fill</at> |
|
83 |
</object> |
|
84 |
</at> |
|
85 |
<at name="height">26</at> |
|
86 |
</object> |
|
87 |
</at> |
|
88 |
</object> |
|
89 |
</at> |
|
90 |
</object> |
|
91 |
</at> |
|
92 |
</item> |
|
93 |
<item > |
|
94 |
<at name="value"> |
|
95 |
<object classname="com.jeta.forms.store.memento.BeanMemento"> |
|
96 |
<super classname="com.jeta.forms.store.memento.ComponentMemento"> |
|
97 |
<at name="cellconstraints"> |
|
98 |
<object classname="com.jeta.forms.store.memento.CellConstraintsMemento"> |
|
99 |
<at name="column">2</at> |
|
100 |
<at name="row">4</at> |
|
101 |
<at name="colspan">1</at> |
|
102 |
<at name="rowspan">1</at> |
|
103 |
<at name="halign">default</at> |
|
104 |
<at name="valign">default</at> |
|
105 |
<at name="insets" object="insets">0,0,0,0</at> |
|
106 |
</object> |
|
107 |
</at> |
|
108 |
<at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at> |
|
109 |
</super> |
|
110 |
<at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at> |
|
111 |
<at name="beanclass">com.jeta.forms.components.label.JETALabel</at> |
|
112 |
<at name="beanproperties"> |
|
113 |
<object classname="com.jeta.forms.store.memento.PropertiesMemento"> |
|
114 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
|
115 |
<at name="properties"> |
|
116 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
|
117 |
<at name="border"> |
|
118 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
|
119 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
120 |
<at name="name">border</at> |
|
121 |
</super> |
|
122 |
<at name="borders"> |
|
123 |
<object classname="java.util.LinkedList"> |
|
124 |
<item > |
|
125 |
<at name="value"> |
|
126 |
<object classname="com.jeta.forms.store.properties.DefaultBorderProperty"> |
|
127 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
128 |
<at name="name">border</at> |
|
129 |
</super> |
|
130 |
</object> |
|
131 |
</at> |
|
132 |
</item> |
|
133 |
</object> |
|
134 |
</at> |
|
135 |
</object> |
|
136 |
</at> |
|
137 |
<at name="name">lblLineToOffsetColor</at> |
|
138 |
<at name="width">229</at> |
|
139 |
<at name="text">_Line_to_offset_color</at> |
|
140 |
<at name="fill"> |
|
141 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
142 |
<at name="name">fill</at> |
|
143 |
</object> |
|
144 |
</at> |
|
145 |
<at name="height">26</at> |
|
146 |
</object> |
|
147 |
</at> |
|
148 |
</object> |
|
149 |
</at> |
|
150 |
</object> |
|
151 |
</at> |
|
152 |
</item> |
|
153 |
<item > |
|
154 |
<at name="value"> |
|
155 |
<object classname="com.jeta.forms.store.memento.BeanMemento"> |
|
156 |
<super classname="com.jeta.forms.store.memento.ComponentMemento"> |
|
157 |
<at name="cellconstraints"> |
|
158 |
<object classname="com.jeta.forms.store.memento.CellConstraintsMemento"> |
|
159 |
<at name="column">2</at> |
|
160 |
<at name="row">10</at> |
|
161 |
<at name="colspan">1</at> |
|
162 |
<at name="rowspan">1</at> |
|
163 |
<at name="halign">default</at> |
|
164 |
<at name="valign">default</at> |
|
165 |
<at name="insets" object="insets">0,0,0,0</at> |
|
166 |
</object> |
|
167 |
</at> |
|
168 |
<at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at> |
|
169 |
</super> |
|
170 |
<at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at> |
|
171 |
<at name="beanclass">com.jeta.forms.components.label.JETALabel</at> |
|
172 |
<at name="beanproperties"> |
|
173 |
<object classname="com.jeta.forms.store.memento.PropertiesMemento"> |
|
174 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
|
175 |
<at name="properties"> |
|
176 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
|
177 |
<at name="border"> |
|
178 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
|
179 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
180 |
<at name="name">border</at> |
|
181 |
</super> |
|
182 |
<at name="borders"> |
|
183 |
<object classname="java.util.LinkedList"> |
|
184 |
<item > |
|
185 |
<at name="value"> |
|
186 |
<object classname="com.jeta.forms.store.properties.DefaultBorderProperty"> |
|
187 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
188 |
<at name="name">border</at> |
|
189 |
</super> |
|
190 |
</object> |
|
191 |
</at> |
|
192 |
</item> |
|
193 |
</object> |
|
194 |
</at> |
|
195 |
</object> |
|
196 |
</at> |
|
197 |
<at name="name">lblClassifyingFieldName</at> |
|
198 |
<at name="width">229</at> |
|
199 |
<at name="text">_Classifying_field</at> |
|
200 |
<at name="fill"> |
|
201 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
202 |
<at name="name">fill</at> |
|
203 |
</object> |
|
204 |
</at> |
|
205 |
<at name="height">26</at> |
|
206 |
</object> |
|
207 |
</at> |
|
208 |
</object> |
|
209 |
</at> |
|
210 |
</object> |
|
211 |
</at> |
|
212 |
</item> |
|
213 |
<item > |
|
214 |
<at name="value"> |
|
215 |
<object classname="com.jeta.forms.store.memento.BeanMemento"> |
|
216 |
<super classname="com.jeta.forms.store.memento.ComponentMemento"> |
|
217 |
<at name="cellconstraints"> |
|
218 |
<object classname="com.jeta.forms.store.memento.CellConstraintsMemento"> |
|
219 |
<at name="column">2</at> |
|
220 |
<at name="row">12</at> |
|
221 |
<at name="colspan">1</at> |
|
222 |
<at name="rowspan">1</at> |
|
223 |
<at name="halign">default</at> |
|
224 |
<at name="valign">default</at> |
|
225 |
<at name="insets" object="insets">0,0,0,0</at> |
|
226 |
</object> |
|
227 |
</at> |
|
228 |
<at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at> |
|
229 |
</super> |
|
230 |
<at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at> |
|
231 |
<at name="beanclass">com.jeta.forms.components.label.JETALabel</at> |
|
232 |
<at name="beanproperties"> |
|
233 |
<object classname="com.jeta.forms.store.memento.PropertiesMemento"> |
|
234 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
|
235 |
<at name="properties"> |
|
236 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
|
237 |
<at name="border"> |
|
238 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
|
239 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
240 |
<at name="name">border</at> |
|
241 |
</super> |
|
242 |
<at name="borders"> |
|
243 |
<object classname="java.util.LinkedList"> |
|
244 |
<item > |
|
245 |
<at name="value"> |
|
246 |
<object classname="com.jeta.forms.store.properties.DefaultBorderProperty"> |
|
247 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
248 |
<at name="name">border</at> |
|
249 |
</super> |
|
250 |
</object> |
|
251 |
</at> |
|
252 |
</item> |
|
253 |
</object> |
|
254 |
</at> |
|
255 |
</object> |
|
256 |
</at> |
|
257 |
<at name="name">lblOffsetXFieldName</at> |
|
258 |
<at name="width">229</at> |
|
259 |
<at name="text">_OffsetX_field</at> |
|
260 |
<at name="fill"> |
|
261 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
262 |
<at name="name">fill</at> |
|
263 |
</object> |
|
264 |
</at> |
|
265 |
<at name="height">26</at> |
|
266 |
</object> |
|
267 |
</at> |
|
268 |
</object> |
|
269 |
</at> |
|
270 |
</object> |
|
271 |
</at> |
|
272 |
</item> |
|
273 |
<item > |
|
274 |
<at name="value"> |
|
275 |
<object classname="com.jeta.forms.store.memento.BeanMemento"> |
|
276 |
<super classname="com.jeta.forms.store.memento.ComponentMemento"> |
|
277 |
<at name="cellconstraints"> |
|
278 |
<object classname="com.jeta.forms.store.memento.CellConstraintsMemento"> |
|
279 |
<at name="column">2</at> |
|
280 |
<at name="row">14</at> |
|
281 |
<at name="colspan">1</at> |
|
282 |
<at name="rowspan">1</at> |
|
283 |
<at name="halign">default</at> |
|
284 |
<at name="valign">default</at> |
|
285 |
<at name="insets" object="insets">0,0,0,0</at> |
|
286 |
</object> |
|
287 |
</at> |
|
288 |
<at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at> |
|
289 |
</super> |
|
290 |
<at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at> |
|
291 |
<at name="beanclass">com.jeta.forms.components.label.JETALabel</at> |
|
292 |
<at name="beanproperties"> |
|
293 |
<object classname="com.jeta.forms.store.memento.PropertiesMemento"> |
|
294 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
|
295 |
<at name="properties"> |
|
296 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
|
297 |
<at name="border"> |
|
298 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
|
299 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
300 |
<at name="name">border</at> |
|
301 |
</super> |
|
302 |
<at name="borders"> |
|
303 |
<object classname="java.util.LinkedList"> |
|
304 |
<item > |
|
305 |
<at name="value"> |
|
306 |
<object classname="com.jeta.forms.store.properties.DefaultBorderProperty"> |
|
307 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
308 |
<at name="name">border</at> |
|
309 |
</super> |
|
310 |
</object> |
|
311 |
</at> |
|
312 |
</item> |
|
313 |
</object> |
|
314 |
</at> |
|
315 |
</object> |
|
316 |
</at> |
|
317 |
<at name="name">lblOffsetYFieldName</at> |
|
318 |
<at name="width">229</at> |
|
319 |
<at name="text">_OffsetY_field</at> |
|
320 |
<at name="fill"> |
|
321 |
<object classname="com.jeta.forms.store.properties.effects.PaintProperty"> |
|
322 |
<at name="name">fill</at> |
|
323 |
</object> |
|
324 |
</at> |
|
325 |
<at name="height">26</at> |
|
326 |
</object> |
|
327 |
</at> |
|
328 |
</object> |
|
329 |
</at> |
|
330 |
</object> |
|
331 |
</at> |
|
332 |
</item> |
|
333 |
<item > |
|
334 |
<at name="value"> |
|
335 |
<object classname="com.jeta.forms.store.memento.BeanMemento"> |
|
336 |
<super classname="com.jeta.forms.store.memento.ComponentMemento"> |
|
337 |
<at name="cellconstraints"> |
|
338 |
<object classname="com.jeta.forms.store.memento.CellConstraintsMemento"> |
|
339 |
<at name="column">2</at> |
|
340 |
<at name="row">16</at> |
|
341 |
<at name="colspan">1</at> |
|
342 |
<at name="rowspan">1</at> |
|
343 |
<at name="halign">default</at> |
|
344 |
<at name="valign">default</at> |
|
345 |
<at name="insets" object="insets">0,0,0,0</at> |
|
346 |
</object> |
|
347 |
</at> |
|
348 |
<at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at> |
|
349 |
</super> |
|
350 |
<at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at> |
|
351 |
<at name="beanclass">com.jeta.forms.components.label.JETALabel</at> |
|
352 |
<at name="beanproperties"> |
|
353 |
<object classname="com.jeta.forms.store.memento.PropertiesMemento"> |
|
354 |
<at name="classname">com.jeta.forms.components.label.JETALabel</at> |
|
355 |
<at name="properties"> |
|
356 |
<object classname="com.jeta.forms.store.support.PropertyMap"> |
|
357 |
<at name="border"> |
|
358 |
<object classname="com.jeta.forms.store.properties.CompoundBorderProperty"> |
|
359 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
360 |
<at name="name">border</at> |
|
361 |
</super> |
|
362 |
<at name="borders"> |
|
363 |
<object classname="java.util.LinkedList"> |
|
364 |
<item > |
|
365 |
<at name="value"> |
|
366 |
<object classname="com.jeta.forms.store.properties.DefaultBorderProperty"> |
|
367 |
<super classname="com.jeta.forms.store.properties.BorderProperty"> |
|
368 |
<at name="name">border</at> |
|
369 |
</super> |
|
370 |
</object> |
|
371 |
</at> |
|
372 |
</item> |
|
373 |
</object> |
|
374 |
</at> |
|
375 |
</object> |
|
376 |
</at> |
|
377 |
<at name="name">lblRotationFieldName</at> |
|
378 |
<at name="width">229</at> |
Also available in: Unified diff