Revision 2741

View differences:

org.gvsig.legend.graduatedsymbols.app.mainplugin/tags/org.gvsig.legend.graduatedsymbols.app.mainplugin-1.0.78/buildNumber.properties
1
#Sat Oct 05 18:47:22 CEST 2019
2
buildNumber=81
org.gvsig.legend.graduatedsymbols.app.mainplugin/tags/org.gvsig.legend.graduatedsymbols.app.mainplugin-1.0.78/src/main/assembly/gvsig-plugin-package.xml
1
<!--
2

  
3
    gvSIG. Desktop Geographic Information System.
4

  
5
    Copyright (C) 2007-2013 gvSIG Association.
6

  
7
    This program is free software; you can redistribute it and/or
8
    modify it under the terms of the GNU General Public License
9
    as published by the Free Software Foundation; either version 3
10
    of the License, or (at your option) any later version.
11

  
12
    This program is distributed in the hope that it will be useful,
13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
    GNU General Public License for more details.
16

  
17
    You should have received a copy of the GNU General Public License
18
    along with this program; if not, write to the Free Software
19
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
    MA  02110-1301, USA.
21

  
22
    For any additional information, do not hesitate to contact us
23
    at info AT gvsig.com, or visit our website www.gvsig.com.
24

  
25
-->
26
<assembly>
27
  <id>gvsig-plugin-package</id>
28
  <formats>
29
    <format>zip</format>
30
  </formats>
31
  <baseDirectory>${project.artifactId}</baseDirectory>
32
  <includeBaseDirectory>true</includeBaseDirectory>
33
  <files>
34
    <file>
35
      <source>target/${project.artifactId}-${project.version}.jar</source>
36
      <outputDirectory>lib</outputDirectory>
37
    </file>
38
    <file>
39
      <source>target/package.info</source>
40
    </file>
41
  </files>
42

  
43
  <fileSets>
44
    <fileSet>
45
      <directory>src/main/resources-plugin</directory>
46
      <outputDirectory>.</outputDirectory>
47
    </fileSet>
48
  </fileSets>
49

  
50
<!-- No dependencies
51
  <dependencySets>
52
    <dependencySet>
53
      <useProjectArtifact>false</useProjectArtifact>
54
      <useTransitiveDependencies>false</useTransitiveDependencies>
55
      <outputDirectory>lib</outputDirectory>
56
      <includes>
57
		<include>...</include>
58
      </includes>
59
    </dependencySet>
60
  </dependencySets>
61
-->
62

  
63
</assembly>
64

  
org.gvsig.legend.graduatedsymbols.app.mainplugin/tags/org.gvsig.legend.graduatedsymbols.app.mainplugin-1.0.78/src/main/java/org/gvsig/symbology/fmap/rendering/GraduatedSymbolsLegend.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41

  
42
/* CVS MESSAGES:
43
 *
44
 * $Id: GraduatedSymbolLegend.java 16187 2007-11-08 16:13:44Z jdominguez $
45
 * $Log$
46
 * Revision 1.3  2007-05-17 09:32:06  jaume
47
 * *** empty log message ***
48
 *
49
 * Revision 1.2  2007/03/09 11:20:56  jaume
50
 * Advanced symbology (start committing)
51
 *
52
 * Revision 1.1.2.4  2007/02/15 16:23:44  jaume
53
 * *** empty log message ***
54
 *
55
 * Revision 1.1.2.3  2007/02/14 15:53:35  jaume
56
 * *** empty log message ***
57
 *
58
 * Revision 1.1.2.2  2007/02/13 16:19:19  jaume
59
 * graduated symbol legends (start commiting)
60
 *
61
 * Revision 1.1.2.1  2007/02/12 15:15:20  jaume
62
 * refactored interval legend and added graduated symbol legend
63
 *
64
 *
65
 */
66
package org.gvsig.symbology.fmap.rendering;
67

  
68
import org.slf4j.Logger;
69
import org.slf4j.LoggerFactory;
70

  
71
import org.gvsig.fmap.dal.feature.Feature;
72
import org.gvsig.fmap.geom.Geometry;
73
import org.gvsig.fmap.geom.GeometryLocator;
74
import org.gvsig.fmap.geom.GeometryManager;
75
import org.gvsig.fmap.mapcontext.MapContextException;
76
import org.gvsig.fmap.mapcontext.MapContextLocator;
77
import org.gvsig.fmap.mapcontext.MapContextManager;
78
import org.gvsig.fmap.mapcontext.rendering.legend.IInterval;
79
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
80
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.VectorialIntervalLegend;
81
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.IFillSymbol;
82
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.impl.MarkerFillSymbol;
83
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.impl.MultiLayerFillSymbol;
84
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.marker.IMarkerSymbol;
85
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.style.SimpleMarkerFillPropertiesStyle;
86
import org.gvsig.tools.ToolsLocator;
87
import org.gvsig.tools.dynobject.DynStruct;
88
import org.gvsig.tools.persistence.PersistenceManager;
89
import org.gvsig.tools.persistence.PersistentState;
90
import org.gvsig.tools.persistence.exception.PersistenceException;
91
import org.gvsig.tools.util.Callable;
92

  
93
/**
94
 * <p>GraduatedSymbolLegend is a legend that allows to classify ranges of
95
 * values using a value with symbol sizes.<b>
96
 * </p>
97
 * <p>
98
 * The symbol size will be calculated according the min size, the
99
 * max size and the amount of intervals. So for a min size of 1, a max size
100
 * of 5, and 5 intervals, symbol sizes will be [1, 2, 3, 4, 5].
101
 * </p>
102
 * @author  jaume dominguez faus - jaume.dominguez@iver.es
103
 */
104
public class GraduatedSymbolsLegend extends VectorialIntervalLegend {
105
    
106
    private static Logger logger = LoggerFactory.getLogger(
107
        GraduatedSymbolsLegend.class);
108
    
109
    public static final String
110
    GRADUATED_SYMBOL_LEGEND_NAME =
111
        "GRADUATED_SYMBOL_LEGEND";  
112
    public static final String
113
    GRADUATED_SYMBOL_LEGEND_PERSISTENCE_DEFINITION_NAME =
114
        "GRADUATED_SYMBOL_LEGEND_PERSISTENCE_DEFINITION";  
115

  
116
    
117
	private double maxSymbolSize;
118
	private double minSymbolSize;
119
	private ISymbol backgroundSymbol;
120
	private int templateShapeType;
121
	/**
122
	 * DefaultConstructor
123
	 */
124
	public GraduatedSymbolsLegend() {
125
		super();
126
	}
127

  
128
	/**
129
	 * Convenience constructor.
130
	 *
131
	 * Creates a new instance of GraduatedSymbolLegend from a VectorialIntervalLegend by
132
	 * taking the same fields.
133
	 * @param leg
134
	 */
135
	public GraduatedSymbolsLegend(VectorialIntervalLegend leg) {
136
		this();
137
		
138
        this.setShapeType(leg.getShapeType());
139
        Object[] _keys = leg.getValues();
140
        ISymbol[] _syms = leg.getSymbols();
141
        
142
        if (_keys == null || _syms == null) {
143
            logger.info("Warning: inconsistent VectorialIntervalLegend (keys or syms is null)");
144
        } else {
145
            if (_keys.length != _syms.length) {
146
                logger.info("Warning: inconsistent VectorialIntervalLegend (keys and syms have dif length)");
147
            } else {
148
                for (int i=0; i<_keys.length; i++) {
149
                    this.addSymbol(_keys[i], _syms[i]);
150
                }
151
            }
152
        }
153
        
154
        this.setClassifyingFieldNames(leg.getClassifyingFieldNames());
155
        this.setClassifyingFieldTypes(leg.getClassifyingFieldTypes());
156
        this.setDefaultSymbol(leg.getDefaultSymbol());
157
        this.setIntervalType(leg.getIntervalType());
158
        this.useDefaultSymbol(leg.isUseDefaultSymbol());
159
	}
160

  
161
	/**
162
	 * Returns the max symbol size. Combined with the min symbol size and
163
	 * the interval count, will produce the symbol sizes.
164
	 * @return double, the max size.
165
	 */
166
	public double getMaxSymbolSize() {
167
		return maxSymbolSize;
168
	}
169

  
170
	/**
171
	 * Returns the min symbol size. Combined with the max symbol size and
172
	 * the interval count, will produce the symbol sizes.
173
	 * @return double, the min size.
174
	 */
175
	public double getMinSymbolSize() {
176
		return minSymbolSize;
177
	}
178

  
179
	/**
180
	 * Sets the max symbol size. Combined with the min symbol size and
181
	 * the interval count, will produce the symbol sizes.
182
	 */
183
	public void setMaxSymbolSize(double size) {
184
		this.maxSymbolSize = size;
185
	}
186

  
187
	/**
188
	 * Sets the min symbol size. Combined with the max symbol size and
189
	 * the interval count, will produce the symbol sizes.
190
	 */
191
	public void setMinSymbolSize(double size) {
192
		this.minSymbolSize = size;
193
	}
194

  
195
	
196
	public ISymbol getSymbolByFeature(Feature feat) throws MapContextException {
197
	    
198
		ISymbol theSymbol = super.getSymbolByFeature(feat);
199

  
200
		if (isPolygonal(getShapeType()) && theSymbol instanceof IMarkerSymbol) {
201
			// transform it to a fill symbol
202
            theSymbol = toFillSymbol(theSymbol);
203
		}
204

  
205
		if (backgroundSymbol != null) {
206
			MultiLayerFillSymbol multi = new MultiLayerFillSymbol() ;
207
			multi.addLayer(backgroundSymbol);
208
			multi.addLayer(theSymbol);
209
			return multi;
210
		}
211
		return theSymbol;
212
	}
213

  
214
	@Override
215
	public ISymbol getSymbolByInterval(IInterval key) {
216
	    
217
		ISymbol theSymbol = super.getSymbolByInterval(key);
218
        if (isPolygonal(getShapeType()) && theSymbol instanceof IMarkerSymbol) {
219
			// transform it to a fill symbol
220
			theSymbol = toFillSymbol(theSymbol);
221
		}
222
		return theSymbol;
223
	}
224

  
225
	/**
226
	 * Obtains the background symbol
227
	 */
228
	public ISymbol getBackgroundSymbol() {
229
		return backgroundSymbol;
230
	}
231

  
232
	/**
233
	 * Sets the background symbol.
234
	 * @param symbol
235
	 */
236
	public void setBackgroundSymbol(ISymbol symbol) {
237
		this.backgroundSymbol = symbol;
238
	}
239

  
240
	public ISymbol getDefaultSymbol() {
241
		return defaultSymbol;
242
	}
243

  
244
	@Override
245
	public boolean isSuitableForShapeType(int st) {
246
		return areSameBasicType(getShapeType(), st)
247
		    ||
248
		    (isPoint(getTemplateShapeType()) && isPolygonal(st));
249
	}
250

  
251

  
252

  
253
	/**
254
	 * Obtains the shapetype of the background symbol
255
	 */
256
	public int getTemplateShapeType() {
257
		return templateShapeType;
258
	}
259
	/**
260
	 * Sets the shapetype of the background symbol
261
	 */
262
	public void setTemplateShapeType(int tst) {
263
		if (isPolygonal(getShapeType())) {
264
			if(isPoint(tst))
265
				this.templateShapeType = tst;
266
		}
267
		else if(areSameBasicType(tst, getShapeType())) {
268
			this.templateShapeType = tst;
269
		}
270
	}
271
	
272
    public static boolean isPolygonal(int ty) {
273
        GeometryManager geomManager = GeometryLocator.getGeometryManager();
274
        return geomManager.isSubtype(Geometry.TYPES.MULTISURFACE, ty) || 
275
            geomManager.isSubtype(Geometry.TYPES.SURFACE, ty);
276
    }
277

  
278

  
279
    public static boolean isLinear(int ty) {
280
        GeometryManager geomManager = GeometryLocator.getGeometryManager();
281
        return geomManager.isSubtype(Geometry.TYPES.MULTICURVE, ty) || 
282
            geomManager.isSubtype(Geometry.TYPES.CURVE, ty);
283
    }
284
    
285
    public static boolean isPoint(int ty) {
286
        GeometryManager geomManager = GeometryLocator.getGeometryManager();
287
        return geomManager.isSubtype(Geometry.TYPES.MULTIPOINT, ty) || 
288
            geomManager.isSubtype(Geometry.TYPES.POINT, ty);
289
    }
290
    
291
    public static boolean areSameBasicType(int ta, int tb) {
292
        
293
        if (isPoint(ta) && isPoint(tb)) {
294
            return true;
295
        }
296
        if (isLinear(ta) && isLinear(tb)) {
297
            return true;
298
        }
299
        if (isPolygonal(ta) && isPolygonal(tb)) {
300
            return true;
301
        }
302
        return false;
303
    }
304
    
305
    public void loadFromState(PersistentState state)
306
        throws PersistenceException {
307
        
308
        super.loadFromState(state);
309
        
310
        this.templateShapeType = state.getInt("templateShapeType");
311
        this.maxSymbolSize = state.getDouble("maxSymbolSize");
312
        this.minSymbolSize = state.getDouble("minSymbolSize");
313
        
314
        if (state.hasValue("backgroundSymbol")) {
315
            this.backgroundSymbol = (ISymbol) state.get("backgroundSymbol");
316
        }
317
    }
318

  
319
    public void saveToState(PersistentState state) throws PersistenceException {
320

  
321
        super.saveToState(state);
322
        state.set("templateShapeType", this.templateShapeType);
323
        state.set("maxSymbolSize", this.maxSymbolSize);
324
        state.set("minSymbolSize", this.minSymbolSize);
325
        if (this.backgroundSymbol != null) {
326
            state.set("backgroundSymbol", this.backgroundSymbol);
327
        }
328
        
329
    }
330
    
331

  
332
    public static class RegisterPersistence implements Callable {
333

  
334
        public Object call() throws Exception {
335
            
336
            PersistenceManager manager = ToolsLocator.getPersistenceManager();
337
            if (manager
338
                .getDefinition(GRADUATED_SYMBOL_LEGEND_PERSISTENCE_DEFINITION_NAME) == null) {
339
                DynStruct definition =
340
                    manager
341
                        .addDefinition(
342
                            GraduatedSymbolsLegend.class,
343
                            GRADUATED_SYMBOL_LEGEND_PERSISTENCE_DEFINITION_NAME,
344
                            GRADUATED_SYMBOL_LEGEND_PERSISTENCE_DEFINITION_NAME
345
                                + " Persistence definition", null, null);
346
                
347
                definition.extend(
348
                    manager.getDefinition(
349
                        VectorialIntervalLegend.
350
                        VECTORIAL_INTERVAL_LEGEND_PERSISTENCE_DEFINITION_NAME));
351

  
352
                definition.addDynFieldInt("templateShapeType").setMandatory(true);
353
                definition.addDynFieldDouble("maxSymbolSize").setMandatory(true);
354
                definition.addDynFieldDouble("minSymbolSize").setMandatory(true);
355
                definition.addDynFieldObject("backgroundSymbol")
356
                .setClassOfValue(ISymbol.class).setMandatory(false);
357
            }
358
            return Boolean.TRUE;
359
        }
360

  
361
    }
362

  
363
    public static class RegisterLegend implements Callable {
364

  
365
        public Object call() throws Exception {
366
            MapContextManager manager =
367
                MapContextLocator.getMapContextManager();
368

  
369
            manager.registerLegend(
370
                GRADUATED_SYMBOL_LEGEND_NAME,
371
                GraduatedSymbolsLegend.class);
372

  
373
            return Boolean.TRUE;
374
        }
375

  
376
    }
377
    
378
    public static IFillSymbol toFillSymbol(ISymbol sym) {
379
        
380
        if (sym instanceof IFillSymbol) {
381
            return (IFillSymbol) sym;
382

  
383
        } else if (sym instanceof IMarkerSymbol) {
384
            MarkerFillSymbol aux = new MarkerFillSymbol();
385
            aux.setMarker((IMarkerSymbol) sym);
386
            SimpleMarkerFillPropertiesStyle p = new SimpleMarkerFillPropertiesStyle();
387
            p.setFillStyle(SimpleMarkerFillPropertiesStyle.SINGLE_CENTERED_SYMBOL);
388
            aux.setMarkerFillProperties(p);
389
            return aux;
390

  
391
        } else {
392
            return null;
393

  
394
        }
395
    }
396

  
397

  
398

  
399

  
400
}
org.gvsig.legend.graduatedsymbols.app.mainplugin/tags/org.gvsig.legend.graduatedsymbols.app.mainplugin-1.0.78/src/main/java/org/gvsig/symbology/gui/layerproperties/GraduatedSymbolsPanel.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41

  
42
/* CVS MESSAGES:
43
 *
44
 * $Id: GraduatedSymbols.java 16232 2007-11-09 13:36:35Z jdominguez $
45
 * $Log$
46
 * Revision 1.8  2007-09-19 15:44:44  jaume
47
 * new signal catched (legend error)
48
 *
49
 * Revision 1.7  2007/05/21 10:38:27  jaume
50
 * *** empty log message ***
51
 *
52
 * Revision 1.6  2007/05/17 09:32:37  jaume
53
 * *** empty log message ***
54
 *
55
 * Revision 1.5  2007/05/10 09:46:45  jaume
56
 * Refactored legend interface names
57
 *
58
 * Revision 1.4  2007/05/08 15:45:31  jaume
59
 * *** empty log message ***
60
 *
61
 * Revision 1.3  2007/03/21 08:03:03  jaume
62
 * refactored to use ISymbol instead of FSymbol
63
 *
64
 * Revision 1.2  2007/03/09 11:25:00  jaume
65
 * Advanced symbology (start committing)
66
 *
67
 * Revision 1.1.2.4  2007/02/21 07:35:14  jaume
68
 * *** empty log message ***
69
 *
70
 * Revision 1.1.2.3  2007/02/14 09:59:17  jaume
71
 * *** empty log message ***
72
 *
73
 * Revision 1.1.2.2  2007/02/13 16:19:19  jaume
74
 * graduated symbol legends (start commiting)
75
 *
76
 * Revision 1.1.2.1  2007/02/12 15:14:41  jaume
77
 * refactored interval legend and added graduated symbol legend
78
 *
79
 *
80
 */
81
package org.gvsig.symbology.gui.layerproperties;
82

  
83
import java.awt.Color;
84
import java.awt.Dimension;
85
import java.awt.FlowLayout;
86
import java.text.NumberFormat;
87
import java.util.ArrayList;
88
import java.util.List;
89

  
90
import javax.swing.BorderFactory;
91
import javax.swing.ImageIcon;
92
import javax.swing.JLabel;
93
import javax.swing.JOptionPane;
94
import javax.swing.JPanel;
95

  
96
import org.slf4j.Logger;
97
import org.slf4j.LoggerFactory;
98

  
99
import org.gvsig.andami.IconThemeHelper;
100
import org.gvsig.app.ApplicationLocator;
101
import org.gvsig.app.project.documents.view.legend.gui.ILegendPanel;
102
import org.gvsig.app.project.documents.view.legend.gui.JSymbolPreviewButton;
103
import org.gvsig.app.project.documents.view.legend.gui.Quantities;
104
import org.gvsig.app.project.documents.view.legend.gui.SymbolTable;
105
import org.gvsig.app.project.documents.view.legend.gui.VectorialInterval;
106
import org.gvsig.fmap.dal.exception.ReadException;
107
import org.gvsig.fmap.geom.Geometry;
108
import org.gvsig.fmap.mapcontext.MapContextLocator;
109
import org.gvsig.fmap.mapcontext.MapContextManager;
110
import org.gvsig.fmap.mapcontext.exceptions.LegendLayerException;
111
import org.gvsig.fmap.mapcontext.layers.FLayer;
112
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
113
import org.gvsig.fmap.mapcontext.rendering.legend.IInterval;
114
import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
115
import org.gvsig.fmap.mapcontext.rendering.legend.IVectorialIntervalLegend;
116
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
117
import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
118
import org.gvsig.gui.beans.swing.JNumberSpinner;
119
import org.gvsig.i18n.Messages;
120
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.VectorialIntervalLegend;
121
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.impl.MarkerFillSymbol;
122
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.line.ILineSymbol;
123
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.line.impl.SimpleLineSymbol;
124
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.marker.IMarkerSymbol;
125
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.marker.impl.SimpleMarkerSymbol;
126
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.style.IMarkerFillPropertiesStyle;
127
import org.gvsig.symbology.fmap.rendering.GraduatedSymbolsLegend;
128

  
129

  
130
/**
131
 * Implements the interface that shows the information of a legend which
132
 * draws quantities using symbol size to show relative values.
133
 *
134
 * @author Pepe Vidal Salvador - jose.vidal.salvador@iver.es
135
 *
136
 */
137

  
138
public class GraduatedSymbolsPanel extends VectorialInterval implements ILegendPanel {
139

  
140
    private static Logger logger = LoggerFactory.getLogger(GraduatedSymbolsPanel.class);
141

  
142
	private static final long serialVersionUID = -263195536343912694L;
143
	static final double DEFAULT_SYMBOL_MAX_SIZE = 7;
144
	private static final double DEFAULT_SYMBOL_MIN_SIZE = 1;
145
	private JNumberSpinner txtMinSize;
146
	private JNumberSpinner txtMaxSize;
147
	private JSymbolPreviewButton btnTemplate;
148
	private JSymbolPreviewButton btnBackground;
149
	private int shapeType;
150
	private GridBagLayoutPanel aux;
151
	private int templateShapeType = 0 ;
152
	private boolean showBackground = true;
153

  
154
	public GraduatedSymbolsPanel() {
155
		super();
156
		this.showBackground = true;
157
	}
158

  
159
	public GraduatedSymbolsPanel(boolean showBackground) {
160
		super();
161
		this.showBackground = showBackground;
162
	}
163

  
164
	@Override
165
	public JPanel getOptionPanel() {
166

  
167
		if (optionPanel == null) {
168
			optionPanel = new JPanel(new FlowLayout(FlowLayout.LEADING));
169
			optionPanel.setBorder(BorderFactory.
170
					createTitledBorder(null,
171
					    Messages.getText("symbol")));
172

  
173
			aux = new GridBagLayoutPanel();
174
			aux.addComponent(new JLabel(Messages.getText("size")));
175
			aux.addComponent(Messages.getText("from")+":",
176
					getTxtMinSize());
177
			aux.addComponent(Messages.getText("to")+":",
178
					getTxtMaxSize());
179
			aux.addComponent(Messages.getText("template"), getBtnTemplate());
180
			optionPanel.add(aux);
181

  
182
		}
183
		return optionPanel;
184
	}
185

  
186
	/**
187
	 * Adds the button that allows the user to select a background for the graduated symbol.
188
	 */
189
	private void getBackgroundPanel() {
190
		aux.addComponent(Messages.getText("background"), getBtnBackground());
191
	}
192
	/**
193
	 * Creates the JSymbolPreviewButton for the background of the graduated symbol.
194
	 */
195
	private JSymbolPreviewButton getBtnBackground() {
196
		if (btnBackground == null) {
197
			btnBackground = new JSymbolPreviewButton(Geometry.TYPES.SURFACE);
198
			btnBackground.setPreferredSize(new Dimension(100, 35));
199

  
200
			ISymbol fillsym = MapContextLocator.getSymbolManager().createSymbol(
201
			    Geometry.TYPES.SURFACE, Color.ORANGE);
202
			btnBackground.setSymbol(fillsym);
203
		}
204
		return btnBackground;
205
	}
206
	/**
207
	 * Creates the JSymbolPreviewButton for the graduated symbol.
208
	 */
209
	private JSymbolPreviewButton getBtnTemplate() {
210
		if (btnTemplate == null) {
211
			templateShapeType =
212
			    GraduatedSymbolsLegend.isPolygonal(shapeType) ?
213
			        Geometry.TYPES.POINT : shapeType;
214
			btnTemplate = new JSymbolPreviewButton(templateShapeType);
215
			btnTemplate.setPreferredSize(new Dimension(100, 35));
216

  
217
		}
218
		return btnTemplate;
219
	}
220
	/**
221
	 * Creates the JIncrementalNumberField which is used to specify the maximum size of the
222
	 * graduated symbol
223
	 */
224
	private JNumberSpinner getTxtMaxSize() {
225
		if (txtMaxSize == null) {
226
			txtMaxSize = new JNumberSpinner(25.0,7,0.0,100.0,1.0,2);
227

  
228
		}
229
		return txtMaxSize;
230
	}
231
	/**
232
	 * Creates the JIncrementalNumberField which is used to specify the minimum size of the
233
	 * graduated symbol
234
	 */
235
	private JNumberSpinner getTxtMinSize() {
236
		if (txtMinSize == null) {
237
			txtMinSize = new JNumberSpinner(3.0,7,0.0,100.0,1.0,2);
238
		}
239
		return txtMinSize;
240
	}
241

  
242
	@Override
243
	public void setData(FLayer lyr, ILegend legend) {
244
		this.layer = (FLyrVect) lyr;
245

  
246
		try {
247
            shapeType = this.layer.getGeometryType().getType();
248
        } catch (ReadException e) {
249
            logger.info("Unable to get shapetype while setting data", e);
250
            ApplicationLocator.getManager().messageDialog(
251
                Messages.getText("_Unable_to_set_legend"),
252
                Messages.getText("error"),
253
                JOptionPane.ERROR_MESSAGE);
254
        }
255

  
256
        templateShapeType =
257
            GraduatedSymbolsLegend.isPolygonal(shapeType) ?
258
                Geometry.TYPES.POINT : shapeType;
259

  
260
		getBtnTemplate().setShapeType(templateShapeType);
261
		if(showBackground){
262
			if(GraduatedSymbolsLegend.isPolygonal(shapeType) && btnBackground == null) {
263
				getBackgroundPanel();
264
				getBtnBackground().setShapeType(Geometry.TYPES.SURFACE);
265
			}
266
		}
267

  
268
		if (symbolTable != null)
269
			pnlCenter.remove(symbolTable);
270

  
271
		getDefaultSymbolPrev(templateShapeType);
272

  
273
		symbolTable = new SymbolTable(
274
		    this, SymbolTable.INTERVALS_TYPE, templateShapeType);
275
		pnlCenter.add(symbolTable);
276

  
277
		fillFieldNames();
278

  
279
		if (legend instanceof GraduatedSymbolsLegend) {
280
            auxLegend = (GraduatedSymbolsLegend) legend.cloneLegend();
281

  
282
			getChkDefaultvalues().setSelected(auxLegend.isUseDefaultSymbol());
283
			cmbField.setSelectedItem(auxLegend.getClassifyingFieldNames()[0]);
284

  
285
			fillTableSkipDefault(auxLegend);
286

  
287
			getTxtMaxSize().setDouble(((GraduatedSymbolsLegend) auxLegend).getMaxSymbolSize());
288
			getTxtMinSize().setDouble(((GraduatedSymbolsLegend) auxLegend).getMinSymbolSize());
289
			if (auxLegend.getSymbols().length > 0){
290
				getBtnTemplate().setSymbol(((GraduatedSymbolsLegend) auxLegend).getSymbols()[auxLegend.getSymbols().length-1]);
291
			} else {
292
				getBtnTemplate().setSymbol(newSymbol(shapeType,
293
				    GraduatedSymbolsLegend.isLinear(shapeType) ? 3 : 10));
294
			}
295
			if(showBackground){
296

  
297
				if (GraduatedSymbolsLegend.isPolygonal(shapeType))
298
					getBtnBackground().setSymbol(((GraduatedSymbolsLegend) auxLegend).getBackgroundSymbol());
299
			}
300
			if (auxLegend.isUseDefaultSymbol())
301
				txtNumIntervals.setText(String.valueOf(auxLegend.getSymbols().length - 1));
302
			else
303
				txtNumIntervals.setText(String.valueOf(auxLegend.getSymbols().length));
304

  
305
		} else {
306
			// Si la capa viene con otro tipo de leyenda, creamos
307
			// una nueva del tipo que maneja este panel
308
			auxLegend = new GraduatedSymbolsLegend();
309
			getTxtMaxSize().setDouble(DEFAULT_SYMBOL_MAX_SIZE);
310
			getTxtMinSize().setDouble(DEFAULT_SYMBOL_MIN_SIZE);
311
			auxLegend.setDefaultSymbol(newSymbol(shapeType,
312
			    GraduatedSymbolsLegend.isLinear(shapeType) ? 3 : 10));
313
			getBtnTemplate().setSymbol(auxLegend.getDefaultSymbol());
314
			((GraduatedSymbolsLegend) auxLegend).setTemplateShapeType(templateShapeType);
315

  
316
		}
317
		cmbIntervalType.setSelectedIndex(auxLegend.getIntervalType());
318
		defaultSymbolPrev.setSymbol(auxLegend.getDefaultSymbol());
319
	}
320

  
321

  
322
	@Override
323
	public String getDescription() {
324
		return Messages.getText(
325
		    "draw_quantities_using_symbol_size_to_show_relative_values");
326
	}
327

  
328
	@Override
329
	public ILegend getLegend() {
330

  
331
	    GraduatedSymbolsLegend gsl =
332
		    new GraduatedSymbolsLegend((VectorialIntervalLegend) super.getLegend());
333

  
334
		double minSize = getTxtMinSize().getDouble();
335
		gsl.setMinSymbolSize(minSize);
336
		gsl.setMaxSymbolSize(getTxtMaxSize().getDouble());
337

  
338
        try {
339
            gsl.setShapeType(layer.getGeometryType().getType());
340
        } catch (ReadException e) {
341

  
342
            logger.info("Unable to get shapetype while getting legend", e);
343
            ApplicationLocator.getManager().messageDialog(
344
                Messages.getText("_Unable_to_get_legend"),
345
                Messages.getText("error"),
346
                JOptionPane.ERROR_MESSAGE);
347
        }
348

  
349
		ISymbol sym = getBtnTemplate().getSymbol();
350

  
351
		if (sym != null){
352
			gsl.setTemplateShapeType(sym.getSymbolType());
353
			gsl.setDefaultSymbol(sym);
354
		} else {
355
			gsl.setTemplateShapeType(templateShapeType);
356
		}
357

  
358
		gsl.useDefaultSymbol(getChkDefaultvalues().isSelected());
359
		if(defaultSymbolPrev.getSymbol() != null)
360
			gsl.setDefaultSymbol(defaultSymbolPrev.getSymbol());
361

  
362
		if (this.showBackground){
363

  
364
			if (GraduatedSymbolsLegend.isPolygonal(shapeType))
365
				gsl.setBackgroundSymbol(btnBackground.getSymbol());
366
		}
367

  
368
		return gsl;
369
	}
370

  
371
	@Override
372
	public ImageIcon getIcon() {
373
	    return
374
	        IconThemeHelper.getImageIcon("legend-overview-graduated-symbols");
375
	}
376

  
377
	@Override
378
	public Class getParentClass() {
379
		return Quantities.class;
380
	}
381

  
382
	@Override
383
	public String getTitle() {
384
		return Messages.getText("graduated_symbols");
385
	}
386

  
387
	@Override
388
	public JPanel getPanel() {
389
		return this;
390
	}
391

  
392
	@Override
393
	public Class getLegendClass() {
394
		return GraduatedSymbolsLegend.class;
395
	}
396

  
397
	@Override
398
	public boolean isSuitableFor(FLayer layer) {
399
		if ( super.isSuitableFor(layer)) {
400
			FLyrVect lVect = (FLyrVect) layer;
401
            try {
402
                return lVect.getGeometryType().getType()
403
                    != Geometry.TYPES.GEOMETRY;
404
            } catch (ReadException e) {
405

  
406
                ApplicationLocator.getManager().message(
407
                    Messages.getText("error_trying_to_access_to_the_layer"),
408
                    JOptionPane.ERROR_MESSAGE);
409
                return false;
410
            }
411
		}
412
		return false;
413
	}
414

  
415
	private ISymbol newSymbol(int st, double size) {
416
		if (getBtnTemplate().getSymbol() == null) {
417
			ISymbol templateSymbol;
418
            
419
            if (GraduatedSymbolsLegend.isLinear(st)) {
420
                templateSymbol = new SimpleLineSymbol();
421
                ((SimpleLineSymbol) templateSymbol).setLineWidth(size);
422
                ((SimpleLineSymbol) templateSymbol).setLineColor(Color.DARK_GRAY);
423

  
424
            } else {
425
                templateSymbol = new SimpleMarkerSymbol();
426
                ((SimpleMarkerSymbol) templateSymbol).setSize(size);
427
                ((SimpleMarkerSymbol) templateSymbol).setColor(Color.DARK_GRAY);
428
                
429
			}
430
			getBtnTemplate().setSymbol(templateSymbol);
431
			return newSymbol(st, size);
432
		} else {
433
			// clone symbol
434
			ISymbol mySymbol = null;
435

  
436
			try {
437
                mySymbol = (ISymbol) getBtnTemplate().getSymbol().clone();
438
            } catch (CloneNotSupportedException e) {
439

  
440
                ApplicationLocator.getManager().message(
441
                    Messages.getText("_Unable_to_get_symbol"),
442
                    JOptionPane.ERROR_MESSAGE);
443
                logger.info("Error: Could not clone symbol", e);
444
            }
445

  
446
			if (mySymbol instanceof ILineSymbol) {
447
				ILineSymbol lSym = (ILineSymbol) mySymbol;
448
				lSym.setLineWidth(size);
449
			}
450

  
451
			if (mySymbol instanceof IMarkerSymbol) {
452
				IMarkerSymbol mSym = (IMarkerSymbol) mySymbol;
453
				mSym.setSize(size);
454
				if (GraduatedSymbolsLegend.isPolygonal(st)) {
455
					// this is to allow using in Polygon layers
456
					MarkerFillSymbol fillSymbol = new MarkerFillSymbol();
457
					fillSymbol.setOutline(null);
458
					fillSymbol.setFillColor(null);
459
					fillSymbol.getMarkerFillProperties().
460
					setFillStyle(IMarkerFillPropertiesStyle.
461
					    SINGLE_CENTERED_SYMBOL);
462
					fillSymbol.setMarker(mSym);
463
				}
464
			}
465
			return mySymbol;
466
		}
467
	}
468

  
469
	@Override
470
	protected void fillTableValues() {
471

  
472
		symbolTable.removeAllItems();
473

  
474
		try {
475
		    IInterval[] arrayIntervalos = calculateIntervals();
476
			if (arrayIntervalos == null)
477
				return;
478

  
479
			IInterval interval;
480
			NumberFormat.getInstance().setMaximumFractionDigits(2);
481
			auxLegend.clear();
482

  
483
			float minSize = (float) getTxtMinSize().getDouble();
484
			float maxSize = (float) getTxtMaxSize().getDouble();
485
			ISymbol theSymbol;
486

  
487
			this.shapeType = layer.getGeometryType().getType();
488

  
489
			if (GraduatedSymbolsLegend.isPolygonal(this.shapeType)) {
490
			    this.templateShapeType = Geometry.TYPES.POINT;
491
			}
492

  
493
			MapContextManager mcm =
494
			    MapContextLocator.getMapContextManager();
495
			auxLegend = (IVectorialIntervalLegend)
496
			    mcm.createLegend(
497
			    IVectorialIntervalLegend.LEGEND_NAME);
498
			auxLegend.setShapeType(this.shapeType);
499
			auxLegend.setIntervalType(this.cmbIntervalType.getSelectedIndex());
500

  
501
			if (chkdefaultvalues.isSelected()) {
502
				auxLegend.getDefaultSymbol().setDescription("Default");
503
				auxLegend.addSymbol("Default",
504
				    mcm.getSymbolManager().createSymbol(
505
				        this.templateShapeType));
506
			}
507

  
508
			int symbolType;
509
			symbolType = layer.getGeometryType().getType();
510
			int numSymbols = 0;
511

  
512
			double step = (maxSize - minSize) / arrayIntervalos.length;
513
			double size = minSize;
514
			for (int k = 0; k < arrayIntervalos.length; k++) {
515
				interval = arrayIntervalos[k];
516
				theSymbol = newSymbol(symbolType, size);
517

  
518
				auxLegend.addSymbol(interval, theSymbol);
519
				numSymbols++;
520

  
521
				if (numSymbols > 100) {
522
					int resp = JOptionPane.showConfirmDialog(this,
523
					    Messages.getText("mas_de_100_simbolos"),
524
					    Messages.getText("quiere_continuar"),
525
					    JOptionPane.YES_NO_OPTION,
526
					    JOptionPane.WARNING_MESSAGE);
527

  
528
					if ((resp == JOptionPane.NO_OPTION) ||
529
							(resp == JOptionPane.DEFAULT_OPTION)) {
530
						return;
531
					}
532
				}
533

  
534

  
535
				theSymbol.setDescription(NumberFormat.getInstance().format(interval.getMin()) +
536
						" - " +
537
						NumberFormat.getInstance().format(interval.getMax()));
538

  
539
				size = size + step;
540
			} // for
541

  
542
			fillTableSkipDefault(auxLegend);
543

  
544
		} catch (ReadException re) {
545
		    logger.info("Error could_not_get_shape_type", re);
546
            ApplicationLocator.getManager().messageDialog(
547
                Messages.getText("could_not_get_shape_type"),
548
                Messages.getText("error"),
549
                JOptionPane.ERROR_MESSAGE);
550

  
551
		} catch (LegendLayerException lle) {
552
            logger.info("Error failed_computing_intervals", lle);
553
            ApplicationLocator.getManager().messageDialog(
554
                Messages.getText("failed_computing_intervals"),
555
                Messages.getText("error"),
556
                JOptionPane.ERROR_MESSAGE);
557
		}
558

  
559
		bDelAll.setEnabled(true);
560
		bDel.setEnabled(true);
561

  
562
	}
563

  
564
	public void setShowBackground(boolean sb){
565
		this.showBackground = sb;
566
	}
567

  
568
	public boolean getShowBackground(){
569
		return this.showBackground;
570
	}
571

  
572
    private void fillTableSkipDefault(IVectorialIntervalLegend leg) {
573

  
574
        Object[] src_expr = leg.getValues();
575
        ISymbol[] src_syms = leg.getSymbols();
576
        String[] src_descs = leg.getDescriptions();
577

  
578
        List syms = new ArrayList();
579
        List vals = new ArrayList();
580
        List descs = new ArrayList();
581
        for (int i=0; i<src_expr.length; i++) {
582
            if (src_expr[i] instanceof IInterval) {
583
                syms.add(src_syms[i]);
584
                vals.add(src_expr[i]);
585
                descs.add(src_descs[i]);
586
            }
587
        }
588
        symbolTable.fillTableFromSymbolList(
589
            (ISymbol[]) syms.toArray(new ISymbol[0]),
590
            (Object[]) vals.toArray(new Object[0]),
591
            (String[]) descs.toArray(new String[0]));
592
    }
593

  
594

  
595

  
596

  
597
}  //  @jve:decl-index=0:visual-constraint="10,10"
org.gvsig.legend.graduatedsymbols.app.mainplugin/tags/org.gvsig.legend.graduatedsymbols.app.mainplugin-1.0.78/src/main/java/org/gvsig/symbology/library/GraduatedSymbolsLibrary.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2013 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.symbology.library;
24

  
25
import org.gvsig.andami.IconThemeHelper;
26
import org.gvsig.app.project.documents.view.legend.gui.LegendManager;
27
import org.gvsig.symbology.SymbologyLibrary;
28
import org.gvsig.symbology.fmap.rendering.GraduatedSymbolsLegend;
29
import org.gvsig.symbology.gui.layerproperties.GraduatedSymbolsPanel;
30
import org.gvsig.tools.library.AbstractLibrary;
31
import org.gvsig.tools.library.LibraryException;
32
import org.gvsig.tools.persistence.xml.XMLPersistenceLibrary;
33
import org.gvsig.tools.util.Caller;
34
import org.gvsig.tools.util.impl.DefaultCaller;
35

  
36

  
37
/**
38
 * Simple library to register graduated symbols legend
39
 * 
40
 * @author jldominguez
41
 *
42
 */
43
public class GraduatedSymbolsLibrary extends AbstractLibrary {
44

  
45

  
46
    public void doRegistration() {
47
        registerAsImplementationOf(GraduatedSymbolsLibrary.class);
48
        /*
49
         * This checks map context library registration
50
         */
51
        require(SymbologyLibrary.class);
52
        /*
53
         * This is because we need to use persistence manager
54
         */
55
        require(XMLPersistenceLibrary.class);
56
    }
57

  
58
    protected void doInitialize() throws LibraryException {
59
        
60
    }
61

  
62

  
63
    protected void doPostInitialize() throws LibraryException {
64
        
65
        IconThemeHelper.registerIcon(
66
            "legend", "legend-overview-graduated-symbols", this);
67

  
68
        Caller caller = new DefaultCaller();
69
        
70
        caller.add(new GraduatedSymbolsLegend.RegisterLegend());
71
        caller.add(new GraduatedSymbolsLegend.RegisterPersistence());
72
        
73
        /*
74
         * Do register of all
75
         */
76
        if( !caller.call() ) {
77
            throw new LibraryException(
78
                GraduatedSymbolsLibrary.class,
79
                caller.getExceptions());
80
        }
81
        
82
        LegendManager.addLegendPage(GraduatedSymbolsPanel.class);
83
    }
84

  
85
}
org.gvsig.legend.graduatedsymbols.app.mainplugin/tags/org.gvsig.legend.graduatedsymbols.app.mainplugin-1.0.78/src/main/resources-plugin/i18n/text_pt_BR.properties
1
#Translations for language [pt_BR]
2
#Mon Sep 21 10:02:12 CEST 2009
3
a_default_symbol_will_be_used=S\u00edmbolo utilizado por padr\u00e3o.
4
above=Acima
5
accept=Aceitar
6
accessing_file_structure=Acessando estrutura do arquivo
7
add=Adicionar
8
add_class=Adicionar classe
9
add_expression=Adicionar express\u00e3o
10
add_field=Adicionar campo
11
add_operator=Adicionar operador
12
add_text_area=Adicionar campo de texto
13
all_features=Todas as caracter\u00edsticas
14
all_supported_background_image_formats=Todos os formatos de imagem suportados
15
allow_label_overlapping=Permitir sobreposi\u00e7\u00e3o de r\u00f3tulos
16
always_circular=
17
always_horizontal=Sempre horizontal
18
always_straight=Sempre reto
19
angle=\u00c2ngulo
20
anticlockwise=
21
apply_visual_correction_to_glyph_for_precise_size_and_position=Aplique a corre\u00e7\u00e3o visual para ter precis\u00e3o no tamanho e posi\u00e7\u00e3o 
22
arguments_added_to_a_costant=Argumento inserido na mesma constante.
23
at_begin=Ao principio
24
at_best=Ao melhor
25
at_end=Ao final
26
at_fields=nos campos
27
background=
28
background_color=Cor de fundo
29
background_style=Estilo de fundo
30
barchar3d_legend=
31
barchar3d_legend_desc=
32
barchart_3D=
33
below=Abaixo
34
bitmap_and_svg_image_files=Arquivos de imagem Bitmaps e SVG
35
boolean_value=Valor booleano
36
browse=Procurar
37
buffered=Forma do pol\u00edgono
38
cancel=Cancelar
39
cannot_apply_to_a_non_polygon_layer=N\u00e3o \u00e9 possivel aplicar em um plano de informa\u00e7\u00e3o que n\u00e3o seja poligonal
40
cannot_be_null=N\u00e3o pode ser nulo
41
cannot_exist_two_label_classes_with_the_same_name=N\u00e3o pode existir duas etiquetas com o mesmo nome
42
cannot_install_labeling_method=N\u00e3o \u00e9 possivel instalar o m\u00e9todo de etiqueta
43
cant_draw_preview=N\u00e3o \u00e9 possivel visualizar
44
change_location=Alterar localiza\u00e7\u00e3o
45
character_marker=Marcador de car\u00e1cter
46
character_marker_symbol=S\u00edmbolo do Marcador de car\u00e1cter
47
choose_marker=Selecionar marcador
48
circular=Circular
49
class=Classe
50
classes=Classes
51
classifying_field_name_not_found=Campo de classifica\u00e7\u00e3o n\u00e3o encontrado
52
clear=Limpar
53
color=Cor\:
54
color_field=Campo de cores
55
color_ramp=Rampa de cor
56
confirmation_dialog=Di\u00e1logo de configura\u00e7\u00e3o
57
constant=constante
58
correct_expression=Express\u00e3o correta
59
could_not_get_shape_type=N\u00e3o \u00e9 possivel obter o tipo de geometria.
60
could_not_retreive_layer_field_names=
61
could_not_setup_legend=N\u00e3o \u00e9 poss\u00edvel carregar a legenda.
62
date_value=Valor da data
63
default=Padr\u00e3o
64
define_classes_of_features_and_label_each_differently=Definir diferentes classes de entidades e etiqueta-las de maneira diferente
65
Defines_a_dot_density_symbol_based_on_a_field_value=Define uma lejenda de densidade de pontos baseada no valor de um determinado campo.
66
delete=Apagar
67
delete_class=Apagar classe
68
delete_filter_expression=Apagar expre\u00e7\u00e3o filtrada
69
densities=Densidades
70
depth_factor=
71
description=Descri\u00e7\u00e3o
72
divided_by_0=Divis\u00e3o por 0
73
dont_show_labels_when_zoomed=N\u00e3o mostrar as etiquetas quando dar o zoom
74
dot_density=Densidade de pontos
75
dot_size=Tamanho do ponto
76
dot_value=Valor do ponto
77
draw_quantities_for_each_category=Representar quantidades para cada categoria.
78
draw_quantities_using_symbol_size_to_show_exact_values=Representa quantidade atrav\u00e9s do tamanho do s\u00edmbolo mostrando valores exatos.
79
draw_quantities_using_symbol_size_to_show_relative_values=Representar quantidades mediante o tamanho de um s\u00edmbolo mostrando valores relativos.
80
duplicate_labels=Etiquetas repetidas
81
edit_expression=Editar express\u00e3o
82
Enable_layer_preview=Ativar pr\u00e9-visualiza\u00e7\u00e3o do plano de informa\u00e7\u00e3o
83
enter_new_name=Entre com o novo nome
84
error=Erro
85
error\ accessing\ to\ the\ layer=
86
error_coding_filter_query=Erro codificando a consulta SQL.
87
error_trying_to_access_to_the_layer=Erro tentando acessar o plano de informa\u00e7\u00e3o.
88
error_validating_filter_query=Erro validando a consulta SQL
89
expression=Express\u00e3o
90
expression_creator=Criador de express\u00e3o
91
expressions=Express\u00f5es
92
failed_acessing_files=
93
failed_applying_following_line_will_use_default_confg=Falha aplicando etiqueta seguindo a linha. Foi utilizada a configura\u00e7\u00e3o padr\u00e3o.
94
failed_computing_intervals=Falha calculando intervalos.
95
features=Objetos
96
field_number=N\u00famero do campo
97
fields=Campos
98
fields_exp=Campos
99
fill_color=Cor de preenchimento
100
fill_properties=Propriedades do preenchimento
101
filter=Filtro
102
filtered_features=Elementos filtrados
103
fit_inside_polygon=Acoplar dentro do pol\u00edgono
104
fit_on_text_area=Ajustar a \u00e1rea do texto
105
fixed_text_size=Tamanho fixo do texto
106
following_line=Seguindo a linha
107
font=Fontes
108
foreground_alpha=
109
format=Formato
110
from=De
111
fuente=Fonte
112
GeneralLabeling.sample_text=
113
generating_intervals=Gerando intervalos
114
getting_layer_shape_type=Obtendo o tipo de shape
115
gradient_color=Cor gradiente
116
gradient_fill=Preenchimento gradiente
117
gradient_fill_symbol=S\u00edmbolo de preenchimento gradiente
118
graduated_symbols=S\u00edmbolos graduados
119
grid=Grade
120
high=Alta
121
horizontal=Horizontal
122
ignore_zero_values=
123
in_beyond=Por baixo de
124
in_layer=no plano de informa\u00e7\u00e3o
125
in_the_middle=No meio
126
incompatible_types_to_calculate_the_normalization=
127
incorrect_expression=Express\u00e3o incorreta
128
intervals=Intervalos
129
invalid_filter_expression=
130
invalid_url=Localizador de servidor WFS com formato inv\u00e1lido
131
it_will_not_be_added=N\u00e3o ser\u00e1 inser\u00edda.
132
label-point-priority-help=Prioridade\: 0 \= Bloqueado, 1 \= Mais alta, 3 \= Mais baixa
133
label_class_properties=Propriedade da classe de etiquetas
134
label_expression=Express\u00e3o de etiquetas
135
label_expression_editor=Editor de express\u00e3o de etiqueta
136
label_expression_help=
137
label_features_in_the_same_way=Etiquetar todas as entidades da mesma maneira
138
label_features_in_this_class=Etiquetar entidades dentro desta classe
139
label_only_when_selected=Etiquetar somente quando suas entidades estejam selecioandas
140
label_priority=Prioridade da etiqueta
141
label_style_could_not_be_painted=
142
label_styles=Estilo de etiqueta
143
labeled_point=
144
labeling=Etiquetando
145
labeling_field=Campo de etiquetado
146
layer_name=Nome do Plano de informa\u00e7\u00e3o
147
line=Linha
148
line_fill=Preenchimento da linha
149
line_fill_symbol=S\u00edmbolo de preenchimento da linha
150
line_settings=Configura\u00e7\u00e3o da linha
151
lineal=Linear
152
lines=Linhas
153
location=Localiza\u00e7\u00e3o
154
location_along_the_lines=Localizador de acordo com as linhas
155
looks_like_too_low_value_for_this_field_may_cause_system_to_run_slow=Parece um valor para o ponto muito baixo, pode ocorrer que o sistema responda lentamente.
156
low=Baixo
157
malformed_or_empty_expression=Express\u00e3o vazia ou errada
158
marker_fill=Preenchimento de marcadores
159
marker_fill_symbol=S\u00edmbolo de preenchimento de marcadores
160
marker_line=Linah de marcadores.
161
marker_line_symbol=S\u00edmbolo de linha de marcadores.
162
mas_de_100_simbolos=Mais de 100 s\u00edmbolos n\u00e3o contribuem para uma clara informa\u00e7\u00e3o de um mapa.
163
max_scale=Escala m\u00e1xima
164
medium=M\u00e9dia
165
method=Opera\u00e7\u00e3o
166
min_scale=Escala m\u00ednima
167
minimum_angle_to_draw=
168
modify_filter_expression=Modificar filtro de express\u00e3o 
169
move_down=Mover para cima.
170
move_up=Subir
171
name=Nome
172
names_and_types_count_are_disctint=N\u00famero de campos e n\u00famero de tipos de campos distintos
173
new_filter_expression=Novo filtro de express\u00e3o
174
no=N\u00e3o
175
no_expression_defined=Express\u00e3o n\u00e3o definida
176
no_style=Sem est\u00edlo
177
no_symbol_especified=S\u00edmbolo n\u00e3o especificado
178
none=Nenhum
179
normalization=Normaliza\u00e7\u00e3o
180
not_save_empty_legend=Legenda vaz\u00eda n\u00e3o ser\u00e1 salva.
181
numeric_value=Valor num\u00e9rico
182
offset=Deslocamento
183
offset_label=Deslocar etiqueta
184
offset_labels_horizontally=Deslocar etiquetas horizontalmente ao redor do ponto
185
offset_labels_on_top_of_the_points=Situar etiqueta sobre os pontos.
186
on_the_line=Sobre a linha
187
operators=Operadores
188
options=Op\u00e7\u00f5es
189
orientation=Orienta\u00e7\u00e3o
190
orientation_system=Sistema de orienta\u00e7\u00e3o
191
out_beyond=Por cima de
192
outline=Borda
193
outline_opacity=Opacidade da borda
194
outline_width=Largura da borda
195
page=P\u00e1gina
196
parallel=Paralela
197
pattern=Padr\u00e3o
198
percentage=Porcentagem
199
perpedicular=Perpendicular
200
picture_file=Arquivo de imagem
201
picture_fill=Preencher imagem
202
picture_fill_symbol=S\u00edmbolo de preenchimento de imagem
203
picture_line_symbol=S\u00edmbolo de linha de imagem
204
picture_marker=Marcador de imagem
205
picture_marker_symbol=S\u00edmbolo de marcador de imagem
206
pie_properties=
207
piechart_3D=
208
piechart_3D_legend_desc=
209
place_one_label_per_feature=Situar unicamente uma etiqueta por entidade
210
place_one_label_per_feature_part=Situar uma etiqueta a cada parte da entidade
211
placement=Coloca\u00e7\u00e3o
212
placement_priorities_selector=Seletor de propriedades de coloca\u00e7\u00e3o
213
placement_properties=Propriedades de coloca\u00e7\u00e3o
214
point_settings=Configura\u00e7\u00e3o de ponto
215
points=Pontos
216
polygon=Pol\u00edgono
217
polygon_settings=Configura\u00e7\u00e3o do pol\u00edgono
218
position=Posi\u00e7\u00e3o
219
prefer_top_right_all_allowed=Preferencialmente encima a direita, por\u00e9m permitindo qualquer posi\u00e7\u00e3o
220
preview=Previsualiza\u00e7\u00e3o
221
preview_not_available=Pr\u00e9visualiza\u00e7\u00e3o n\u00e3o dispon\u00edvel
222
properties=Propriedades
223
proportional_symbols=S\u00edmbolos proporcionais
224
quantity_by_category=Quantidades por categoria
225
quiere_continuar=Tem certeza de que quer continuar?
226
Quitar=Remover
227
Quitar_todos=Remover tudo
228
random=Aleat\u00f3rio
229
recovering_recordset=Recuperando recordset
230
rectangular=Ret\u00e2ngular
231
remane_class=Renomear classe
232
remove=Remover
233
remove_duplicate_labels=Apagar etiquetas repetidas
234
resto_valores=Resto de valores
235
scale=Escala
236
scale_range_window_title=Gama de escalas
237
select=Selecioanr
238
select_one_row=Selecione uma linha
239
selection_picture_file=Imagem de sele\u00e7\u00e3o
240
separation=Separa\u00e7\u00e3o
241
set_forbidden_precedence=Estabelecer preced\u00eancia nula
242
set_high_precedence=Estabelecer m\u00e1xima preced\u00eancia
243
set_low_precedence=Estabelecer baixa prioridade
244
set_normal_precedence=Estabelecer proced\u00eancia normal
245
shows_the_elements_of_the_layer_depending_on_the_value_of_a_filter_expression=Mostra os elementos do plano de informa\u00e7\u00e3o em fun\u00e7\u00e3o de um determinado filtro de expre\u00e7\u00e3o
246
size=Tamanho
247
SLD_grammar=Gram\u00e1tica SLD
248
some_arguments_are_incorrect=Alguns argumentos s\u00e3o incorretos.
249
specify_the_range_of_scales_at_which_labels_will_be_shown=Especifique o intervalo de escalas em que os r\u00f3tulos ser\u00e3o mostrados
250
SQL_query=Consulta SQL
251
statistics=Estat\u00edsticas
252
string_value=Valor String
253
style=Estilo
254
style_selector=Seletor de estilos
255
symbol=S\u00edmbolo
256
symbol_field=Campo de s\u00edmbolo graduado
257
symbol_shapetype_mismatch=
258
syntax_error=Erro de sintaxe
259
template=Modelo
260
text=Texto
261
text_field=Texto
262
text_fields=Campos de texto
263
text_string=Texto
264
text_symbol=S\u00edmbolo do texto
265
the\ size\ for\ the\ symbol\ is\ equal\ to\ NaN\ =
266
the_number_or_arguments_is_incorrect=O n\u00famero de argumentos n\u00e3o \u00e9 correto
267
the_result_is_not_a_boolean_value=O resultado n\u00e3o \u00e9 um boolean
268
to=At\u00e9
269
URL=
270
use_outline=Usar borda
271
use_the_same_scale_range_as_the_feature_layer=Usar a mesma gama de escalas que o elemento do plano de informa\u00e7\u00e3o
272
user_defined_labels=Etiquetas definidas pelo usu\u00e1rio
273
usupported_layer_type=Tipo de plano de informa\u00e7\u00e3o n\u00e3o suportado
274
value=Valor
275
value_fields=Campos de valores
276
variation_by=Varia\u00e7\u00e3o por
277
verify=Verificar
278
visible=Vis\u00edvel
279
visualization=Visualiza\u00e7\u00e3o
280
warning=Aviso
281
width=Largura
282
x_offset=Deslocamento em X
283
y_offset=Deslocamento em Y
284
yes=Sim
org.gvsig.legend.graduatedsymbols.app.mainplugin/tags/org.gvsig.legend.graduatedsymbols.app.mainplugin-1.0.78/src/main/resources-plugin/i18n/text_fr.properties
1
#Translations for language [fr]
2
#Mon Sep 21 10:02:12 CEST 2009
3
a_default_symbol_will_be_used=Un symbole par d\u00e9faut sera utilis\u00e9.
4
above=Haut
5
accept=Accepter
6
accessing_file_structure=Acc\u00e8s \u00e0 la structure du fichier en cours...
7
add=Ajouter
8
add_class=Ajouter classe
9
add_expression=Ajouter expression
10
add_field=Ajouter une colone
11
add_operator=Ajouter op\u00e9rateur
12
add_text_area=Ajouter une zone de texte
13
all_features=Tous les \u00e9l\u00e9ments
14
all_supported_background_image_formats=Tous les formats d'images de fond sont support\u00e9s.
15
allow_label_overlapping=Permettre la superposition des \u00e9tiquettes
16
always_circular=
17
always_horizontal=Toujours horizontal
18
always_straight=Toujours rectiligne
19
angle=Angle
20
anticlockwise=
21
apply_visual_correction_to_glyph_for_precise_size_and_position=Appliquer une correction au caract\u00e8re pour visualiser la taille et la position.
22
arguments_added_to_a_costant=Arguments ajout\u00e9s \u00e0 une constante.
23
at_begin=Au d\u00e9but
24
at_best=Au mieux
25
at_end=A la fin
26
at_fields=aux champs
27
background=Arri\u00e8re plan \:
28
background_color=Couleur d'arri\u00e8re plan
29
background_style=Style d'arri\u00e8re-plan
30
barchar3d_legend=
31
barchar3d_legend_desc=
32
barchart_3D=
33
below=Sous
34
bitmap_and_svg_image_files=Fichiers images Bitmap et SVG
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff