/** * This file is part of ShareNav * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as published by * the Free Software Foundation. * * Copyright (C) 2008 Kai Krueger */ //#if polish.api.osm-editing package net.sharenav.sharenav.data; import java.io.DataInputStream; import java.io.IOException; //#if polish.api.online import net.sharenav.util.HttpHelper; import net.sharenav.util.Logger; //#endif import net.sharenav.sharenav.mapdata.Way; import net.sharenav.sharenav.tile.Tile; import net.sharenav.midlet.ui.UploadListener; import de.enough.polish.util.Locale; public class EditableWay extends Way implements UploadListener { private final static Logger logger = Logger.getInstance(EditableWay.class,Logger.DEBUG); private UploadListener ul; public int osmID; private OsmDataWay OSMdata; //#if polish.api.online private HttpHelper http = null; //#endif public EditableWay(DataInputStream is, byte f, Tile t, byte[] layers, int idx, boolean outlineFlag) throws IOException { super(is, f, t, layers, idx, outlineFlag); osmID = is.readInt(); OSMdata = null; } public void loadXML(UploadListener ul) { //#if polish.api.online //#debug debug logger.debug("Retrieving XML for " + this); this.ul = ul; String url = Configuration.getOsmUrl() + "way/" + osmID; if (http == null) { http = new HttpHelper(); } http.getURL(url, this); //#endif } public void uploadXML(int commitChangesetID, UploadListener ul) { this.ul = ul; //#debug debug logger.debug("Uploading XML for " + this); String fullXML = OSMdata.toXML(commitChangesetID); String url = Configuration.getOsmUrl() + "way/" + osmID; if (http == null) { http = new HttpHelper(); } http.uploadData(url, fullXML, true, ul, Configuration.getOsmUsername(), Configuration.getOsmPwd()); } public OsmDataWay getOSMdata() { return OSMdata; } public String getXML() { if (OSMdata != null) { OSMdata.getXML(); } return null; } public void completedUpload(boolean success, String message) { //#if polish.api.online if (success) { String fullXML = http.getData(); OSMdata = new OsmDataWay(fullXML, osmID); //#debug logger.debug(OSMdata.toString()); if (ul != null) { ul.completedUpload(true, Locale.get("editableway.RetrievedXMLForWay")/*Retrieved XML for way */ + osmID); } } else { if (ul != null) { ul.completedUpload(false, Locale.get("editableway.RetrievedXMLForWay")/*Retrieved XML for way */ + osmID); } } //#endif } public void setProgress(String message) { } public void startProgress(String title) { } public void updateProgress(String message) { } public void updateProgressValue(int increment) { } public void uploadAborted() { } } //#endif