Revision: 5294
http://sourceforge.net/p/jump-pilot/code/5294
Author: michaudm
Date: 2016-12-29 12:25:19 +0000 (Thu, 29 Dec 2016)
Log Message:
-----------
Implement FR 250 : update a layer from another using an attribute join
Modified Paths:
--------------
core/trunk/scripts/default-plugins.xml
core/trunk/src/language/jump.properties
core/trunk/src/language/jump_cz.properties
core/trunk/src/language/jump_de.properties
core/trunk/src/language/jump_es.properties
core/trunk/src/language/jump_fi.properties
core/trunk/src/language/jump_fr.properties
core/trunk/src/language/jump_hu.properties
core/trunk/src/language/jump_it.properties
core/trunk/src/language/jump_ja_JP.properties
core/trunk/src/language/jump_ml.properties
core/trunk/src/language/jump_pt.properties
core/trunk/src/language/jump_pt_BR.properties
core/trunk/src/language/jump_ta_IN.properties
core/trunk/src/language/jump_te.properties
core/trunk/src/language/jump_zh_CN.properties
core/trunk/src/language/jump_zh_HK.properties
Added Paths:
-----------
core/trunk/src/org/openjump/core/ui/plugin/tools/UpdateWithJoinPlugIn.java
Modified: core/trunk/scripts/default-plugins.xml
===================================================================
--- core/trunk/scripts/default-plugins.xml 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/scripts/default-plugins.xml 2016-12-29 12:25:19 UTC (rev
5294)
@@ -824,12 +824,16 @@
org.openjump.core.ui.plugin.tools.JoinTableFromExistingLayerPlugIn
</plug-in>
<plug-in>
-
org.openjump.core.ui.plugin.tools.BeanshellAttributeCalculatorPlugIn
+ org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn
</plug-in>
<plug-in>
org.openjump.core.ui.plugin.tools.JoinTablePlugIn
</plug-in>
+ <plug-in>
+
org.openjump.core.ui.plugin.tools.BeanshellAttributeCalculatorPlugIn
+ </plug-in>
+
<!--- ========= Generalization ==================== / -->
<plug-in>
org.openjump.core.ui.plugin.tools.SimplifyWithJTSAlgorithmPlugIn
Modified: core/trunk/src/language/jump.properties
===================================================================
--- core/trunk/src/language/jump.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -1556,6 +1556,23 @@
org.openjump.core.ui.plugin.tools.SplitPolygonPlugIn.Must-select-one-polygon-and-one-linestring
= Must select one polygon and one linestring.
org.openjump.core.ui.plugin.tools.SplitPolygonPlugIn.Update-the-polygon-with-result
= Update the polygon with result.
org.openjump.core.ui.plugin.tools.SplitPolygonPlugIn.Uses-the-selected-linestring-to-cut-the-selected-polygon-into-separate-sections
= Uses the selected linestring to cut the selected polygon into separate
sections.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn = Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined
= Attributes mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers = Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description = Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join = Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer = Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id = Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique
= Join layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join = Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip =
Check left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes = Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id
= Reference layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update
= Reference layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join = Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip =
Check right join to add un-joined features from join layer
org.openjump.core.ui.plugin.tools.ZoomRealtimeTool.Zoom-Realtime = Zoom
Realtime
org.openjump.core.ui.plugin.tools.generate.AbstractLinearReferencingPlugIn.add-end-point
= Add end point
org.openjump.core.ui.plugin.tools.generate.AbstractLinearReferencingPlugIn.distance-unit
= Distance Unit
Modified: core/trunk/src/language/jump_cz.properties
===================================================================
--- core/trunk/src/language/jump_cz.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_cz.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -2758,4 +2758,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_de.properties
===================================================================
--- core/trunk/src/language/jump_de.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_de.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -2754,4 +2754,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_es.properties
===================================================================
--- core/trunk/src/language/jump_es.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_es.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -2737,4 +2737,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_fi.properties
===================================================================
--- core/trunk/src/language/jump_fi.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_fi.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -2731,4 +2731,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_fr.properties
===================================================================
--- core/trunk/src/language/jump_fr.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_fr.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -2761,4 +2761,21 @@
ui.GenericNames.show=Montrer
ui.GenericNames.user=Utilisateur
ui.GenericNames.version=Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=Mise \xE0 jour par
jointure d'attribut
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=Les
correspondances entre attributs n'ont pas \xE9t\xE9 d\xE9finies
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=Choisir
les couches
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=Met \xE0
jour les attributs de la couche de r\xE9f\xE9rence avec ceux de la couche
jointe chaque fois que la condition de jointure est v\xE9rifi\xE9e.\n\
+ Les attributs peuvent \xEAtre mis en correspondance m\xEAme lorsque leurs
noms diff\xE8rent.\n\
+ Une jointure gauche permet de conserver tous les objets de r\xE9f\xE9rence,
tandis qu'une jointure droite permet d'ajouter les objets de la couche jointe
m\xEAme s'ils ne v\xE9rifient pas la condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=Ne pas
joindre
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=Couche \xE0
joindre
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=Identifiant
de la couche jointe
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=L'identifiant
n'est pas unique dans la couche jointe
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=Jointure
gauche
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=Une
jointure gauche permet de conserver tous les objets de r\xE9f\xE9rence
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=Correspondance
entre attributs
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=Identifiant
externe
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=Couche
de r\xE9f\xE9rence \xE0 mettre \xE0 jour
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=Jointure
droite
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=La
jointure droite ajoute au r\xE9sultat les objets non-joints de la couche jointes
\ No newline at end of file
Modified: core/trunk/src/language/jump_hu.properties
===================================================================
--- core/trunk/src/language/jump_hu.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_hu.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -175,7 +175,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= Hiba a f\u00e1jl megnyit\u00e1sakor\: {0}
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn = St\u00edlusok
megv\u00e1ltoztat\u00e1sa
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn = Affin
transzform\u00e1ci\u00f3
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message3=\#T\:Affine
trasformation for raster currently works only on RGB image files
@@ -1052,8 +1051,6 @@
org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid
Raster layers
org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating
layers statistics
org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values
-
-org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values
org.openjump.core.ui.plugin.raster.nodata.Inverse=\#T\:Inverse operation
org.openjump.core.ui.plugin.raster.nodata.from=\#T\:From:
org.openjump.core.ui.plugin.raster.nodata.to=\#T\:To:
@@ -2563,7 +2560,6 @@
com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=#T:Invalid
WHERE clause for layer:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.SQL-error=#T:SQL
error
-com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.decompose-multi-tooltip=\#T\:Decompose
multi-geometries into simple geometries
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim=\#T\:Preserve
geometry dimension
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim-tooltip=\#T\:Eliminate
degenerated components to preserve geometry dimension
@@ -2754,4 +2750,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_it.properties
===================================================================
--- core/trunk/src/language/jump_it.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_it.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -2738,3 +2738,20 @@
ui.GenericNames.user=Utente
ui.GenericNames.version=Versione
ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
Modified: core/trunk/src/language/jump_ja_JP.properties
===================================================================
--- core/trunk/src/language/jump_ja_JP.properties 2016-12-28 14:58:30 UTC
(rev 5293)
+++ core/trunk/src/language/jump_ja_JP.properties 2016-12-29 12:25:19 UTC
(rev 5294)
@@ -175,7 +175,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= \u30d5\u30a1\u30a4\u30eb\u8aad\u8fbc\u307f\u6642\u306b\u30a8\u30e9\u30fc\: {0}
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn =
\u30b9\u30bf\u30a4\u30eb\u306e\u5909\u66f4
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn =
\u30a2\u30d5\u30a3\u30f3\u5909\u63db
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message3=\#T\:Affine
trasformation for raster currently works only on RGB image files
@@ -2507,8 +2506,6 @@
com.vividsolutions.jump.workbench.ui.network.ProxySettingsOptionsPanel.server-or-proxy-port-is-not-correct-check-provided-parameters=
#T:The server or proxy port is not correct check, provided the parameters
com.vividsolutions.jump.workbench.ui.network.ProxySettingsOptionsPanel.user=
#T:User\:
com.vividsolutions.jump.workbench.ui.network.ProxySettingsOptionsPanel.test-url=
#T: Test url\:
-com.vividsolutions.jump.workbench.plugin.At-least-n-layerables-must-exist=\#T\:At
least {0} layerables must exist
-com.vividsolutions.jump.workbench.plugin.At-least-one-layerables-must-exist=\#T\:At
least one layerable must exist
ui.plugin.analysis.BufferPlugIn.update-source=\#T\:Update geometry in source
layer
ui.plugin.analysis.BufferPlugIn.update-source-help=\#T\:Update the source
layer instead of copying geometries in a new layer
ui.AttributeTablePanel.feature.view-edit=#T:View/Edit
@@ -2568,8 +2565,7 @@
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim-tooltip=\#T\:Eliminate
degenerated components to preserve geometry dimension
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.remove-duplicate-coord-tooltip=\#T\:Remove
duplicate coordinates
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.remove-duplicate-coord=\#T\:Remove
duplicate coordinates
-com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
-jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=#T:Invalid
WHERE clause for layer:
+jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=#T:Invalid
WHERE clause for layer:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.SQL-error=#T:SQL
error
com.vividsolutions.jump.workbench.ui.plugin.datastore.ConnectionPanel.Dataset=\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8
com.vividsolutions.jump.workbench.ui.plugin.datastore.ConnectionPanel.Geometry=\u30b8\u30aa\u30e1\u30c8\u30ea
@@ -2756,4 +2752,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_ml.properties
===================================================================
--- core/trunk/src/language/jump_ml.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_ml.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -175,7 +175,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= \u0d2b\u0d2f\u0d32\u0d4d\u200d
\u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d32\u0d4d\u200d
\u0d2a\u0d3f\u0d36\u0d15\u0d4d\: {0}
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn =
\u0d36\u0d48\u0d32\u0d3f \u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d41\u0d15
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn = Affine
Transform
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message3=\#T\:Affine
trasformation for raster currently works only on RGB image files
@@ -3836,7 +3835,6 @@
com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=#T:Invalid
WHERE clause for layer:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.SQL-error=#T:SQL
error
-com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.decompose-multi-tooltip=\#T\:Decompose
multi-geometries into simple geometries
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim=\#T\:Preserve
geometry dimension
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim-tooltip=\#T\:Eliminate
degenerated components to preserve geometry dimension
@@ -4027,4 +4025,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_pt.properties
===================================================================
--- core/trunk/src/language/jump_pt.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_pt.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -112,7 +112,7 @@
com.vividsolutions.jump.workbench.ui.plugin.AddNewCategoryPlugIn = Adicionar
nova categoria
com.vividsolutions.jump.workbench.ui.plugin.AddNewCategoryPlugIn.name =
T\:Category
com.vividsolutions.jump.workbench.ui.plugin.AddNewFeaturesPlugIn = Adicionar
nova fei\u00e7\u00e3o
-com.vividsolutions.jump.workbench.ui.plugin.AddNewLayerPlugIn = Adicionar um
novo layer
+com.vividsolutions.jump.workbench.ui.plugin.AddNewLayerPlugIn = Adicionar um
novo layer
com.vividsolutions.jump.workbench.ui.plugin.AddNewLayerPlugIn.name = T\:Layer
com.vividsolutions.jump.workbench.ui.plugin.BeanShellPlugIn.BeanShell-Console
= BeanShell Console
com.vividsolutions.jump.workbench.ui.plugin.ClearSelectionPlugIn = Limpar
sele\u00e7\u00e3o
@@ -126,7 +126,7 @@
com.vividsolutions.jump.workbench.ui.plugin.ExplodeSelectedFeaturesPlugIn =
Explodir fei\u00e7\u00f5es selecionadas
com.vividsolutions.jump.workbench.ui.plugin.FeatureInfoPlugIn =
Informa\u00e7\u00f5es da Fei\u00e7\u00e3o
com.vividsolutions.jump.workbench.ui.plugin.FeatureStatisticsPlugIn =
Estat\u00edsticas da fei\u00e7\u00e3o
-com.vividsolutions.jump.workbench.ui.plugin.LayerStatisticsPlugIn =
Estat\u00edsticas do layer
+com.vividsolutions.jump.workbench.ui.plugin.LayerStatisticsPlugIn =
Estat\u00edsticas do layer
com.vividsolutions.jump.workbench.ui.plugin.NewTaskPlugIn = Nova tarefa
com.vividsolutions.jump.workbench.ui.plugin.OptionsPlugIn = op\u00e7\u00f5es
com.vividsolutions.jump.workbench.ui.plugin.OutputWindowPlugIn = Janela de
sa\u00edda
@@ -135,7 +135,7 @@
com.vividsolutions.jump.workbench.ui.plugin.RedoPlugIn.nothing-to-redo = \#T\:
Nothing to redo
com.vividsolutions.jump.workbench.ui.plugin.RemoveSelectedCategoriesPlugIn =
Remover categorias selecionadas
com.vividsolutions.jump.workbench.ui.plugin.RemoveSelectedLayersPlugIn =
Remover layers selecionados
-com.vividsolutions.jump.workbench.ui.plugin.SaveImageAsPlugIn = Salvarcomo
imagem
+com.vividsolutions.jump.workbench.ui.plugin.SaveImageAsPlugIn = Salvarcomo
imagem
com.vividsolutions.jump.workbench.ui.plugin.SelectFeaturesInFencePlugIn =
Selecionar fei\u00e7\u00f5es no quadro
com.vividsolutions.jump.workbench.ui.plugin.SelectablePlugIn = Selectable
com.vividsolutions.jump.workbench.ui.plugin.ShortcutKeysPlugIn = Teclas de
atalho
@@ -174,7 +174,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error = Erro
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= Erro ao abrir o arquivo\: {0}
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn = Mudar estilos
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn = Afinar
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
@@ -182,7 +181,7 @@
com.vividsolutions.jump.workbench.ui.warp.DeleteIncrementalWarpingVectorTool =
Ferramenta de Dele\u00e7\u00e3o de Deforma\u00e7\u00e3o Incremental
com.vividsolutions.jump.workbench.ui.warp.DeleteWarpingVectorTool = Ferramenta
de Desenhar Deforma\u00e7\u00e3o
com.vividsolutions.jump.workbench.ui.warp.DrawIncrementalWarpingVectorTool =
Ferramenta de Desenho de Deforma\u00e7\u00e3o Incremental
-com.vividsolutions.jump.workbench.ui.warp.DrawWarpingVectorTool = Ferramenta
de Draw Deforma\u00e7\u00e3o
+com.vividsolutions.jump.workbench.ui.warp.DrawWarpingVectorTool = Ferramenta
de Draw Deforma\u00e7\u00e3o
com.vividsolutions.jump.workbench.ui.warp.WarpingPlugIn = Deformar
com.vividsolutions.jump.workbench.ui.zoom.PanTool = Ferramenta Pan
com.vividsolutions.jump.workbench.ui.zoom.ZoomBarPlugIn = Barra de zoom
@@ -208,7 +207,7 @@
com.vividsolutions.wms.ui.WMSViewer.get-image = Pegar imagem
com.vividsolutions.wms.ui.WMSViewer.server-string = Cadeia de caracteres do
servidor
com.vividsolutions.wms.ui.WMSViewer.wms-url =
http\://slkapps2.env.gov.bc.ca/servlet/com.esri.wms.Esrimap?
-com.vividsolutions.wms.ui.WMSViewer.wms-viewer = Visualizar WMS
+com.vividsolutions.wms.ui.WMSViewer.wms-viewer = Visualizar WMS
com.vividsolutions.wms.ui.WMSViewer.zoom-in = Ampliar
com.vividsolutions.wms.ui.WMSViewer.zoom-out = Reduzir
coordsys.ChangeCoordinateSystemPlugIn.coordinate-system-for-task = Sistema de
coordenadas para tarefa\:
@@ -360,7 +359,7 @@
jump.plugin.edit.NoderPlugIn.split = \#T\:Split
jump.plugin.edit.NoderPlugIn.advanced-options = \#T\:Advanced Options
jump.plugin.edit.NoderPlugIn.snap-rounding = \#T\:Snap-Rounding
-jump.plugin.edit.NoderPlugIn.snap-rounding-makes-noding-algorithm-fully-robust
= \#T\:Snap-rounding makes noding algorithm fully robust
+jump.plugin.edit.NoderPlugIn.snap-rounding-makes-noding-algorithm-fully-robust
= \#T\:Snap-rounding makes noding algorithm fully robust
jump.plugin.edit.NoderPlugIn.snap-rounding-decimal-places = \#T\:Snap-Rounding
Decimal Places
jump.plugin.edit.NoderPlugIn.number-of-decimal-digits = \#T\:Number of decimal
digits
jump.plugin.edit.NoderPlugIn.interpolate-z = \#T\:Interpolate Z value
@@ -388,7 +387,7 @@
jump.plugin.edit.PolygonizerPlugIn.Number-of-invalid-rings-found = N\u00famero
de envolt\u00f3rias inv\u00e1lidas encontradas\:
jump.plugin.edit.PolygonizerPlugIn.Number-of-polygons-created = N\u00famero de
pol\u00edgonos criados\:
jump.plugin.edit.PolygonizerPlugIn.Polygonization = Poligoniza\u00e7\u00e3o
-jump.plugin.edit.PolygonizerPlugIn.Polygonization-requires-correctly-noded-data
= A poligoniza\u00e7\u00e3o requer dados dos n\u00f3s corretos
+jump.plugin.edit.PolygonizerPlugIn.Polygonization-requires-correctly-noded-data
= A poligoniza\u00e7\u00e3o requer dados dos n\u00f3s corretos
jump.plugin.edit.PolygonizerPlugIn.Polygonize = Poligonizar
jump.plugin.edit.PolygonizerPlugIn.Polygonizes-the-line-segments-in-a-layer =
Poligoniza os segmentos de linhas numa layer.
jump.plugin.edit.PolygonizerPlugIn.Polygonizing = Poligonizando...
@@ -581,7 +580,7 @@
org.openjump.core.ui.plugin.edit.SelectAllLayerItemsPlugIn.selected-items =
Selecione itens
org.openjump.core.ui.plugin.edit.SelectAllModifiedFeaturesPlugIn.select-all-modified-features
= T\:Select all modified features
org.openjump.core.ui.plugin.edit.SelectByTypePlugIn.Empty-Geometries =
Geometrias Vazias
-org.openjump.core.ui.plugin.edit.SelectByTypePlugIn.On-selected-layers-only =
Apenas nos layers selecionados
+org.openjump.core.ui.plugin.edit.SelectByTypePlugIn.On-selected-layers-only =
Apenas nos layers selecionados
org.openjump.core.ui.plugin.edit.SelectByTypePlugIn.Select-by-Geometry-Type =
Selecione por Tipo de Geometria
org.openjump.core.ui.plugin.edit.SelectByTypePlugIn.Select-only-these-types =
Selecione apenas estes tipos\:
org.openjump.core.ui.plugin.edit.SelectItemsByCirlceFromSelectedLayersPlugIn.cirlce-diameter
= di\u00e2metro do c\u00edrculo
@@ -672,7 +671,7 @@
org.openjump.core.ui.plugin.file.SaveLayersWithoutDataSourcePlugIn.directory-chooser
= T\:Save newly created layers in the following directory
org.openjump.core.ui.plugin.file.SaveLayersWithoutDataSourcePlugIn.do-not-save
= T\:Do not save those layers on the Hard Drive
org.openjump.core.ui.plugin.file.SaveLayersWithoutDataSourcePlugIn.every-layer-has-a-datasource
= T\:Every layer already has a datasource
-org.openjump.core.ui.plugin.file.SaveLayersWithoutDataSourcePlugIn.hover-the-label-to-see-the-list
= T\:(hover the label to see the list)
+org.openjump.core.ui.plugin.file.SaveLayersWithoutDataSourcePlugIn.hover-the-label-to-see-the-list
= T\:(hover the label to see the list)
org.openjump.core.ui.plugin.file.SaveLayersWithoutDataSourcePlugIn.layers-without-datasource
= T\:There are {0} newly created layers without datasource
org.openjump.core.ui.plugin.file.SaveLayersWithoutDataSourcePlugIn.layers-without-datasource-management
= T\:Layers without datasource management
org.openjump.core.ui.plugin.file.SaveLayersWithoutDataSourcePlugIn.save-as-jml
= T\:Save them as JML files
@@ -870,7 +869,7 @@
org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.Warning-See-Output-Window
= Nota\: veja janela de sa\u00edda
org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.layer = layer\:
org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.read-only-layer =
layer somente para leitura
-org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.read-only-source-will-replace-an-existing-file
= substituir\u00e1 o arquivo existente pela fonte do somente leitura
+org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.read-only-source-will-replace-an-existing-file
= substituir\u00e1 o arquivo existente pela fonte do somente leitura
org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.replaces-file =
recolocar arquivos
org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.with-empty-geometry =
com geometria vazia
org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.with-mixed-geometry-types
= com tipos de geometrias misturadas
@@ -921,7 +920,7 @@
org.openjump.core.ui.plugin.queries.Operator.ne = \#
org.openjump.core.ui.plugin.queries.Operator.overl = sobrep\u00f5e-se
org.openjump.core.ui.plugin.queries.Operator.relat = \#T\:relate
-org.openjump.core.ui.plugin.queries.Operator.star = come\u00e7a com
+org.openjump.core.ui.plugin.queries.Operator.star = come\u00e7a com
org.openjump.core.ui.plugin.queries.Operator.touch = toca
org.openjump.core.ui.plugin.queries.Operator.wdist = est\u00e1 dentro
org.openjump.core.ui.plugin.queries.Operator.withi = est\u00e1 incluso em
@@ -1136,7 +1135,7 @@
org.openjump.core.ui.plugin.tools.Add3DGeometryAttributesPlugIn.nb-nan-z =
\#T\:\#NaN_Z
org.openjump.core.ui.plugin.tools.Add3DGeometryAttributesPlugIn.add-nb-nan-z =
\#T\:Number of coordinates without Z (NaN)
org.openjump.core.ui.plugin.tools.Add3DGeometryAttributesPlugIn.nb-0-z =
\#T\:\#Null_Z
-org.openjump.core.ui.plugin.tools.Add3DGeometryAttributesPlugIn.add-nb-0-z =
\#T\:Number of Null (0) Z
+org.openjump.core.ui.plugin.tools.Add3DGeometryAttributesPlugIn.add-nb-0-z =
\#T\:Number of Null (0) Z
org.openjump.core.ui.plugin.tools.Add3DGeometryAttributesPlugIn.nb-negative-z
= \#T\:\#Negative_Z
org.openjump.core.ui.plugin.tools.Add3DGeometryAttributesPlugIn.add-nb-negative-z
= \#T\:Number of Negative Z
org.openjump.core.ui.plugin.tools.Add3DGeometryAttributesPlugIn.nb-positive-z
= \#T\:\#Positive_Z
@@ -1236,7 +1235,7 @@
org.openjump.core.ui.plugin.tools.CreateThiessenPolygonsPlugIn.Creates-a-Delaunay-triangulation-and-returns-the-Voronoi-regions
= Executa a triangula\u00e7\u00e3o do tipo Delaunay e retorna as regi\u00f5es.
org.openjump.core.ui.plugin.tools.CreateThiessenPolygonsPlugIn.Error-found-multiple-points-in-polygon
= Erro\: found multiple points in polygon
org.openjump.core.ui.plugin.tools.CreateThiessenPolygonsPlugIn.add-attributes-from-points
= Adicionar atributos dos pontos
-org.openjump.core.ui.plugin.tools.CreateThiessenPolygonsPlugIn.background-layer-to-estimate-the-thiessen-polygon-size
= background layer to estimate the border thiessen polygon size
+org.openjump.core.ui.plugin.tools.CreateThiessenPolygonsPlugIn.background-layer-to-estimate-the-thiessen-polygon-size
= background layer to estimate the border thiessen polygon size
org.openjump.core.ui.plugin.tools.CreateThiessenPolygonsPlugIn.create-polygons-from-voronoi-edges
= Cria pol\u00edgonos das bordas Voronoi
org.openjump.core.ui.plugin.tools.CreateThiessenPolygonsPlugIn.create-triangulation
= triangular
org.openjump.core.ui.plugin.tools.CreateThiessenPolygonsPlugIn.no-point-geometry
= geometria n\u00e3o \u00e9 do tipo ponto
@@ -1326,7 +1325,7 @@
org.openjump.core.ui.plugin.tools.PlumePlugIn = Plume
org.openjump.core.ui.plugin.tools.ReducePointsISAPlugIn.Points-reduced-from =
Pontos reduzidos de
org.openjump.core.ui.plugin.tools.ReducePointsISAPlugIn.Reduce-points-in-selected-features
= Reduz pontos nas fei\u00e7\u00f5es selecionadas.
-org.openjump.core.ui.plugin.tools.ReducePointsISAPlugIn.Simplify-ISA-algorithm
= Simplificar (algor\u00edtimo ISA)
+org.openjump.core.ui.plugin.tools.ReducePointsISAPlugIn.Simplify-ISA-algorithm
= Simplificar (algor\u00edtimo ISA)
org.openjump.core.ui.plugin.tools.ReducePointsISAPlugIn.The-reduce-points-tolerance
= A toler\u00e2ncia da redu\u00e7\u00e3o.
org.openjump.core.ui.plugin.tools.ReducePointsISAPlugIn.Tolerance =
Toler\u00e2ncia
org.openjump.core.ui.plugin.tools.ReducePointsISAPlugIn.to = para
@@ -1449,7 +1448,7 @@
org.openjump.core.ui.plugin.tools.VoronoiDiagramPlugIn.transfer-attributes =
\#T\:Transfer attributes
org.openjump.core.ui.plugin.tools.VoronoiDiagramPlugIn.tolerance =
\#T\:Tolerance
org.openjump.core.ui.plugin.tools.VoronoiDiagramPlugIn.description =
\#T\:Create the Voronoi Diagram (AKA Thiessen polygons) of a set of punctual
sites.\n\
- Use a non null tolerance to make the calculation more robust.
+ Use a non null tolerance to make the calculation more robust.
org.openjump.core.ui.plugin.tools.CalculateDistancesPlugIn.Calculate-Distances
= \#T\:Calculate Distances
org.openjump.core.ui.plugin.tools.CalculateDistancesPlugIn.Calculates-distances-description
= \#T\:Calculates distance between the geometries in 2 different datasets. It
can calculate\: (i) the shortest distance (sd), (ii) the shortest distance
between centroids (sdc), and (iii) the Hausdorff distance (sdh, a maximum
distance).
org.openjump.core.ui.plugin.tools.CalculateDistancesPlugIn.layer-with-origins
= \#T\:layer with origins
@@ -1504,7 +1503,7 @@
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only =
Sicronizar apenas o pan
org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS Layer
org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS Layer
-org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Caixa de
Limite(s) para
+org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Caixa de
Limite(s) para
org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.no-bounding-box = Sem envelope
(caixa de limites)\!
org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.no-bounding-boxes-available =
Sem Caixa de Limite(s) dispon\u00edvel\!
org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.no-wms-layer-selected = Nenhum
Layer(s) WMS selecionado\!
@@ -1597,13 +1596,13 @@
pirol.ui.panels.default-value-for-new-attribute = valor padr\u00e3o para o
novo atributo
pirol.ui.panels.name-of-new-attribute = nome do novo campo
pirol.ui.panels.type-of-new-attribute = tipo do novo campo
-plugin.AbstractPlugIn.done-current-committed-memory = Feito. Gravado na
mem\u00f3ria corrente\:
+plugin.AbstractPlugIn.done-current-committed-memory = Feito. Gravado na
mem\u00f3ria corrente\:
plugin.EnableCheckFactory.a-fence-must-be-drawn = Um quadro deve ser desenhado
plugin.EnableCheckFactory.a-task-window-must-be-active = Uma Janela de Tarefa
deve estar ativa
plugin.EnableCheckFactory.a-window-with-a-layer-manager-must-be-active = Uma
janela com um gerenciador de layer deve estar ativa
plugin.EnableCheckFactory.a-window-with-a-layer-name-panel-must-be-active =
Uma janela com um painel com o nome do layer deve estar ativa
plugin.EnableCheckFactory.a-window-with-a-layer-view-panel-must-be-active =
Uma janela com um painel de vis\u00e3o de layer deve estar ativa
-plugin.EnableCheckFactory.a-window-with-an-associated-task-frame-must-be-active
= Uma janela com uma tarefa associada deve estar ativa
+plugin.EnableCheckFactory.a-window-with-an-associated-task-frame-must-be-active
= Uma janela com uma tarefa associada deve estar ativa
plugin.EnableCheckFactory.a-window-with-selection-manager-must-be-active = Uma
janela com um gerenciador de sele\u00e7\u00e3o deve estar ativa
plugin.EnableCheckFactory.at-least-{0}-categories-must-be-selected = Ao menos
{0} categorias devem estar selecionadas
plugin.EnableCheckFactory.at-least-{0}-category-must-be-selected = Ao menos
{0} categoria deve estar selecionada
@@ -2752,4 +2751,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_pt_BR.properties
===================================================================
--- core/trunk/src/language/jump_pt_BR.properties 2016-12-28 14:58:30 UTC
(rev 5293)
+++ core/trunk/src/language/jump_pt_BR.properties 2016-12-29 12:25:19 UTC
(rev 5294)
@@ -174,7 +174,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error = Erro
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= Erro ao abrir o arquivo\: {0}
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn = Mudar estilos
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn = Afinar
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
@@ -2562,7 +2561,6 @@
com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=#T:Invalid
WHERE clause for layer:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.SQL-error=#T:SQL
error
-com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.decompose-multi-tooltip=\#T\:Decompose
multi-geometries into simple geometries
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim=\#T\:Preserve
geometry dimension
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim-tooltip=\#T\:Eliminate
degenerated components to preserve geometry dimension
@@ -2753,4 +2751,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=URL
\ No newline at end of file
+ui.GenericNames.url=URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_ta_IN.properties
===================================================================
--- core/trunk/src/language/jump_ta_IN.properties 2016-12-28 14:58:30 UTC
(rev 5293)
+++ core/trunk/src/language/jump_ta_IN.properties 2016-12-29 12:25:19 UTC
(rev 5294)
@@ -175,7 +175,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1
\u0baa\u0bbe\u0b99\u0bcd\u0b95\u0bc1\u0b95\u0bb3\u0bcd
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn =
\u0b95\u0bc7\u0ba3\u0bcd\u0bae\u0bc8
\u0b87\u0b9f\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0ba4\u0bb2\u0bcd
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn =
\u0b87\u0ba9\u0bcd\u0b95\u0bcd\u0bb0\u0bbf\u0bae\u0bc6\u0ba3\u0bcd\u0b9f\u0bb2\u0bcd
\u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc0\u0b9f\u0bcd\u0b9f\u0bbe\u0bb2\u0bcd
\u0bb5\u0bc6\u0b95\u0bcd\u0b9f\u0bb0\u0bcd \u0b95\u0bb0\u0bc1\u0bb5\u0bbf
\u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message3=\#T\:Affine
trasformation for raster currently works only on RGB image files
@@ -2561,7 +2560,6 @@
com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=#T:Invalid
WHERE clause for layer:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.SQL-error=#T:SQL
error
-com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.decompose-multi-tooltip=\#T\:Decompose
multi-geometries into simple geometries
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim=\#T\:Preserve
geometry dimension
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim-tooltip=\#T\:Eliminate
degenerated components to preserve geometry dimension
@@ -2580,9 +2578,6 @@
ui.GenericNames.Temporal-layer = \#T\:Temporal layer
ui.GenericNames.Temporal-layers = \#T\:Temporal layers
ui.GenericNames.Temporal-layers-found = \#T\:Temporal layers found
-ui.GenericNames.Temporal-layer = \#T\:Temporal layer
-ui.GenericNames.Temporal-layers = \#T\:Temporal layers
-ui.GenericNames.Temporal-layers-found = \#T\:Temporal layers found
org.openjump.core.ui.plugin.tools.aggregate.Aggregator.Count=\#T\:Count
org.openjump.core.ui.plugin.tools.aggregate.Aggregator.Collect=\#T\:Collect
org.openjump.core.ui.plugin.tools.aggregate.Aggregator.Union=\#T\:Union/Merge
@@ -2755,4 +2750,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=#T:URL
\ No newline at end of file
+ui.GenericNames.url=#T:URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_te.properties
===================================================================
--- core/trunk/src/language/jump_te.properties 2016-12-28 14:58:30 UTC (rev
5293)
+++ core/trunk/src/language/jump_te.properties 2016-12-29 12:25:19 UTC (rev
5294)
@@ -175,7 +175,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= Error opening file\: {0}
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn = Change Styles
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn = Affine
Transform
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message3=\#T\:Affine
trasformation for raster currently works only on RGB image files
@@ -1241,8 +1240,6 @@
org.openjump.core.ui.plugin.raster.nodata.ChangeRangeValuesToNoDataPlugIn.name
=\#T\:Change a range of cell values to nodata
org.openjump.core.ui.plugin.raster.nodata.ChangeRangeValuesToNoDataPlugIn.change=\#T\:Change
this range of values
org.openjump.core.ui.plugin.raster.nodata.ChangeRangeValuesToNoDataPlugIn.tooltips=\#T\:Enable
to extract only the input range of values
-
-org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to
nodata value:
org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White =
Black-White
org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red
= Blue-Green-Red
org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red =
Blue-Red
@@ -3070,7 +3067,6 @@
com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=#T:Invalid
WHERE clause for layer:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.SQL-error=#T:SQL
error
-com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.decompose-multi-tooltip=\#T\:Decompose
multi-geometries into simple geometries
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim=\#T\:Preserve
geometry dimension
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim-tooltip=\#T\:Eliminate
degenerated components to preserve geometry dimension
@@ -3261,4 +3257,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=#T:URL
\ No newline at end of file
+ui.GenericNames.url=#T:URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_zh_CN.properties
===================================================================
--- core/trunk/src/language/jump_zh_CN.properties 2016-12-28 14:58:30 UTC
(rev 5293)
+++ core/trunk/src/language/jump_zh_CN.properties 2016-12-29 12:25:19 UTC
(rev 5294)
@@ -11,7 +11,7 @@
JUMPWorkbench.status.load-extensions = \#T\:Preparing to load additional
extensions
JUMPWorkbench.status.restore-state = \#T\:Restoring state from previous run
JUMPWorkbench.version = \u7248\u672c
-JUMPWorkbench.version-locale = \u7248\u672c\t
+JUMPWorkbench.version-locale = \u7248\u672c
JUMPWorkbench.status.initialize-datasources = \#T\:
JUMPWorkbench.status.show-workbench = \#T\:
com.vividsolutions.jump.io.ShapefileReader.shp-gt-dbf = \#T\:Error reading
shapefile ''{0}'' \:\n\
@@ -175,7 +175,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= \u9519\u8bef\u6253\u5f00\u6587\u4ef6\: {0}
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn =
\u66f4\u6539\u6837\u5f0f
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn =
\u4eff\u5c04\u53d8\u6362
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message3=\#T\:Affine
trasformation for raster currently works only on RGB image files
@@ -358,7 +357,7 @@
jump.plugin.edit.NoderPlugIn.split = \#T\:Split
jump.plugin.edit.NoderPlugIn.advanced-options = \#T\:Advanced Options
jump.plugin.edit.NoderPlugIn.snap-rounding = \#T\:Snap-Rounding
-jump.plugin.edit.NoderPlugIn.snap-rounding-makes-noding-algorithm-fully-robust
= \#T\:Snap-rounding makes noding algorithm fully robust
+jump.plugin.edit.NoderPlugIn.snap-rounding-makes-noding-algorithm-fully-robust
= \#T\:Snap-rounding makes noding algorithm fully robust
jump.plugin.edit.NoderPlugIn.snap-rounding-decimal-places = \#T\:Snap-Rounding
Decimal Places
jump.plugin.edit.NoderPlugIn.number-of-decimal-digits = \#T\:Number of decimal
digits
jump.plugin.edit.NoderPlugIn.interpolate-z = \#T\:Interpolate Z value
@@ -555,7 +554,7 @@
org.openjump.core.ui.plugin.datastore.transaction.TransactionManagerPanel.modifications
= \#T\:{0} modification(s)
org.openjump.core.ui.plugin.datastore.transaction.TransactionManagerPanel.suppressions
= \#T\:{0} suppression(s)
org.openjump.core.ui.plugin.edit.ClipToFencePlugIn.Clip-Map-to-Fence =
\u526a\u8f91\u5730\u56fe\u9500\u8d43
-org.openjump.core.ui.plugin.edit.ClipToFencePlugIn.Fence-layer-must-be-present
= \u6805\u680f\u5c42\u5fc5\u987b\u5b58\u5728\t
+org.openjump.core.ui.plugin.edit.ClipToFencePlugIn.Fence-layer-must-be-present
= \u6805\u680f\u5c42\u5fc5\u987b\u5b58\u5728
org.openjump.core.ui.plugin.edit.ClipToFencePlugIn.This-operation-is-not-undoable
= \u6b64\u64cd\u4f5c\u662f\u65e0\u6cd5\u8fd8\u539f
org.openjump.core.ui.plugin.edit.ClipToFencePlugIn.Visible-Only-(-see-Warning-)
= \u53ef\u89c1\uff0c\u53ea\u6709\uff08\u89c1\u8b66\u544a\uff09
org.openjump.core.ui.plugin.edit.ClipToFencePlugIn.description =
\u6240\u6709\u77e2\u91cf\u5c42\u5c06\u88ab\u5939\u5728\u6805\u680f\u3002\u8b66\u544a\uff1a
\u5982\u679c\u4f60\u7684\u4efb\u52a1\u88c5\u6709\u5c42\u4e0d\u53ef\u89c1\uff0c\u4ed6\u4eec\u5e76\u6ca1\u6709\u88ab\u52a0\u8f7d\uff0c\u56e0\u6b64\u4e0d\u4f1a\u88ab\u88c1\u526a\u3002
@@ -648,7 +647,7 @@
org.openjump.core.ui.plugin.edittoolbox.tab.ConstraintsOptionsPanel.is-too-small-must-be-3-or-greater
= \u592a\u5c0f\u4e86\uff0c\u5e94\u4e3a3\u6216\u66f4\u5927\u3002
org.openjump.core.ui.plugin.edittoolbox.tab.ConstraintsOptionsPanel.model-units
= \u793a\u8303\u5355\u4f4d
org.openjump.core.ui.plugin.edittoolbox.tab.ConstraintsOptionsPanel.negative-numbers-not-allowed-for-length
= \u8d1f\u6570\u4e0d\u5141\u8bb8\u7684\u957f\u5ea6\u3002
-org.openjump.core.ui.plugin.edittoolbox.tab.ConstraintsOptionsPanel.parts =
\u90e8\u5206\t
+org.openjump.core.ui.plugin.edittoolbox.tab.ConstraintsOptionsPanel.parts =
\u90e8\u5206
org.openjump.core.ui.plugin.file.DataSourceQueryChooserOpenWizard.no-queries-found
= \u53d1\u73b0\u6ca1\u6709\u95ee\u9898
org.openjump.core.ui.plugin.file.DataSourceQueryChooserOpenWizard.query-not-readable
= Quey\u65e0\u6cd5\u8bfb\u53d6
org.openjump.core.ui.plugin.file.FindFile.choose-current-location-of = \#T\:
@@ -1560,7 +1559,7 @@
org.openjump.core.ui.plugin.tools.VoronoiDiagramPlugIn.transfer-attributes =
\#T\:Transfer attributes
org.openjump.core.ui.plugin.tools.VoronoiDiagramPlugIn.tolerance =
\#T\:Tolerance
org.openjump.core.ui.plugin.tools.VoronoiDiagramPlugIn.description =
\#T\:Create the Voronoi Diagram (AKA Thiessen polygons) of a set of punctual
sites.\n\
- Use a non null tolerance to make the calculation more robust.
+ Use a non null tolerance to make the calculation more robust.
org.openjump.core.ui.plugin.tools.CalculateDistancesPlugIn.Calculate-Distances
= \#T\:Calculate Distances
org.openjump.core.ui.plugin.tools.CalculateDistancesPlugIn.Calculates-distances-description
= \#T\:Calculates distance between the geometries in 2 different datasets. It
can calculate\: (i) the shortest distance (sd), (ii) the shortest distance
between centroids (sdc), and (iii) the Hausdorff distance (sdh, a maximum
distance).
org.openjump.core.ui.plugin.tools.CalculateDistancesPlugIn.layer-with-origins
= \#T\:layer with origins
@@ -2725,7 +2724,6 @@
com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=#T:Invalid
WHERE clause for layer:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.SQL-error=#T:SQL
error
-com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.decompose-multi-tooltip=\#T\:Decompose
multi-geometries into simple geometries
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim=\#T\:Preserve
geometry dimension
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim-tooltip=\#T\:Eliminate
degenerated components to preserve geometry dimension
@@ -2916,4 +2914,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=#T:URL
\ No newline at end of file
+ui.GenericNames.url=#T:URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Modified: core/trunk/src/language/jump_zh_HK.properties
===================================================================
--- core/trunk/src/language/jump_zh_HK.properties 2016-12-28 14:58:30 UTC
(rev 5293)
+++ core/trunk/src/language/jump_zh_HK.properties 2016-12-29 12:25:19 UTC
(rev 5294)
@@ -175,7 +175,6 @@
com.vividsolutions.jump.workbench.ui.style.BasicStylePanel.error-opening-file
= \u932f\u8aa4\u6253\u958b\u6587\u4ef6\: {0}
com.vividsolutions.jump.workbench.ui.style.ChangeStylesPlugIn =
\u66f4\u6539\u6a23\u5f0f
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn =
\u4eff\u5c04\u8b8a\u63db
-com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn=Transformaci\u00f3n
af\u00edn (con vectores de deformaccion)
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message1=\#T\:Please
load this image as Sextante Raster to perform a transformation
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message2=\#T\:Affine
transformation not yet implemented for this type of layer
com.vividsolutions.jump.workbench.ui.warp.AffineTransformPlugIn.message3=\#T\:Affine
trasformation for raster currently works only on RGB image files
@@ -1023,7 +1022,6 @@
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.namefile=
\#T\:File
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.raster=
\#T\:Raster
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.extent=
\#T\:Extent
-org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.raster-statistics=
\#T\:Statistics
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.name=
\#T\:name
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.type=
\#T\:type
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.dimension=
\#T\:dimension
@@ -2724,7 +2722,6 @@
com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.Invalid-layer-where-clause=\#T\:Invalid
WHERE clause for layer\:
jump.workbench.ui.plugin.datastore.AddDatastoreLayerPanel.SQL-error=#T:SQL
error
-com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error=#T:SQL
error:
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.decompose-multi-tooltip=\#T\:Decompose
multi-geometries into simple geometries
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim=\#T\:Preserve
geometry dimension
org.openjump.core.ui.plugin.tools.MakeValidPlugIn.preserve-geom-dim-tooltip=\#T\:Eliminate
degenerated components to preserve geometry dimension
@@ -2917,4 +2914,21 @@
ui.GenericNames.show=#T:Show
ui.GenericNames.user=#T:User
ui.GenericNames.version=#T:Version
-ui.GenericNames.url=#T:URL
\ No newline at end of file
+ui.GenericNames.url=#T:URL
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn=#T:Update Layer with an
Attribute Join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined=#T:Attributes
mapping is not defined
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers=#T:Choose
layers
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description=#T:Update
reference layer attribute values with join layer attribute values when
reference feature ext id = join feature id.\n\
+ Join attributes can be mapped to reference attributes even if their names
differ.\n\
+ Left join keep reference feature which do not verify the join condition
while right join add features from join layer which do not verify the join
condition.
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join=#T:Do not
join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer=#T:Join layer
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id=#T:Join
layer id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique=#T:Join
layer id is not unique
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join=#T:Left join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip=#T:Check
left join to keep all reference features
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes=#T:Map
attributes
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id=#T:Reference
layer external id
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update=#T:Reference
layer to update
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join=#T:Right join
+org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip=#T:Check
right join to add un-joined features from join layer
\ No newline at end of file
Added:
core/trunk/src/org/openjump/core/ui/plugin/tools/UpdateWithJoinPlugIn.java
===================================================================
--- core/trunk/src/org/openjump/core/ui/plugin/tools/UpdateWithJoinPlugIn.java
(rev 0)
+++ core/trunk/src/org/openjump/core/ui/plugin/tools/UpdateWithJoinPlugIn.java
2016-12-29 12:25:19 UTC (rev 5294)
@@ -0,0 +1,400 @@
+package org.openjump.core.ui.plugin.tools;
+
+import com.vividsolutions.jump.I18N;
+import com.vividsolutions.jump.feature.*;
+import com.vividsolutions.jump.task.TaskMonitor;
+import com.vividsolutions.jump.workbench.Logger;
+import com.vividsolutions.jump.workbench.WorkbenchContext;
+import com.vividsolutions.jump.workbench.model.FeatureEventType;
+import com.vividsolutions.jump.workbench.model.Layer;
+import com.vividsolutions.jump.workbench.model.UndoableCommand;
+import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory;
+import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck;
+import com.vividsolutions.jump.workbench.plugin.PlugInContext;
+import com.vividsolutions.jump.workbench.ui.*;
+import org.openjump.core.ui.plugin.AbstractThreadedUiPlugIn;
+
+import javax.swing.*;
+import javax.swing.border.Border;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.*;
+import java.util.List;
+
+import static
com.vividsolutions.jump.workbench.ui.AttributeTypeFilter.NUMSTRING_FILTER;
+
+/**
+ * Update a layer from another layer using a join
+ */
+public class UpdateWithJoinPlugIn extends AbstractThreadedUiPlugIn {
+
+ private final static String DESCRIPTION =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Description");
+ //private final static String CHOOSE_LAYERS =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Choose-layers");
+ private final static String REFERENCE_LAYER =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-to-update");
+ private final static String JOIN_LAYER =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer");
+ private final static String REFERENCE_LAYER_EXT_ID =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Reference-layer-ext-id");
+ private final static String JOIN_LAYER_ID =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id");
+ private final static String LEFT_JOIN =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join");
+ private final static String LEFT_JOIN_TT =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Left-join-tooltip");
+ private final static String RIGHT_JOIN =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join");
+ private final static String RIGHT_JOIN_TT =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Right-join-tooltip");
+ //private final static String ADD_ATTRIBUTES =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Add-attributes-create-new-layer");
+ //private final static String ADD_ATTRIBUTES_TT =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Add-attributes-tooltip");
+ private final static String MAP_ATTRIBUTES =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Map-attributes");
+ private final static String DO_NOT_JOIN =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Do-not-join");
+ private final static String UNDEFINED_MAPPING =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Attributes-mapping-is-not-defined");
+ private final static String JOIN_NOT_UNIQUE =
I18N.get("org.openjump.core.ui.plugin.tools.UpdateWithJoinPlugIn.Join-layer-id-is-not-unique");
+
+ private Layer referenceLayer = null;
+ private Layer joinLayer = null;
+ private String referenceLayerExtId = "";
+ private String joinLayerId = "";
+ private boolean left = true;
+ private boolean right = false;
+ private boolean add_attributes = false;
+ private boolean attributesChoosen;
+ private Map<String, String> attributesMapping = new HashMap<>();
+
+ public void initialize(PlugInContext context) throws Exception {
+ context.getFeatureInstaller().addMainMenuPlugin(
+ this,
+ new String[]{MenuNames.TOOLS, MenuNames.TOOLS_EDIT_ATTRIBUTES},
+ this.getName() + "...", false, null,
+ createEnableCheck(context.getWorkbenchContext()), -1);
+ }
+
+ public static MultiEnableCheck createEnableCheck(WorkbenchContext
workbenchContext) {
+ EnableCheckFactory checkFactory = new
EnableCheckFactory(workbenchContext);
+ return new MultiEnableCheck()
+ .add(checkFactory.createTaskWindowMustBeActiveCheck())
+ .add(checkFactory.createAtLeastNLayersMustExistCheck(2));
+ }
+
+ public boolean execute(PlugInContext context) throws Exception {
+ attributesChoosen = false;
+ MultiInputDialog dialog = initDialog(context);
+ GUIUtil.centreOnWindow(dialog);
+ dialog.setVisible(true);
+ if (!dialog.wasOKPressed()) {
+ return false;
+ } else {
+ if (!attributesChoosen) {
+ throw new Exception(UNDEFINED_MAPPING);
+ } else {
+ this.getDialogValues(dialog);
+ }
+ }
+ return true;
+ }
+
+ public void run(TaskMonitor monitor, PlugInContext context) throws
Exception {
+
+ monitor.allowCancellationRequests();
+
+ reportNothingToUndoYet(context);
+
+ FeatureCollection joinFC = joinLayer.getFeatureCollectionWrapper();
+ int joinLayerAttributeIndex =
joinFC.getFeatureSchema().getAttributeIndex(joinLayerId);
+ Map<String,Feature> joinMap = new HashMap<>();
+
+ for (Feature f : joinFC.getFeatures()) {
+ Object joinId = f.getAttribute(joinLayerAttributeIndex);
+ if (joinId == null) continue;
+ // If joinMap already contains this key, join is ambiguous, an
exception is thrown
+ if (joinMap.get(joinId.toString()) != null) {
+ throw new Exception(JOIN_NOT_UNIQUE);
+ }
+ joinMap.put(joinId.toString(), f);
+ }
+
+ if (add_attributes) {
+ //createNewLayer(monitor, context, joinMap);
+ } else {
+ updateLayer(monitor, context, joinMap);
+ }
+
+ }
+
+ //private void createNewLayer(TaskMonitor monitor, PlugInContext context,
Map<String,Feature> joinMap) {}
+
+ private void updateLayer(TaskMonitor monitor, PlugInContext context,
Map<String,Feature> joinMap) {
+
+ final Map<Integer,Feature> oldFeatures = new HashMap<>(); // old
versions of modified features
+ final Map<Integer,Feature> newFeatures = new HashMap<>(); // new
version of modified features
+ final List<Feature> added = new ArrayList<>(); // features
added to baseLayer
+ final List<Feature> removed = new ArrayList<>(); // features
removed from baseLayer
+
+ for (Feature f :
referenceLayer.getFeatureCollectionWrapper().getFeatures()) {
+
+ Object extKey = f.getAttribute(referenceLayerExtId);
+ if (extKey == null) {
+ if (!left) {
+ removed.add(f);
+ }
+ } else {
+ Feature joinedFeature = joinMap.get(extKey.toString());
+ if (joinedFeature == null) { // no join
+ if (!left) {
+ removed.add(f);
+ }
+ continue; // f is kept (left
join)
+ }
+ // extKey is not null and key exists in joinLayer
+ Feature newFeature = f.clone(true);
+ boolean modified = false;
+ for (int i = 0 ; i < f.getSchema().getAttributeCount() ; i++) {
+ String name = f.getSchema().getAttributeName(i);
+ if (name.equals(referenceLayerExtId)) {
+ continue; // do not update attribute used for the
join
+ }
+ String joinName = attributesMapping.get(name);
+ if (joinName.equals(DO_NOT_JOIN)) {
+ continue; // do not update if no join is defined
+ }
+ int joinIndex =
joinedFeature.getSchema().getAttributeIndex(joinName);
+ if (Objects.equals(f.getAttribute(name),
joinedFeature.getAttribute(joinIndex))) {
+ continue; // do not update if
+ }
+ AttributeType type = f.getSchema().getAttributeType(i);
+ if (type == AttributeType.STRING)
newFeature.setAttribute(i, joinedFeature.getString(joinIndex));
+ else if (type == AttributeType.DOUBLE)
newFeature.setAttribute(i, joinedFeature.getDouble(joinIndex));
+ else if (type == AttributeType.INTEGER)
newFeature.setAttribute(i, joinedFeature.getInteger(joinIndex));
+ else if (type == AttributeType.GEOMETRY)
newFeature.setGeometry(joinedFeature.getGeometry());
+ else newFeature.setAttribute(i,
joinedFeature.getAttribute(joinIndex));
+ modified = true;
+ }
+ if (modified) {
+ oldFeatures.put(f.getID(), f.clone(true));
+ newFeatures.put(f.getID(), newFeature);
+ }
+ }
+ }
+ if (right) {
+ for (Feature f :
joinLayer.getFeatureCollectionWrapper().getFeatures()) {
+ Object key = f.getAttribute(referenceLayerExtId);
+ if (key != null && joinMap.containsKey(key.toString()))
continue;
+ Feature bf = new
BasicFeature(referenceLayer.getFeatureCollectionWrapper().getFeatureSchema());
+ bf.setGeometry(f.getGeometry());
+ for (int i = 0 ; i < bf.getSchema().getAttributeCount() ; i++)
{
+ String name = bf.getSchema().getAttributeName(i);
+ String joinName = attributesMapping.get(name);
+ if (name.equals(referenceLayerExtId)) joinName =
joinLayerId;
+ if (joinName.equals(DO_NOT_JOIN)) continue;
+ int joinIndex = f.getSchema().getAttributeIndex(joinName);
+ if (f.getAttribute(joinIndex) == null) continue;
+ AttributeType type = bf.getSchema().getAttributeType(i);
+ if (type == AttributeType.STRING) bf.setAttribute(i,
f.getString(joinIndex));
+ else if (type == AttributeType.DOUBLE) bf.setAttribute(i,
f.getDouble(joinIndex));
+ else if (type == AttributeType.INTEGER) bf.setAttribute(i,
f.getInteger(joinIndex));
+ else if (type == AttributeType.GEOMETRY)
bf.setGeometry(f.getGeometry());
+ else bf.setAttribute(i, f.getAttribute(joinIndex));
+ }
+ added.add(bf);
+ }
+ }
+
+
referenceLayer.getLayerManager().getUndoableEditReceiver().startReceiving();
+ try {
+ UndoableCommand command =
+ new
UndoableCommand(I18N.get(AutoAssignAttributePlugIn.class.getName())) {
+ public void execute() {
+ for (Feature f :
referenceLayer.getFeatureCollectionWrapper().getFeatures()) {
+ Feature newFeature =
newFeatures.get(f.getID());
+ if (newFeature != null) {
+
f.setAttributes(newFeature.getAttributes());
+ }
+ }
+ for (Feature f : removed) {
+
referenceLayer.getFeatureCollectionWrapper().remove(f);
+ }
+ for (Feature f : added) {
+
referenceLayer.getFeatureCollectionWrapper().add(f);
+ }
+
referenceLayer.getLayerManager().fireFeaturesAttChanged(newFeatures.values(),
+ FeatureEventType.ATTRIBUTES_MODIFIED,
referenceLayer, oldFeatures.values());
+
referenceLayer.getLayerManager().fireGeometryModified(newFeatures.values(),
+ referenceLayer, oldFeatures.values());
+
referenceLayer.getLayerManager().fireFeaturesChanged(added,
+ FeatureEventType.ADDED, referenceLayer);
+
referenceLayer.getLayerManager().fireFeaturesChanged(removed,
+ FeatureEventType.DELETED, referenceLayer);
+ }
+ public void unexecute() {
+ for (Feature f :
referenceLayer.getFeatureCollectionWrapper().getFeatures()) {
+ Feature oldFeature =
oldFeatures.get(f.getID());
+ if (oldFeature != null) {
+
f.setAttributes(oldFeature.getAttributes());
+ }
+ }
+ for (Feature f : removed) {
+
referenceLayer.getFeatureCollectionWrapper().add(f);
+ }
+ for (Feature f : added) {
+
referenceLayer.getFeatureCollectionWrapper().remove(f);
+ }
+
referenceLayer.getLayerManager().fireFeaturesAttChanged(oldFeatures.values(),
+ FeatureEventType.ATTRIBUTES_MODIFIED,
referenceLayer, newFeatures.values());
+
referenceLayer.getLayerManager().fireGeometryModified(oldFeatures.values(),
+ referenceLayer, newFeatures.values());
+
referenceLayer.getLayerManager().fireFeaturesChanged(removed,
+ FeatureEventType.ADDED, referenceLayer);
+
referenceLayer.getLayerManager().fireFeaturesChanged(added,
+ FeatureEventType.DELETED, referenceLayer);
+ }
+ };
+ command.execute();
+
referenceLayer.getLayerManager().getUndoableEditReceiver().receive(command.toUndoableEdit());
+ } finally {
+
referenceLayer.getLayerManager().getUndoableEditReceiver().stopReceiving();
+ }
+ }
+
+ private MultiInputDialog initDialog(final PlugInContext context) {
+
+ final MultiInputDialog dialog = new
MultiInputDialog(context.getWorkbenchFrame(), this.getName(), true);
+ dialog.setSideBarDescription(DESCRIPTION);
+
+ if (referenceLayer == null ||
!context.getLayerManager().getLayers().contains(referenceLayer)) {
+ referenceLayer = context.getCandidateLayer(0);
+ }
+ final JComboBox<Layer> jcbBaseLayer =
dialog.addLayerComboBox(REFERENCE_LAYER, referenceLayer, null,
context.getLayerManager());
+
+ List<String> baseLayerAttributeList =
NUMSTRING_FILTER.filter(referenceLayer);
+ String valBaseAttribute = baseLayerAttributeList.size() > 0 ?
baseLayerAttributeList.get(0) : null;
+ final JComboBox<String> jcbBaseLayerId =
dialog.addComboBox(REFERENCE_LAYER_EXT_ID, valBaseAttribute,
baseLayerAttributeList, REFERENCE_LAYER_EXT_ID);
+ jcbBaseLayerId.setEnabled(baseLayerAttributeList.size() > 0);
+
+ dialog.addSeparator(); //----
+
+ if (joinLayer == null ||
!context.getLayerManager().getLayers().contains(joinLayer)) {
+ joinLayer = context.getCandidateLayer(1);
+ }
+ final JComboBox<Layer> jcbJoinLayer =
dialog.addLayerComboBox(JOIN_LAYER, joinLayer, null, context.getLayerManager());
+
+ List<String> joinLayerAttributeList =
NUMSTRING_FILTER.filter(joinLayer);
+ String valJoinAttribute = joinLayerAttributeList.size() > 0 ?
joinLayerAttributeList.get(0) : null;
+ final JComboBox<String> jcbJoinLayerId =
dialog.addComboBox(JOIN_LAYER_ID, valJoinAttribute, joinLayerAttributeList,
JOIN_LAYER_ID);
+ jcbJoinLayerId.setEnabled(joinLayerAttributeList.size() > 0);
+
+ dialog.addSeparator(); //----
+
+ dialog.addCheckBox(LEFT_JOIN, left, LEFT_JOIN_TT);
+ dialog.addCheckBox(RIGHT_JOIN, right, RIGHT_JOIN_TT);
+ //dialog.addCheckBox(ADD_ATTRIBUTES, add_attributes,
ADD_ATTRIBUTES_TT);
+
+ jcbBaseLayer.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if (jcbBaseLayer.getSelectedItem() == referenceLayer) return;
+ attributesChoosen = false;
+ referenceLayer = (Layer)jcbBaseLayer.getSelectedItem();
+ List<String> baseLayerAttributeList =
NUMSTRING_FILTER.filter(referenceLayer);
+ jcbBaseLayerId.setModel(new
DefaultComboBoxModel<>(baseLayerAttributeList.toArray(new String[0])));
+ jcbBaseLayerId.setEnabled(baseLayerAttributeList.size() > 0);
+ }
+ });
+
+ jcbBaseLayerId.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if
(!jcbBaseLayerId.getSelectedItem().equals(referenceLayerExtId))
attributesChoosen = false;
+ }
+ });
+
+ jcbJoinLayer.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if(jcbJoinLayer.getSelectedItem() == joinLayer) return;
+ attributesChoosen = false;
+ joinLayer = (Layer)jcbJoinLayer.getSelectedItem();
+ List<String> joinLayerAttributeList =
NUMSTRING_FILTER.filter(joinLayer);
+ jcbJoinLayerId.setModel(new
DefaultComboBoxModel<>(joinLayerAttributeList.toArray(new String[0])));
+ jcbJoinLayerId.setEnabled(joinLayerAttributeList.size() > 0);
+ }
+ });
+
+ jcbJoinLayerId.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if (!jcbJoinLayerId.getSelectedItem().equals(joinLayerId))
attributesChoosen = false;
+ }
+ });
+
+ JButton mapAttributesButton = dialog.addButton(MAP_ATTRIBUTES);
+ mapAttributesButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ MultiInputDialog mid =
initMappingDialog(context.getWorkbenchFrame(),
+ dialog.getLayer(REFERENCE_LAYER),
+ dialog.getLayer(JOIN_LAYER),
+ dialog.getText(REFERENCE_LAYER_EXT_ID));
+ GUIUtil.centreOnWindow(mid);
+ mid.setVisible(true);
+ if (mid.wasOKPressed()) {
+ getMapping(mid);
+ attributesChoosen = true;
+ }
+ }
+ });
+
+ return dialog;
+ }
+
+
+ private void getDialogValues(MultiInputDialog dialog) {
+ this.referenceLayer = dialog.getLayer(REFERENCE_LAYER);
+ this.joinLayer = dialog.getLayer(JOIN_LAYER);
+ this.referenceLayerExtId = dialog.getText(REFERENCE_LAYER_EXT_ID);
+ this.joinLayerId = dialog.getText(JOIN_LAYER_ID);
+ this.left = dialog.getBoolean(LEFT_JOIN);
+ this.right = dialog.getBoolean(RIGHT_JOIN);
+ }
+
+ // MultiInputDialog to set the mapping between base attributes and join
attributes
+ private MultiInputDialog initMappingDialog(JFrame parent, Layer baseLayer,
Layer joinLayer, String baseId) {
+ // Creates a MultiInputDialog box with a JScrollPane to handle long
list of attributes
+ MultiInputDialog dialog = new MultiInputDialog(parent, "", true) {
+ protected void setMainComponent() {
+ currentPanel = new JPanel(new GridBagLayout());
+ mainComponent = new JScrollPane(currentPanel);
+ Border mainComponentBorder =
BorderFactory.createCompoundBorder(
+ BorderFactory.createEtchedBorder(),
+ BorderFactory.createEmptyBorder(5, 5, 5, 5)
+ );
+ currentPanel.setBorder(mainComponentBorder);
+ }
+ };
+ dialog.setPreferredSize(new Dimension(480,320));
+ // For each attribute of baseLayer, creates a list of joinLayer
attributes candidates
+ for (String name :
baseLayer.getFeatureCollectionWrapper().getFeatureSchema().getAttributeNames())
{
+ if (name.equals(baseId)) continue;
+ AttributeType type =
baseLayer.getFeatureCollectionWrapper().getFeatureSchema().getAttributeType(name);
+ AttributeTypeFilter filter = AttributeTypeFilter.ALL_FILTER;
+ if (type != AttributeType.STRING) {
+ if (type == AttributeType.GEOMETRY) filter =
AttributeTypeFilter.GEOMETRY_FILTER;
+ if (type == AttributeType.DOUBLE) filter =
AttributeTypeFilter.DOUBLE_FILTER;
+ if (type == AttributeType.INTEGER) filter =
AttributeTypeFilter.NUMERIC_FILTER;
+ if (type == AttributeType.LONG) filter =
AttributeTypeFilter.NUMERIC_FILTER;
+ if (type == AttributeType.DOUBLE) filter =
AttributeTypeFilter.NUMERIC_FILTER;
+ if (type == AttributeType.DATE) filter =
AttributeTypeFilter.DATE_FILTER;
+ if (type == AttributeType.BOOLEAN) filter =
AttributeTypeFilter.BOOLEAN_FILTER;
+ }
+ List<String> candidates = filter.filter(joinLayer);
+ candidates.add(0, DO_NOT_JOIN);
+ candidates.remove(joinLayerId);
+ dialog.addComboBox(name, candidates.contains(name) ? name :
DO_NOT_JOIN, candidates, "");
+ }
+ return dialog;
+ }
+
+ // Get mapping between base attributes and join attributes
+ private void getMapping(MultiInputDialog dialog) {
+ FeatureSchema schema =
referenceLayer.getFeatureCollectionWrapper().getFeatureSchema();
+ for (int i = 0 ; i < schema.getAttributeCount() ; i++) {
+ if (!dialog.getText(schema.getAttributeName(i)).equals("")) {
+ attributesMapping.put(schema.getAttributeName(i),
dialog.getText(schema.getAttributeName(i)));
+ }
+ }
+ }
+}
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel