void jButton_postjson_actionPerformed(ActionEvent e) {
		try {
			String imapName = imageMap.getName();
			String response = null;
			String postdata = null;
			boolean success = false;
			
			//while (!success) {
				if (imageMap.getId() < 0 || 
					imageMap.getName() == null || 
					imageMap.getName().equalsIgnoreCase(DEFAULT_MAP_NAME)) {
					imapName = imagemap_name_dialog();
					if (imapName != null && imapName.length() > 0) 
						imageMap.setName(imapName);
					else
						return;
				}
				
				postdata = shapeList.get_json(imageMap);
				saveToFile(postdata, jsonSaveDir + imapName + ".json"); // DEBUG
				try {
					// TODO: NEED TO CREATE DEVICEMAP FIRST! cause id=-1 no good
					String imapurl  = String.format("%sdevicemap/%d/", this.appURL, imageMap.getId());
					response = post_to_URL(new URL(imapurl), postdata);
					System.out.println("post_to_URL response="+response);
					success = true;
				} catch (Exception ex) {
					// TODO: Check for name-already-in-use
					reportError("Error Posting ImageMap: " + ex.getMessage());
				}
			//}
		}
		catch (Exception ex) {
			reportError("Error jButton_postjson_actionPerformed: " + 
						ex.getMessage());
		}
	}