Changeset 19678 in osm for applications/editors/josm
- Timestamp:
- 2010-01-30T19:04:31+01:00 (15 years ago)
- Location:
- applications/editors/josm/plugins/terracer
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/terracer/build.xml
r19483 r19678 17 17 ** 18 18 ** To build against the core in ../../core, create a correct manifest and deploy to 19 ** SVN, 19 ** SVN, 20 20 ** set the properties commit.message and plugin.main.version 21 21 ** and run … … 30 30 <property name="plugin.jar" value="${plugin.dist.dir}/${ant.project.name}.jar"/> 31 31 <property name="ant.build.javac.target" value="1.5"/> 32 33 32 34 <property name="commit.message" value="Changed the constructor signature of the plugin main class" /> 33 34 <property name="commit.message" value="josm terracer plugin: fixed reverse terrace, minor updates" /> 35 35 <property name="plugin.main.version" value="2830" /> 36 37 36 37 38 38 <target name="init"> 39 39 <mkdir dir="${plugin.build.dir}"/> … … 85 85 <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/> 86 86 </target> 87 88 <!--89 ************************** Publishing the plugin ***********************************90 -->91 <!--92 ** extracts the JOSM release for the JOSM version in ../core and saves it in the93 ** property ${coreversion.info.entry.revision}94 **95 -->96 <target name="core-info">97 <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">98 <env key="LANG" value="C"/>99 <arg value="info"/>100 <arg value="--xml"/>101 <arg value="../../core"/>102 </exec>103 <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>104 <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>105 <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>106 <delete file="core.info.xml" />107 </target>108 87 109 <!-- 110 ** commits the source tree for this plugin 111 --> 112 <target name="commit-current"> 113 <echo>Commiting the plugin source with message '${commit.message}' ...</echo> 114 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 115 <env key="LANG" value="C"/> 116 <arg value="commit"/> 117 <arg value="-m '${commit.message}'"/> 118 <arg value="."/> 119 </exec> 120 </target> 88 <!-- 89 ************************** Publishing the plugin *********************************** 90 --> 91 <!-- 92 ** extracts the JOSM release for the JOSM version in ../core and saves it in the 93 ** property ${coreversion.info.entry.revision} 94 ** 95 --> 96 <target name="core-info"> 97 <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false"> 98 <env key="LANG" value="C"/> 99 <arg value="info"/> 100 <arg value="--xml"/> 101 <arg value="../../core"/> 102 </exec> 103 <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/> 104 <echo>Building against core revision ${coreversion.info.entry.revision}.</echo> 105 <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo> 106 <delete file="core.info.xml" /> 107 </target> 121 108 122 <!-- 123 ** updates (svn up) the source tree for this plugin 124 --> 125 <target name="update-current"> 126 <echo>Updating plugin source ...</echo> 127 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 128 <env key="LANG" value="C"/> 129 <arg value="up"/> 130 <arg value="."/> 131 </exec> 132 <echo>Updating ${plugin.jar} ...</echo> 133 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 134 <env key="LANG" value="C"/> 135 <arg value="up"/> 136 <arg value="../dist/${plugin.jar}"/> 137 </exec> 138 </target> 139 140 <!-- 141 ** commits the plugin.jar 142 --> 143 <target name="commit-dist"> 144 <echo> 145 ***** Properties of published ${plugin.jar} ***** 146 Commit message : '${commit.message}' 147 Plugin-Mainversion: ${plugin.main.version} 148 JOSM build version: ${coreversion.info.entry.revision} 149 Plugin-Version : ${version.entry.commit.revision} 150 ***** / Properties of published ${plugin.jar} ***** 151 152 Now commiting ${plugin.jar} ... 153 </echo> 154 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 155 <env key="LANG" value="C"/> 156 <arg value="-m '${commit.message}'"/> 157 <arg value="commit"/> 158 <arg value="${plugin.jar}"/> 159 </exec> 160 </target> 161 162 <target name="publish" depends="core-info,commit-current,update-current,clean,dist,commit-dist"> 163 </target> 109 <!-- 110 ** commits the source tree for this plugin 111 --> 112 <target name="commit-current"> 113 <echo>Commiting the plugin source with message '${commit.message}' ...</echo> 114 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 115 <env key="LANG" value="C"/> 116 <arg value="commit"/> 117 <arg value="-m '${commit.message}'"/> 118 <arg value="."/> 119 </exec> 120 </target> 121 122 <!-- 123 ** updates (svn up) the source tree for this plugin 124 --> 125 <target name="update-current"> 126 <echo>Updating plugin source ...</echo> 127 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 128 <env key="LANG" value="C"/> 129 <arg value="up"/> 130 <arg value="."/> 131 </exec> 132 <echo>Updating ${plugin.jar} ...</echo> 133 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 134 <env key="LANG" value="C"/> 135 <arg value="up"/> 136 <arg value="../dist/${plugin.jar}"/> 137 </exec> 138 </target> 139 140 <!-- 141 ** commits the plugin.jar 142 --> 143 <target name="commit-dist"> 144 <echo> 145 ***** Properties of published ${plugin.jar} ***** 146 Commit message : '${commit.message}' 147 Plugin-Mainversion: ${plugin.main.version} 148 JOSM build version: ${coreversion.info.entry.revision} 149 Plugin-Version : ${version.entry.commit.revision} 150 ***** / Properties of published ${plugin.jar} ***** 151 152 Now commiting ${plugin.jar} ... 153 </echo> 154 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 155 <env key="LANG" value="C"/> 156 <arg value="-m '${commit.message}'"/> 157 <arg value="commit"/> 158 <arg value="${plugin.jar}"/> 159 </exec> 160 </target> 161 162 <target name="publish" depends="core-info,commit-current,update-current,clean,dist,commit-dist"> 163 </target> 164 164 </project> -
applications/editors/josm/plugins/terracer/src/terracer/ReverseTerraceAction.java
r19658 r19678 6 6 import java.awt.event.KeyEvent; 7 7 import java.util.Collection; 8 import java.util.Collections; 8 9 import java.util.HashSet; 9 10 import java.util.LinkedList; 11 12 import javax.swing.JOptionPane; 10 13 11 14 import org.openstreetmap.josm.Main; … … 49 52 */ 50 53 public void actionPerformed(ActionEvent e) { 51 Collection< OsmPrimitive> sel = Main.main.getCurrentDataSet().getSelected();54 Collection<Way> selectedWays = Main.main.getCurrentDataSet().getSelectedWays(); 52 55 53 // set to keep track of all the nodes that have been visited - that is: if56 // Set to keep track of all the nodes that have been visited - that is: if 54 57 // we encounter them again we will not follow onto the connected ways. 55 58 HashSet<Node> visitedNodes = new HashSet<Node>(); 56 59 57 // set to keep track of the ways the algorithm has seen, but not yet visited.58 // since when a way is visited all of its nodes are marked as visited, there60 // Set to keep track of the ways the algorithm has seen, but not yet visited. 61 // Since when a way is visited all of its nodes are marked as visited, there 59 62 // is no need to keep a visitedWays set. 60 63 HashSet<Way> front = new HashSet<Way>(); 61 64 62 // initialise the set with all the buildings in the selection. this means 63 // there is undefined behaviour when there is a multiple selection, as the 64 // ordering will be based on the hash. 65 for (OsmPrimitive prim : sel) { 66 if (prim.keySet().contains("building") && prim instanceof Way) { 67 front.add((Way)prim); 65 // Find the first or last way from the teracced houses. 66 // It should be connected to exactly one other way. 67 for (Way w : selectedWays) { 68 int conn = 0; 69 for (Way v : selectedWays) { 70 if (w.equals(v)) continue; 71 if (!Collections.disjoint(w.getNodes(), v.getNodes())) { 72 ++conn; 73 } 74 } 75 if (conn == 1) { 76 front.add(w); 77 break; 68 78 } 69 79 } 80 81 if (front.isEmpty()) { 82 JOptionPane.showMessageDialog(Main.parent, 83 tr("Cannot reverse!")); 84 return; 85 } 70 86 71 // this is like a visitedWays set, but in a linear order.87 // This is like a visitedWays set, but in a linear order. 72 88 LinkedList<Way> orderedWays = new LinkedList<Way>(); 73 89 74 // and the tags to reverse on the orderedWays.90 // And the tags to reverse on the orderedWays. 75 91 LinkedList<String> houseNumbers = new LinkedList<String>(); 76 92 … … 79 95 Way w = front.iterator().next(); 80 96 81 // visit all the nodes in the way, adding the building's they're members of97 // Visit all the nodes in the way, adding the building's they're members of 82 98 // to the front. 83 99 for (Node n : w.getNodes()) { … … 92 108 } 93 109 94 // we've finished visiting this way, so record the attributes we're interested110 // We've finished visiting this way, so record the attributes we're interested 95 111 // in for re-writing. 96 112 front.remove(w); … … 100 116 101 117 Collection<Command> commands = new LinkedList<Command>(); 102 // what, no zipWith?103 118 for (int i = 0; i < orderedWays.size(); ++i) { 104 119 commands.add(new ChangePropertyCommand( … … 112 127 } 113 128 129 @Override 130 protected void updateEnabledState() { 131 setEnabled(getCurrentDataSet() != null); 132 } 114 133 } -
applications/editors/josm/plugins/terracer/src/terracer/TerracerAction.java
r19658 r19678 34 34 import org.openstreetmap.josm.data.osm.Relation; 35 35 import org.openstreetmap.josm.data.osm.RelationMember; 36 import org.openstreetmap.josm.data.osm.TagCollection; 36 37 import org.openstreetmap.josm.data.osm.Way; 37 38 import org.openstreetmap.josm.tools.Pair; … … 209 210 terr.addNode(new_nodes[1][i]); 210 211 terr.addNode(new_nodes[0][i]); 212 213 // add the tags of the outline to each building (e.g. source=*) 214 TagCollection.from(outline).applyTo(terr); 215 211 216 if (from != null) { 212 217 // only, if the user has specified house numbers … … 459 464 return n; 460 465 } 466 467 @Override 468 protected void updateEnabledState() { 469 setEnabled(getCurrentDataSet() != null); 470 } 461 471 }
Note:
See TracChangeset
for help on using the changeset viewer.