Changeset 6289 in josm
- Timestamp:
- 2013-10-03T03:41:25+02:00 (11 years ago)
- Location:
- trunk
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
r6246 r6289 189 189 */ 190 190 protected Layer getFirstSelectedLayer() { 191 if (LayerListDialog.getInstance() == null) return null;192 191 List<Layer> layers = LayerListDialog.getInstance().getModel().getSelectedLayers(); 193 192 if (layers.isEmpty()) return null; -
trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java
r6130 r6289 368 368 } 369 369 if (wayWithSelectedNode == null) { 370 wayWithSelectedNode =parentWays.removeFirst();370 parentWays.removeFirst(); 371 371 } 372 372 for (Way w : parentWays) { -
trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
r6248 r6289 1170 1170 @Override 1171 1171 public String getModeHelpText() { 1172 String rv = "";1172 StringBuilder rv; 1173 1173 /* 1174 1174 * No modifiers: all (Connect, Node Re-Use, Auto-Weld) … … 1193 1193 // list is empty we can assume that we won't do any joins 1194 1194 if (ctrl || oldHighlights.isEmpty()) { 1195 rv = tr("Create new node."); 1195 rv = new StringBuilder(tr("Create new node.")); 1196 1196 } else { 1197 1197 // oldHighlights may store a node or way, check if it's a node 1198 1198 OsmPrimitive x = oldHighlights.iterator().next(); 1199 1199 if (x instanceof Node) { 1200 rv = tr("Select node under cursor."); 1200 rv = new StringBuilder(tr("Select node under cursor.")); 1201 1201 } else { 1202 rv = trn("Insert new node into way.", "Insert new node into {0} ways.", 1203 oldHighlights.size(), oldHighlights.size()); 1202 rv = new StringBuilder(trn("Insert new node into way.", "Insert new node into {0} ways.", 1203 oldHighlights.size(), oldHighlights.size())); 1204 1204 } 1205 1205 } … … 1210 1210 if (currentBaseNode != null && !wayIsFinished) { 1211 1211 if (alt) { 1212 rv += " " +tr("Start new way from last node.");1212 rv.append(" ").append(tr("Start new way from last node.")); 1213 1213 } else { 1214 rv += " " +tr("Continue way from last node.");1214 rv.append(" ").append(tr("Continue way from last node.")); 1215 1215 } 1216 1216 if (snapHelper.isSnapOn()) { 1217 rv += " "+tr("Angle snapping active.");1217 rv.append(" ").append(tr("Angle snapping active.")); 1218 1218 } 1219 1219 } … … 1225 1225 if (n != null && getCurrentDataSet() != null && getCurrentDataSet().getSelectedNodes().contains(n)) { 1226 1226 if (wayIsFinished) { 1227 rv = tr("Select node under cursor."); 1227 rv = new StringBuilder(tr("Select node under cursor.")); 1228 1228 } else { 1229 rv = tr("Finish drawing."); 1229 rv = new StringBuilder(tr("Finish drawing.")); 1230 1230 } 1231 1231 } … … 1238 1238 for (Node m : w.getNodes()) { 1239 1239 if (m.equals(mouseOnExistingNode) || mouseOnExistingWays.contains(w)) { 1240 rv += " " +tr("Finish drawing.");1240 rv.append(" ").append(tr("Finish drawing.")); 1241 1241 break; 1242 1242 } 1243 1243 } 1244 1244 } 1245 return rv; 1245 return rv.toString(); 1246 1246 } 1247 1247 -
trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
r6266 r6289 76 76 public List<Shape> getShapes() { 77 77 return shapes; 78 } 79 80 @Override 81 public int hashCode() { 82 final int prime = 31; 83 int result = super.hashCode(); 84 result = prime * result + ((shapes == null) ? 0 : shapes.hashCode()); 85 return result; 86 } 87 88 @Override 89 public boolean equals(Object obj) { 90 if (this == obj) 91 return true; 92 if (!super.equals(obj)) 93 return false; 94 if (getClass() != obj.getClass()) 95 return false; 96 ImageryBounds other = (ImageryBounds) obj; 97 if (shapes == null) { 98 if (other.shapes != null) 99 return false; 100 } else if (!shapes.equals(other.shapes)) 101 return false; 102 return true; 78 103 } 79 104 } -
trunk/src/org/openstreetmap/josm/data/osm/Filter.java
r5926 r6289 20 20 public boolean inverted = false; 21 21 22 /** 23 * Constructs a new {@code Filter}. 24 */ 22 25 public Filter() { 23 26 super("", SearchMode.add, false, false, false); 24 27 } 28 25 29 public Filter(String text, SearchMode mode, boolean caseSensitive, 26 30 boolean regexSearch, boolean allElements) { -
trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java
r6268 r6289 203 203 public static Map<String, Test> getAllTestsMap() { 204 204 Map<String, Test> tests = new HashMap<String, Test>(); 205 for (Class<Test> testClass : getAllAvailableTests()) {205 for (Class<Test> testClass : allAvailableTests) { 206 206 try { 207 207 Test test = testClass.newInstance(); … … 258 258 */ 259 259 public static Class<Test>[] getAllAvailableTests() { 260 return allAvailableTests; 260 return Arrays.copyOf(allAvailableTests, allAvailableTests.length); 261 261 } 262 262 -
trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
r6268 r6289 534 534 BufferedOutputStream bos = null; 535 535 try { 536 bis = new BufferedInputStream(s.getSourceInputStream()); 537 bos = new BufferedOutputStream(new FileOutputStream(file)); 538 byte[] buffer = new byte[4096]; 539 int length; 540 while ((length = bis.read(buffer)) > -1 && !canceled) { 541 bos.write(buffer, 0, length); 536 InputStream in = s.getSourceInputStream(); 537 try { 538 bis = new BufferedInputStream(in); 539 bos = new BufferedOutputStream(new FileOutputStream(file)); 540 byte[] buffer = new byte[4096]; 541 int length; 542 while ((length = bis.read(buffer)) > -1 && !canceled) { 543 bos.write(buffer, 0, length); 544 } 545 } finally { 546 s.closeSourceInputStream(in); 542 547 } 543 548 } catch (IOException e) { … … 666 671 p.add(new JScrollPane(txtSource), GBC.std().fill()); 667 672 668 InputStream is = null;669 673 try { 670 is = s.getSourceInputStream(); 671 BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 672 String line; 673 while ((line = reader.readLine()) != null) { 674 txtSource.append(line + "\n"); 674 InputStream is = s.getSourceInputStream(); 675 try { 676 BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 677 try { 678 String line; 679 while ((line = reader.readLine()) != null) { 680 txtSource.append(line + "\n"); 681 } 682 } finally { 683 reader.close(); 684 } 685 } finally { 686 s.closeSourceInputStream(is); 675 687 } 676 reader.close();677 688 } catch (IOException ex) { 678 689 txtSource.append("<ERROR: failed to read file!>"); 679 } finally {680 Utils.close(is);681 690 } 682 691 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculator.java
r6286 r6289 41 41 final RelationMember m = members.get(i); 42 42 if (!m.isWay() || m.getWay() == null || m.getWay().isIncomplete()) { 43 if(i > 0) { 43 if (i > 0) { 44 44 makeLoopIfNeeded(con, i-1); 45 45 } … … 53 53 wct.direction = NONE; 54 54 55 if(RelationSortUtils.isOneway(m)){ 56 if(lastWct != null && lastWct.isOnewayTail) { 55 if (RelationSortUtils.isOneway(m)){ 56 if (lastWct != null && lastWct.isOnewayTail) { 57 57 wct.isOnewayHead = true; 58 58 } 59 if(lastBackwardWay == UNCONNECTED && lastForwardWay == UNCONNECTED){ //Beginning of new oneway 59 if (lastBackwardWay == UNCONNECTED && lastForwardWay == UNCONNECTED){ //Beginning of new oneway 60 60 wct.isOnewayHead = true; 61 61 lastForwardWay = i-1; … … 66 66 67 67 if (wct.linkPrev) { 68 if(lastBackwardWay != UNCONNECTED && lastForwardWay != UNCONNECTED) { 68 if (lastBackwardWay != UNCONNECTED && lastForwardWay != UNCONNECTED) { 69 69 wct = determineOnewayConnectionType(con, m, i, wct); 70 if(!wct.linkPrev) { 70 if (!wct.linkPrev) { 71 71 firstGroupIdx = i; 72 72 } 73 73 } 74 74 75 if(!RelationSortUtils.isOneway(m)) { 75 if (!RelationSortUtils.isOneway(m)) { 76 76 wct.direction = determineDirection(i-1, lastWct.direction, i); 77 77 wct.linkPrev = (wct.direction != NONE); … … 81 81 if (!wct.linkPrev) { 82 82 wct.direction = determineDirectionOfFirst(i, m); 83 if(RelationSortUtils.isOneway(m)){ 83 if (RelationSortUtils.isOneway(m)){ 84 84 wct.isOnewayLoopForwardPart = true; 85 85 lastForwardWay = i; … … 88 88 89 89 wct.linkNext = false; 90 if(lastWct != null) { 90 if (lastWct != null) { 91 91 lastWct.linkNext = wct.linkPrev; 92 92 } … … 94 94 lastWct = wct; 95 95 96 if(!wct.linkPrev) { 97 if(i > 0) { 96 if (!wct.linkPrev) { 97 if (i > 0) { 98 98 makeLoopIfNeeded(con, i-1); 99 99 } … … 127 127 128 128 if (RelationSortUtils.isOneway(m)){ 129 if(RelationSortUtils.isBackward(m)) return BACKWARD; 129 if (RelationSortUtils.isBackward(m)) return BACKWARD; 130 130 else return FORWARD; 131 131 } else { /** guess the direction and see if it fits with the next member */ 132 if(determineDirection(i, FORWARD, i+1) != NONE) return FORWARD; 133 if(determineDirection(i, BACKWARD, i+1) != NONE) return BACKWARD; 132 if (determineDirection(i, FORWARD, i+1) != NONE) return FORWARD; 133 if (determineDirection(i, BACKWARD, i+1) != NONE) return BACKWARD; 134 134 } 135 135 return NONE; … … 142 142 Direction dirFW = determineDirection(lastForwardWay, con.get(lastForwardWay).direction, i); 143 143 Direction dirBW = NONE; 144 if(onewayBeginning) { 145 if(lastBackwardWay < 0) { 144 if (onewayBeginning) { 145 if (lastBackwardWay < 0) { 146 146 dirBW = determineDirection(firstGroupIdx, reverse(con.get(firstGroupIdx).direction), i, true); 147 147 } else { … … 149 149 } 150 150 151 if(dirBW != NONE) { 151 if (dirBW != NONE) { 152 152 onewayBeginning = false; 153 153 } … … 156 156 } 157 157 158 if(RelationSortUtils.isOneway(m)) { 159 if(dirBW != NONE){ 158 if (RelationSortUtils.isOneway(m)) { 159 if (dirBW != NONE){ 160 160 wct.direction = dirBW; 161 161 lastBackwardWay = i; 162 162 wct.isOnewayLoopBackwardPart = true; 163 163 } 164 if(dirFW != NONE){ 164 if (dirFW != NONE){ 165 165 wct.direction = dirFW; 166 166 lastForwardWay = i; 167 167 wct.isOnewayLoopForwardPart = true; 168 168 } 169 if(dirFW == NONE && dirBW == NONE) { //Not connected to previous 169 if (dirFW == NONE && dirBW == NONE) { //Not connected to previous 170 170 // unconnectPreviousLink(con, i, true); 171 171 // unconnectPreviousLink(con, i, false); 172 172 wct.linkPrev = false; 173 if(RelationSortUtils.isOneway(m)){ 173 if (RelationSortUtils.isOneway(m)){ 174 174 wct.isOnewayHead = true; 175 175 lastForwardWay = i-1; … … 182 182 } 183 183 184 if(dirFW != NONE && dirBW != NONE) { //End of oneway loop 185 if(i+1<members.size() && determineDirection(i, dirFW, i+1) != NONE) { 184 if (dirFW != NONE && dirBW != NONE) { //End of oneway loop 185 if (i+1<members.size() && determineDirection(i, dirFW, i+1) != NONE) { 186 186 wct.isOnewayLoopBackwardPart = false; 187 dirBW = NONE;188 187 wct.direction = dirFW; 189 188 } else { 190 189 wct.isOnewayLoopForwardPart = false; 191 dirFW = NONE;192 190 wct.direction = dirBW; 193 191 } … … 199 197 lastForwardWay = UNCONNECTED; 200 198 lastBackwardWay = UNCONNECTED; 201 if(dirFW == NONE || dirBW == NONE) { 199 if (dirFW == NONE || dirBW == NONE) { 202 200 wct.linkPrev = false; 203 201 } … … 207 205 208 206 private static Direction reverse(final Direction dir){ 209 if(dir == FORWARD) return BACKWARD; 210 if(dir == BACKWARD) return FORWARD; 207 if (dir == FORWARD) return BACKWARD; 208 if (dir == BACKWARD) return FORWARD; 211 209 return dir; 212 210 } … … 273 271 return RelationSortUtils.roundaboutType(members.get(k)); 274 272 } 275 } else if(RelationSortUtils.isOneway(m)) { 273 } else if (RelationSortUtils.isOneway(m)) { 276 274 if (n == RelationNodeMap.firstOnewayNode(m) && !reversed) { 277 if(RelationSortUtils.isBackward(m)) 275 if (RelationSortUtils.isBackward(m)) 278 276 return BACKWARD; 279 277 else … … 281 279 } 282 280 if (n == RelationNodeMap.lastOnewayNode(m) && reversed) { 283 if(RelationSortUtils.isBackward(m)) 281 if (RelationSortUtils.isBackward(m)) 284 282 return FORWARD; 285 283 else … … 295 293 return NONE; 296 294 } 297 298 295 } -
trunk/src/org/openstreetmap/josm/gui/layer/WMSLayer.java
r6267 r6289 736 736 } 737 737 738 739 738 public static class ChangeResolutionAction extends AbstractAction implements LayerAction { 739 740 /** 741 * Constructs a new {@code ChangeResolutionAction} 742 */ 740 743 public ChangeResolutionAction() { 741 744 super(tr("Change resolution")); … … 744 747 @Override 745 748 public void actionPerformed(ActionEvent ev) { 746 747 if (LayerListDialog.getInstance() == null)748 return;749 750 749 List<Layer> layers = LayerListDialog.getInstance().getModel().getSelectedLayers(); 751 750 for (Layer l: layers) { -
trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
r6248 r6289 42 42 private static ElemStyles styles = new ElemStyles(); 43 43 44 public static ElemStyles getStyles() 45 { 44 public static ElemStyles getStyles() { 46 45 return styles; 47 46 } … … 57 56 public static class TagKeyReference { 58 57 public final String key; 59 public TagKeyReference(String key){ 58 public TagKeyReference(String key) { 60 59 this.key = key; 61 60 } … … 226 225 else { 227 226 InputStreamReader reader = new InputStreamReader(in); 228 WHILE: while (true) { 229 int c = reader.read(); 230 switch (c) { 231 case -1: 232 break WHILE; 233 case ' ': 234 case '\t': 235 case '\n': 236 case '\r': 237 continue; 238 case '<': 239 return new XmlStyleSource(entry); 240 default: 241 return new MapCSSStyleSource(entry); 227 try { 228 WHILE: while (true) { 229 int c = reader.read(); 230 switch (c) { 231 case -1: 232 break WHILE; 233 case ' ': 234 case '\t': 235 case '\n': 236 case '\r': 237 continue; 238 case '<': 239 return new XmlStyleSource(entry); 240 default: 241 return new MapCSSStyleSource(entry); 242 } 242 243 } 244 } finally { 245 reader.close(); 243 246 } 244 247 Main.warn("Could not detect style type. Using default (xml)."); -
trunk/src/org/openstreetmap/josm/gui/mappaint/StyleSource.java
r6148 r6289 19 19 import org.openstreetmap.josm.gui.preferences.SourceEntry; 20 20 import org.openstreetmap.josm.tools.ImageProvider; 21 import org.openstreetmap.josm.tools.Utils; 21 22 22 23 abstract public class StyleSource extends SourceEntry { … … 47 48 abstract public void loadStyleSource(); 48 49 50 /** 51 * Returns a new {@code InputStream} to the style source. When finished, {@link #closeSourceInputStream(InputStream)} must be called. 52 * @return A new {@code InputStream} to the style source that must be closed by the caller 53 * @throws IOException if any I/O error occurs. 54 * @see #closeSourceInputStream(InputStream) 55 */ 49 56 abstract public InputStream getSourceInputStream() throws IOException; 57 58 /** 59 * Closes the source input stream previously returned by {@link #getSourceInputStream()} and other linked resources, if applicable. 60 * @param is The source input stream that must be closed 61 * @since 6289 62 * @see #getSourceInputStream() 63 */ 64 public void closeSourceInputStream(InputStream is) { 65 Utils.close(is); 66 } 50 67 51 68 public void logError(Throwable e) { -
trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java
r6248 r6289 37 37 private Color backgroundColorOverride; 38 38 private String css = null; 39 private ZipFile zipFile; 39 40 40 41 public MapCSSStyleSource(String url, String name, String shortdescription) { … … 67 68 rules.clear(); 68 69 try { 69 MapCSSParser parser = new MapCSSParser(getSourceInputStream(), "UTF-8"); 70 parser.sheet(this); 71 loadMeta(); 72 loadCanvas(); 70 InputStream in = getSourceInputStream(); 71 try { 72 MapCSSParser parser = new MapCSSParser(in, "UTF-8"); 73 parser.sheet(this); 74 loadMeta(); 75 loadCanvas(); 76 } finally { 77 closeSourceInputStream(in); 78 } 73 79 } catch (IOException e) { 74 80 Main.warn(tr("Failed to load Mappaint styles from ''{0}''. Exception was: {1}", url, e.toString())); … … 88 94 @Override 89 95 public InputStream getSourceInputStream() throws IOException { 90 if (css != null) 96 if (css != null) { 91 97 return new ByteArrayInputStream(css.getBytes("UTF-8")); 92 98 } 93 99 MirroredInputStream in = new MirroredInputStream(url); 94 100 if (isZip) { 95 101 File file = in.getFile(); 96 102 Utils.close(in); 97 ZipFilezipFile = new ZipFile(file);103 zipFile = new ZipFile(file); 98 104 zipIcons = file; 99 105 ZipEntry zipEntry = zipFile.getEntry(zipEntryPath); 100 106 return zipFile.getInputStream(zipEntry); 101 107 } else { 108 zipFile = null; 102 109 zipIcons = null; 103 110 return in; 111 } 112 } 113 114 @Override 115 public void closeSourceInputStream(InputStream is) { 116 super.closeSourceInputStream(is); 117 if (isZip) { 118 Utils.close(zipFile); 104 119 } 105 120 } -
trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlStyleSource.java
r6248 r6289 68 68 init(); 69 69 try { 70 InputStreamReader reader = new InputStreamReader(getSourceInputStream()); 71 XmlObjectParser parser = new XmlObjectParser(new XmlStyleSourceHandler(this)); 72 parser.startWithValidation(reader, 73 Main.JOSM_WEBSITE+"/mappaint-style-1.0", 74 "resource://data/mappaint-style.xsd"); 75 while(parser.hasNext()) { 70 InputStream in = getSourceInputStream(); 71 try { 72 InputStreamReader reader = new InputStreamReader(in); 73 XmlObjectParser parser = new XmlObjectParser(new XmlStyleSourceHandler(this)); 74 parser.startWithValidation(reader, 75 Main.JOSM_WEBSITE+"/mappaint-style-1.0", 76 "resource://data/mappaint-style.xsd"); 77 while (parser.hasNext()) { 78 } 79 } finally { 80 closeSourceInputStream(in); 76 81 } 77 82 -
trunk/src/org/openstreetmap/josm/io/OsmBzip2Exporter.java
r5361 r6289 9 9 10 10 import org.apache.tools.bzip2.CBZip2OutputStream; 11 import org.openstreetmap.josm.tools.Utils; 12 11 13 public class OsmBzip2Exporter extends OsmExporter { 12 14 15 /** 16 * Constructs a new {@code OsmBzip2Exporter}. 17 */ 13 18 public OsmBzip2Exporter() { 14 19 super(OsmBzip2Importer.FILE_FILTER); … … 18 23 protected OutputStream getOutputStream(File file) throws FileNotFoundException, IOException { 19 24 OutputStream out = new FileOutputStream(file); 20 out.write('B'); 21 out.write('Z'); 22 out = new CBZip2OutputStream(out); 23 return out; 25 try { 26 out.write('B'); 27 out.write('Z'); 28 return new CBZip2OutputStream(out); 29 } catch (IOException e) { 30 Utils.close(out); 31 throw e; 32 } 24 33 } 25 34 } -
trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
r6268 r6289 228 228 for (Element child : crsChildren) { 229 229 String crs = (String) getContent(child); 230 if ( crs != null) {230 if (!crs.isEmpty()) { 231 231 String upperCase = crs.trim().toUpperCase(); 232 232 crsList.add(upperCase); … … 280 280 else { 281 281 String content = (String) getContent(child); 282 return (content != null) ? content : empty;282 return (!content.isEmpty()) ? content : empty; 283 283 } 284 284 } -
trunk/test/functional/org/openstreetmap/josm/gui/history/HistoryBrowserTest.java
r6268 r6289 39 39 try { 40 40 InputStream is = HistoryBrowserTest.class.getResourceAsStream("/test-functional-env.properties"); 41 testProperties.load(is); 42 is.close(); 41 try { 42 testProperties.load(is); 43 } finally { 44 is.close(); 45 } 43 46 } catch(Exception e){ 44 47 logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties")); -
trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
r6268 r6289 140 140 try { 141 141 InputStream is = MultiFetchServerObjectReaderTest.class.getResourceAsStream("/test-functional-env.properties"); 142 testProperties.load(is); 143 is.close(); 142 try { 143 testProperties.load(is); 144 } finally { 145 is.close(); 146 } 144 147 } catch(Exception e){ 145 148 logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties")); -
trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java
r6268 r6289 147 147 try { 148 148 InputStream is = MultiFetchServerObjectReaderTest.class.getResourceAsStream("/test-functional-env.properties"); 149 testProperties.load(is); 150 is.close(); 149 try { 150 testProperties.load(is); 151 } finally { 152 is.close(); 153 } 151 154 } catch(Exception e){ 152 155 logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties")); -
trunk/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateEngineTest.java
r4546 r6289 157 157 @Test 158 158 public void testSearchExpression() throws Exception { 159 Match match =compile("(parent type=type1 type=parent1) | (parent type=type2 type=parent2)");159 compile("(parent type=type1 type=parent1) | (parent type=type2 type=parent2)"); 160 160 //"parent(type=type1,type=parent1) | (parent(type=type2,type=parent2)" 161 161 //TODO
Note:
See TracChangeset
for help on using the changeset viewer.