Revision 672
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/java/org/gvsig/vectorediting/app/mainplugin/EditingExtension.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
import java.io.File; |
27 | 27 |
import java.util.ArrayList; |
28 |
import java.util.Iterator; |
|
29 | 28 |
import java.util.List; |
29 |
import javax.swing.JOptionPane; |
|
30 |
import org.apache.commons.io.FileUtils; |
|
30 | 31 |
|
31 | 32 |
import org.slf4j.Logger; |
32 | 33 |
import org.slf4j.LoggerFactory; |
33 | 34 |
|
34 | 35 |
import org.gvsig.andami.IconThemeHelper; |
35 | 36 |
import org.gvsig.andami.PluginServices; |
36 |
import org.gvsig.andami.PluginsLocator; |
|
37 |
import org.gvsig.andami.actioninfo.ActionInfoManager; |
|
38 | 37 |
import org.gvsig.andami.plugins.Extension; |
39 | 38 |
import org.gvsig.andami.plugins.IExtension; |
40 | 39 |
import org.gvsig.andami.plugins.status.IExtensionStatus; |
... | ... | |
44 | 43 |
import org.gvsig.andami.ui.mdiManager.SingletonWindow; |
45 | 44 |
import org.gvsig.app.ApplicationLocator; |
46 | 45 |
import org.gvsig.app.ApplicationManager; |
47 |
import org.gvsig.app.project.DocumentsContainer;
|
|
46 |
import org.gvsig.app.project.Project;
|
|
48 | 47 |
import org.gvsig.app.project.documents.Document; |
49 | 48 |
import org.gvsig.app.project.documents.gui.IDocumentWindow; |
50 | 49 |
import org.gvsig.app.project.documents.view.ViewDocument; |
50 |
import org.gvsig.app.project.documents.view.ViewManager; |
|
51 | 51 |
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel; |
52 | 52 |
import org.gvsig.app.project.documents.view.gui.IView; |
53 | 53 |
import org.gvsig.app.project.documents.view.toc.actions.EndEditingTocMenuEntry; |
... | ... | |
82 | 82 |
|
83 | 83 |
public class EditingExtension extends Extension implements Observer { |
84 | 84 |
|
85 |
private static Logger logger = LoggerFactory.getLogger(EditingExtension.class); |
|
85 |
private static final Logger logger = LoggerFactory.getLogger(EditingExtension.class);
|
|
86 | 86 |
|
87 |
@Override |
|
87 | 88 |
public void execute(String actionCommand) { |
88 | 89 |
|
90 |
ApplicationManager application = ApplicationLocator.getManager(); |
|
89 | 91 |
IView view = getActiveView(); |
90 |
EditingSwingManager swingManager = |
|
91 |
EditingSwingLocator.getSwingManager(); |
|
92 |
EditingSwingManager swingManager = EditingSwingLocator.getSwingManager(); |
|
92 | 93 |
|
93 | 94 |
if (view != null) { |
94 | 95 |
|
95 | 96 |
FLyrVect layer = getActiveLayer(view); |
96 |
EditingContext editingContext =
|
|
97 |
swingManager.getEditingContext(view.getMapControl());
|
|
97 |
MapControl mapControl = view.getMapControl();
|
|
98 |
EditingContext editingContext = swingManager.getEditingContext(mapControl);
|
|
98 | 99 |
|
99 | 100 |
if ("start-editing".equals(actionCommand)) { |
100 | 101 |
|
101 | 102 |
if (canBeEdited(layer)) { |
102 |
MapControl mapControl = view.getMapControl(); |
|
103 |
StatusBarListener sbl = new StatusBarListener(mapControl); |
|
103 |
if( !mapControl.getProjection().equals(layer.getProjection()) ) { |
|
104 |
String msg = "_The_layer_is_reproyected_on_the_fly" |
|
105 |
+ "_Not_all_editing_tools_work_properly" |
|
106 |
+ "_When_you_finish_editing" |
|
107 |
+ "_will_only_export_the_changes_to_another_layer"; |
|
108 |
application.messageDialog(msg, "_Warning", JOptionPane.WARNING_MESSAGE); |
|
109 |
} |
|
104 | 110 |
editingContext.beginEdition(layer); |
105 | 111 |
editingContext.addObserver(this); |
106 | 112 |
ApplicationLocator.getManager().refreshMenusAndToolBars(); |
... | ... | |
117 | 123 |
} |
118 | 124 |
} |
119 | 125 |
|
126 |
@Override |
|
120 | 127 |
public void initialize() { |
121 | 128 |
registerIcons(); |
122 | 129 |
|
... | ... | |
148 | 155 |
|
149 | 156 |
MapControlLocator.getMapControlManager().addMapControlCreationListener(new MapControlCreationListener() { |
150 | 157 |
|
158 |
@Override |
|
151 | 159 |
public MapControl mapControlCreated(MapControl mapControl) { |
152 | 160 |
EditingContext editingContext = EditingSwingLocator.getSwingManager().getEditingContext(mapControl); |
153 | 161 |
StatusBarListener sbl = new StatusBarListener(mapControl); |
... | ... | |
166 | 174 |
*/ |
167 | 175 |
private void registerSymbols() { |
168 | 176 |
|
169 |
EditingProviderManager providerManager = |
|
170 |
EditingProviderLocator.getProviderManager(); |
|
177 |
EditingProviderManager providerManager = EditingProviderLocator.getProviderManager(); |
|
171 | 178 |
|
172 | 179 |
SymbolManager symbolManager = MapContextLocator.getSymbolManager(); |
173 |
File pluginFolder = getPlugin().getPluginDirectory(); |
|
174 |
String pathSeparator = System.getProperty("file.separator"); |
|
175 |
String symbolsPath = pluginFolder.getAbsolutePath()+pathSeparator+"symbols"+pathSeparator+"editing"; |
|
176 |
File symbolsFolder = new File(symbolsPath); |
|
180 |
File symbolsFolder = FileUtils.getFile(getPlugin().getPluginDirectory(), "symbols","editing"); |
|
177 | 181 |
ISymbol[] symbols = null; |
178 | 182 |
try { |
179 | 183 |
symbols = symbolManager.loadSymbols(symbolsFolder); |
180 | 184 |
} catch (SymbolException e) { |
181 |
logger.warn("No symbols loaded from "+symbolsPath, e);
|
|
185 |
logger.warn("No symbols loaded from "+symbolsFolder.getAbsolutePath(), e);
|
|
182 | 186 |
} |
183 | 187 |
|
184 | 188 |
if (symbols != null) { |
185 |
for (int i = 0; i < symbols.length; i++) { |
|
186 |
ISymbol symbol = symbols[i]; |
|
189 |
for (ISymbol symbol : symbols) { |
|
187 | 190 |
String description = symbol.getDescription(); |
188 | 191 |
providerManager.registerSymbol(description, symbol); |
189 | 192 |
} |
190 | 193 |
} |
191 | 194 |
} |
192 | 195 |
|
196 |
@Override |
|
193 | 197 |
public boolean isEnabled() { |
194 | 198 |
return true; |
195 | 199 |
} |
196 | 200 |
|
201 |
@Override |
|
197 | 202 |
public boolean isVisible() { |
198 | 203 |
return true; |
199 | 204 |
} |
... | ... | |
269 | 274 |
return null; |
270 | 275 |
} |
271 | 276 |
|
277 |
@Override |
|
272 | 278 |
public void update(Observable observable, Object notification) { |
273 | 279 |
|
274 | 280 |
if (notification instanceof Notification){ |
... | ... | |
277 | 283 |
Notification n = (Notification)notification; |
278 | 284 |
if (n.getType().equalsIgnoreCase(EditingContext.CHANGE_SELECTED_TOOL_NOTIFICATION)){ |
279 | 285 |
String name = (String)n.getValue(); |
280 |
logger.info("Changed selected tool to '{}'", name);
|
|
286 |
logger.trace("Changed selected tool to '{}'", name);
|
|
281 | 287 |
PluginServices.getMainFrame().setSelectedTool(name); |
282 | 288 |
appManager.refreshMenusAndToolBars(); |
283 | 289 |
|
... | ... | |
288 | 294 |
} |
289 | 295 |
|
290 | 296 |
private List<FLyrVect> getEditedLayers(){ |
291 |
List<FLyrVect> editedLayers = new ArrayList<FLyrVect>(); |
|
292 |
|
|
293 | 297 |
ApplicationManager application = ApplicationLocator.getManager(); |
294 |
IWindow[] windows = application.getUIManager().getOrderedWindows(); |
|
295 |
for (int i = 0; i < windows.length; i++) { |
|
296 |
IWindow window = windows[i]; |
|
297 |
if (window instanceof SingletonWindow && window instanceof IDocumentWindow) { |
|
298 |
// Recorremos las ventanas. |
|
299 |
// Cogemos el model de aquellas que sea de tipo Document. |
|
300 |
// Si el model es de tipo View, |
|
301 |
// comprobamos que adem?s sean de tipo View. |
|
302 |
// Le pedimos al mapContext de la View las layers |
|
303 |
// y a?adimos a editedLayers aquellas layers vectoriales que est?n en edici?n. |
|
304 |
Document document; |
|
305 |
try { |
|
306 |
document = (Document) ((SingletonWindow) window).getWindowModel(); |
|
307 |
} catch (ClassCastException e) { |
|
308 |
// Do nothing, skip this window |
|
309 |
continue; |
|
310 |
} |
|
311 |
if (ViewDocument.class.isAssignableFrom(document.getClass())) { |
|
312 |
ViewDocument view = (ViewDocument) document; |
|
313 |
MapContext mapContext = view.getMapContext(); |
|
314 |
if (mapContext != null) { |
|
315 |
FLayers layers = mapContext.getLayers(); |
|
316 |
for (int j = 0; j < layers.getLayersCount(); j++) { |
|
317 |
FLayer lyr = layers.getLayer(j); |
|
318 |
if (lyr instanceof FLyrVect) { |
|
319 |
FLyrVect layerVect = (FLyrVect) lyr; |
|
320 |
if (layerVect.isEditing()) { |
|
321 |
editedLayers.add(layerVect); |
|
322 |
} |
|
323 |
} |
|
298 |
List<FLyrVect> editedLayers = new ArrayList<>(); |
|
299 |
|
|
300 |
Project project = application.getCurrentProject(); |
|
301 |
for( Document document : project.getDocuments(ViewManager.TYPENAME) ) { |
|
302 |
ViewDocument view = (ViewDocument) document; |
|
303 |
MapContext mapContext = view.getMapContext(); |
|
304 |
if (mapContext != null) { |
|
305 |
FLayers layers = mapContext.getLayers(); |
|
306 |
for (int j = 0; j < layers.getLayersCount(); j++) { |
|
307 |
FLayer lyr = layers.getLayer(j); |
|
308 |
if (lyr instanceof FLyrVect) { |
|
309 |
FLyrVect layerVect = (FLyrVect) lyr; |
|
310 |
if (layerVect.isEditing()) { |
|
311 |
editedLayers.add(layerVect); |
|
324 | 312 |
} |
325 | 313 |
} |
326 | 314 |
} |
... | ... | |
330 | 318 |
} |
331 | 319 |
|
332 | 320 |
private List<IUnsavedData> getUnsavedData(List<FLyrVect> editedLayers){ |
333 |
List<IUnsavedData> unsavedData = new ArrayList<IUnsavedData>(); |
|
334 |
for (Iterator iterator = editedLayers.iterator(); iterator.hasNext();) { |
|
335 |
FLyrVect editedLayer = (FLyrVect) iterator.next(); |
|
321 |
List<IUnsavedData> unsavedData = new ArrayList<>(); |
|
322 |
for (FLyrVect editedLayer : editedLayers) { |
|
336 | 323 |
IUnsavedData unsavedDataLayer = new UnsavedLayer(this, editedLayer); |
337 | 324 |
unsavedData.add(unsavedDataLayer); |
338 | 325 |
} |
... | ... | |
341 | 328 |
} |
342 | 329 |
|
343 | 330 |
private static class UnsavedLayer extends UnsavedData { |
344 |
private FLyrVect layer; |
|
331 |
private final FLyrVect layer;
|
|
345 | 332 |
|
346 | 333 |
public UnsavedLayer(IExtension extension, FLyrVect layer) { |
347 | 334 |
super(extension); |
... | ... | |
380 | 367 |
|
381 | 368 |
return new IExtensionStatus() { |
382 | 369 |
|
370 |
@Override |
|
383 | 371 |
public boolean hasUnsavedData() { |
384 | 372 |
if(unsavedData == null){ |
385 | 373 |
return false; |
... | ... | |
387 | 375 |
return !unsavedData.isEmpty(); |
388 | 376 |
} |
389 | 377 |
|
378 |
@Override |
|
390 | 379 |
public boolean hasRunningProcesses() { |
391 | 380 |
return false; |
392 | 381 |
} |
393 | 382 |
|
383 |
@Override |
|
394 | 384 |
public IUnsavedData[] getUnsavedData() { |
395 | 385 |
if(unsavedData == null){ |
396 | 386 |
return null; |
... | ... | |
398 | 388 |
return unsavedData.toArray(new IUnsavedData[0]); |
399 | 389 |
} |
400 | 390 |
|
391 |
@Override |
|
401 | 392 |
public IMonitorableTask[] getRunningProcesses() { |
402 | 393 |
return null; |
403 | 394 |
} |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/resources-plugin/i18n/text.properties | ||
---|---|---|
1 |
start_editing = Comenzar edici\u00F3n
|
|
2 |
end_editing = Terminar edici\u00F3n
|
|
1 |
start_editing = Comenzar edici\u00f3n
|
|
2 |
end_editing = Terminar edici\u00f3n
|
|
3 | 3 |
insert_point = Insertar punto |
4 | 4 |
insert_multipoint = Insertar MultiPunto |
5 |
insert_line = Insertar l\u00EDnea
|
|
5 |
insert_line = Insertar l\u00ednea
|
|
6 | 6 |
insert_arc = Insertar arco |
7 |
insert_circle_cr = Insertar c\u00EDrculo (centro y radio)
|
|
7 |
insert_circle_cr = Insertar c\u00edrculo (centro y radio)
|
|
8 | 8 |
insert_circumference_cr = Insertar circunferencia (centro y radio) |
9 |
insert_circle_3p = Insertar c\u00EDrculo (tres puntos)
|
|
9 |
insert_circle_3p = Insertar c\u00edrculo (tres puntos)
|
|
10 | 10 |
insert_circumference_3p = Insertar circunferencia (tres puntos) |
11 | 11 |
insert_ellipse = Insertar elipse |
12 | 12 |
insert_filled_ellipse = Insertar elipse rellena |
13 |
insert_polyline = Insertar polil\u00EDnea
|
|
14 |
insert_polygon = Insertar pol\u00EDgono
|
|
15 |
insert_regular_polygon = Insertar pol\u00EDgono regular
|
|
16 |
insert_filled_regular_polygon = Insertar pol\u00EDgono regular relleno
|
|
17 |
insert_rectangle = Insertar rect\u00E1ngulo
|
|
18 |
insert_filled_rectangle = Insertar rect\u00E1ngulo relleno
|
|
13 |
insert_polyline = Insertar polil\u00ednea
|
|
14 |
insert_polygon = Insertar pol\u00edgono
|
|
15 |
insert_regular_polygon = Insertar pol\u00edgono regular
|
|
16 |
insert_filled_regular_polygon = Insertar pol\u00edgono regular relleno
|
|
17 |
insert_rectangle = Insertar rect\u00e1ngulo
|
|
18 |
insert_filled_rectangle = Insertar rect\u00e1ngulo relleno
|
|
19 | 19 |
insert_spline= Insertar curva spline |
20 | 20 |
insert_filled_spline = Insertar curva spline rellena |
21 |
insert_rectangular_matrix = Matriz rectangular de geometr\u00EDas
|
|
22 |
insert_polar_matrix = Matriz polar de geometr\u00EDas
|
|
23 |
modify_internal_polygon = Pol\u00EDgono interno
|
|
24 |
modify_explode_geometry = Descomponer geometr\u00EDa
|
|
25 |
modify_move = Mover geometr\u00EDa
|
|
26 |
modify_rotate = Rotar geometr\u00EDa
|
|
27 |
modify_duplicate = Duplicar geometr\u00EDa
|
|
21 |
insert_rectangular_matrix = Matriz rectangular de geometr\u00edas
|
|
22 |
insert_polar_matrix = Matriz polar de geometr\u00edas
|
|
23 |
modify_internal_polygon = Pol\u00edgono interno
|
|
24 |
modify_explode_geometry = Descomponer geometr\u00eda
|
|
25 |
modify_move = Mover geometr\u00eda
|
|
26 |
modify_rotate = Rotar geometr\u00eda
|
|
27 |
modify_duplicate = Duplicar geometr\u00eda
|
|
28 | 28 |
modify_split_line = Partir linea por un punto |
29 |
modify_split = Partir geometr\u00EDa
|
|
30 |
modify_scale = Escalar geometr\u00EDa
|
|
31 |
modify_simplify = Simplificar geometr\u00EDa
|
|
32 |
modify_join = Unir geometr\u00EDas
|
|
33 |
insert_autopolygon = Insertar autopol\u00EDgono
|
|
34 |
modify_stretch = Estirar geometr\u00EDa
|
|
35 |
modify_extend_line = Alargar l\u00EDnea hasta objeto
|
|
36 |
modify_trim_line = Recortar l\u00EDnea por un objeto
|
|
37 |
modify_edit_vertex = Editar v\u00E9rtice
|
|
38 |
modify_convert_to_polyline= Convertir a polil\u00EDnea
|
|
39 |
modify_reverse_direction=Invertir direcci\u00F3n
|
|
40 |
uniqueselection = Seleccione una \u00FAnica geometr\u00EDa
|
|
41 |
selectvertex = Seleccione un v\u00E9rtice
|
|
42 |
new_position = Nueva posici\u00F3n
|
|
43 |
insert_vertex = Insertar v\u00E9rtice
|
|
44 |
remove_vertex = Eliminar v\u00E9rtice
|
|
45 |
selection=Selecci\u00F3n
|
|
46 |
invalid_option=Opci\u00F3n no v\u00E1lida
|
|
29 |
modify_split = Partir geometr\u00eda
|
|
30 |
modify_scale = Escalar geometr\u00eda
|
|
31 |
modify_simplify = Simplificar geometr\u00eda
|
|
32 |
modify_join = Unir geometr\u00edas
|
|
33 |
insert_autopolygon = Insertar autopol\u00edgono
|
|
34 |
modify_stretch = Estirar geometr\u00eda
|
|
35 |
modify_extend_line = Alargar l\u00ednea hasta objeto
|
|
36 |
modify_trim_line = Recortar l\u00ednea por un objeto
|
|
37 |
modify_edit_vertex = Editar v\u00e9rtice
|
|
38 |
modify_convert_to_polyline= Convertir a polil\u00ednea
|
|
39 |
modify_reverse_direction=Invertir direcci\u00f3n
|
|
40 |
uniqueselection = Seleccione una \u00fanica geometr\u00eda
|
|
41 |
selectvertex = Seleccione un v\u00e9rtice
|
|
42 |
new_position = Nueva posici\u00f3n
|
|
43 |
insert_vertex = Insertar v\u00e9rtice
|
|
44 |
remove_vertex = Eliminar v\u00e9rtice
|
|
45 |
selection=Selecci\u00f3n
|
|
46 |
invalid_option=Opci\u00f3n no v\u00e1lida
|
|
47 | 47 |
center=Centro |
48 | 48 |
radius=Radio |
49 | 49 |
save_changes_performed=Guardar cambios realizados |
50 | 50 |
discard= Descartar |
51 | 51 |
discard_and_loose_changes= Descartar cambios y perder los cambios |
52 | 52 |
continue= Continuar |
53 |
do_not_save_yet_stay_in_editing_mode= No guardar los cambios y seguir en modo edici\u00F3n
|
|
53 |
do_not_save_yet_stay_in_editing_mode= No guardar los cambios y seguir en modo edici\u00f3n
|
|
54 | 54 |
indicate_new_point= Indique un nuevo punto |
55 | 55 |
arc_mode = Modo arco |
56 |
line_mode = Modo l\u00EDnea
|
|
56 |
line_mode = Modo l\u00ednea
|
|
57 | 57 |
select_new_tool= Seleccione una nueva herramienta |
58 |
draw_geometry_to_internal_polygon= Seleccione una herramienta para dibujar un pol\u00EDgono interno
|
|
59 |
draw_geometry_to_autopolygon = Seleccione una herramienta para dibujar un autopol\u00EDgono
|
|
60 |
draw_geometry_to_split = Seleccione una herramienta para partir las geometr\u00EDas
|
|
61 |
draw_geometry_to_select_vertex = Seleccione una herramienta poligonal para seleccionar v\u00E9rtices
|
|
58 |
draw_geometry_to_internal_polygon= Seleccione una herramienta para dibujar un pol\u00edgono interno
|
|
59 |
draw_geometry_to_autopolygon = Seleccione una herramienta para dibujar un autopol\u00edgono
|
|
60 |
draw_geometry_to_split = Seleccione una herramienta para partir las geometr\u00edas
|
|
61 |
draw_geometry_to_select_vertex = Seleccione una herramienta poligonal para seleccionar v\u00e9rtices
|
|
62 | 62 |
save = Guardar |
63 | 63 |
discard = Descartar |
64 | 64 |
continue = Continuar |
65 | 65 |
export = Exportar |
66 |
ask_save_layer = \u00BFDesea guardar la capa
|
|
67 |
can_not_write_layer = No existe writer para este formato de capa o no tiene permisos de escritura.\n\u00BFQu\u00E9 desea hacer?
|
|
66 |
ask_save_layer = \u00bfDesea guardar la capa
|
|
67 |
can_not_write_layer = No existe writer para este formato de capa o no tiene permisos de escritura.\n\u00bfQu\u00e9 desea hacer?
|
|
68 | 68 |
save_changes_performed = Guardar cambios realizados |
69 | 69 |
discard_and_loose_changes = Descartar y perder los cambios |
70 | 70 |
export_to_another_format = Exportar a otro formato |
... | ... | |
81 | 81 |
inscribed = Inscrito |
82 | 82 |
circumscribed = Circunscrito |
83 | 83 |
sides_of_regular_polygon = Indique los lados del poligono regular |
84 |
center_of_regular_polygon = Centro del pol\u00EDguno regular
|
|
85 |
point_of_circle = Punto del c\u00EDrculo del pol\u00EDgono
|
|
84 |
center_of_regular_polygon = Centro del pol\u00edguno regular
|
|
85 |
point_of_circle = Punto del c\u00edrculo del pol\u00edgono
|
|
86 | 86 |
sides = Lados |
87 | 87 |
key_arc_mode = A |
88 | 88 |
key_line_mode = L |
... | ... | |
91 | 91 |
key_inscribed = I |
92 | 92 |
key_circumscribed = C |
93 | 93 |
key_remove_last_point = Q |
94 |
remove_last_point = Quitar \u00FAltimo punto
|
|
95 |
close_polyline = Cerrar polil\u00EDnea
|
|
94 |
remove_last_point = Quitar \u00faltimo punto
|
|
95 |
close_polyline = Cerrar polil\u00ednea
|
|
96 | 96 |
close_spline = Cerrar curva spline |
97 | 97 |
new_point = Nuevo punto |
98 | 98 |
new_value = Nuevo valor |
99 | 99 |
finished = finalizada |
100 |
center_of_rotation = Centro de rotaci\u00F3n
|
|
101 |
angle_of_rotation = \u00C1ngulo de rotaci\u00F3n (grados)
|
|
100 |
center_of_rotation = Centro de rotaci\u00f3n
|
|
101 |
angle_of_rotation = \u00c1ngulo de rotaci\u00f3n (grados)
|
|
102 | 102 |
origin_point = Origen |
103 | 103 |
scale_factor_or_reference_point = Factor de escala o punto de referencia |
104 | 104 |
second_scale_point = Segundo punto para la escala |
105 | 105 |
tolerance = Tolerancia |
106 |
line_to_extend = Seleccione l\u00EDnea para alargar
|
|
107 |
line_to_trim = Seleccione l\u00EDnea para partir
|
|
108 |
modify_smooth_line = Suavizar l\u00EDnea
|
|
106 |
line_to_extend = Seleccione l\u00ednea para alargar
|
|
107 |
line_to_trim = Seleccione l\u00ednea para partir
|
|
108 |
modify_smooth_line = Suavizar l\u00ednea
|
|
109 | 109 |
intermediate_steps_1_9 = Pasos intermedios [1,9] |
110 | 110 |
algorithm = algoritmo |
111 |
natural_cubic_splines = Splines c\u00FAbicos naturales
|
|
112 |
bezier_curves = Curvas B\u00E9zier
|
|
111 |
natural_cubic_splines = Splines c\u00fabicos naturales
|
|
112 |
bezier_curves = Curvas B\u00e9zier
|
|
113 | 113 |
b_splines = B-splines |
114 | 114 |
key_natural_cubic_splines = 1 |
115 | 115 |
key_bezier_curves = 2 |
116 | 116 |
key_b_splines = 3 |
117 |
columns_number = N\u00FAmero de columnas
|
|
118 |
rows_number = N\u00FAmero de filas
|
|
117 |
columns_number = N\u00famero de columnas
|
|
118 |
rows_number = N\u00famero de filas
|
|
119 | 119 |
distance_between_columns = Distancia entre columnas |
120 | 120 |
distance_between_rows = Distancia entre filas |
121 | 121 |
key_yes= S |
122 | 122 |
key_no = N |
123 | 123 |
yes = Si |
124 | 124 |
no = No |
125 |
number_of_total_elements = N\u00FAmero de elementos totales
|
|
125 |
number_of_total_elements = N\u00famero de elementos totales
|
|
126 | 126 |
rotate_elements = Rotar elementos? |
127 | 127 |
angle_between_elements = Angulo entre elementos |
128 | 128 |
modify = modificar |
129 | 129 |
insert = insertar |
130 | 130 |
Modify = Modificar |
131 |
Insert = Insertar |
|
131 |
Insert = Insertar |
|
132 |
_The_layer_is_reproyected_on_the_fly_Not_all_editing_tools_work_properly_When_you_finish_editing_will_only_export_the_changes_to_another_layer=The layer is reproyected on the fly.\nNot all editing tools work properly.\nWhen you finish editing will only export the changes to another layer will be allowed. |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties | ||
---|---|---|
128 | 128 |
modify = modify |
129 | 129 |
insert = insert |
130 | 130 |
Modify = Modify |
131 |
Insert = Insert |
|
131 |
Insert = Insert |
|
132 |
_The_layer_is_reproyected_on_the_fly_Not_all_editing_tools_work_properly_When_you_finish_editing_will_only_export_the_changes_to_another_layer=La capa esta reproyectada el vuelo.\nNo todas las herramientas de edici\u00f3n funcionar\u00e1n correctamente.\nCuando termine edici\u00f3n solo podra extortar los cambios a otra capa. |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.swing/org.gvsig.vectorediting.swing.impl/src/main/java/org/gvsig/vectorediting/swing/impl/DefaultEditingContext.java | ||
---|---|---|
587 | 587 |
EditingSwingManager swingManager = |
588 | 588 |
EditingSwingLocator.getSwingManager(); |
589 | 589 |
|
590 |
if (layer.isWritable()) { |
|
590 |
|
|
591 |
if (layer.isWritable() && getMapControl().getProjection().equals(layer.getProjection()) ) { |
|
591 | 592 |
option = |
592 | 593 |
swingManager.showPanelSaveOrDiscard(getMapControl(), |
593 | 594 |
layer.getName()); |
Also available in: Unified diff