Index: /trunk/src/test/org/lastpod/MockModel.java =================================================================== --- /trunk/src/test/org/lastpod/MockModel.java (revision 76) +++ /trunk/src/test/org/lastpod/MockModel.java (revision 77) @@ -107,4 +107,5 @@ List activeRecentPlayed = onlyActiveTrackItems(recentlyPlayed); List inactiveRecentPlayed = onlyInactiveTrackItems(recentlyPlayed); + Logger logger = Logger.getLogger(LastPod.class.getPackage().getName()); userInterface.setNumberOfChunks(activeRecentPlayed.size()); @@ -121,6 +122,7 @@ userInterface.updateCurrentChunk(i + 1); - Logger logger = Logger.getLogger(LastPod.class.getPackage().getName()); - logger.info("The logger should be really noisy."); + String statusMessage = "The logger should be really noisy."; + userInterface.setSubmitStatusMessage(statusMessage); + logger.info(statusMessage); } @@ -133,4 +135,8 @@ /* Refresh track list. */ userInterface.newTrackListAvailable(recentlyPlayed); + + String statusMessage = "Done."; + userInterface.setSubmitStatusMessage(statusMessage); + logger.info(statusMessage); return "Success"; Index: /trunk/src/main/org/lastpod/UI.java =================================================================== --- /trunk/src/main/org/lastpod/UI.java (revision 74) +++ /trunk/src/main/org/lastpod/UI.java (revision 77) @@ -342,3 +342,11 @@ ((ExitApplication) actionExit).setSubmissionSuccessful(completionStatus); } + + /** + * Sets the message for the submitStatus label. + * @param submitStatusMessage The message for the submitStatus label. + */ + public void setSubmitStatusMessage(String submitStatusMessage) { + submitStatus.setText(submitStatusMessage); + } } Index: /trunk/src/main/org/lastpod/Scrobbler.java =================================================================== --- /trunk/src/main/org/lastpod/Scrobbler.java (revision 66) +++ /trunk/src/main/org/lastpod/Scrobbler.java (revision 77) @@ -136,9 +136,14 @@ } - logger.log(Level.INFO, "Beginning Handshake"); + String statusMessage = "Beginning Handshake"; + chunkProgress.setSubmitStatusMessage(statusMessage); + logger.log(Level.INFO, statusMessage); String args = "?hs=true&p=1.1&c=apd&v=0.1&u=" + URLEncoder.encode(username, "UTF-8"); URL url = new URL("http://post.audioscrobbler.com/" + args); - logger.log(Level.FINE, "Handshaking to URL: " + url.toString()); + + statusMessage = "Handshaking to URL: " + url.toString(); + chunkProgress.setSubmitStatusMessage(statusMessage); + logger.log(Level.FINE, statusMessage); HttpURLConnection c = (HttpURLConnection) url.openConnection(); @@ -170,5 +175,7 @@ if ((content == null) || (content.length() == 0)) { - throw new RuntimeException("Invalid response received from AudioScrobbler"); + statusMessage = "Invalid response received from AudioScrobbler"; + chunkProgress.setSubmitStatusMessage(statusMessage); + throw new RuntimeException(statusMessage); } @@ -176,13 +183,19 @@ if ((lines[0].length() >= 6) && lines[0].substring(0, 6).equals("FAILED")) { - throw new RuntimeException(lines[0].substring(7)); + statusMessage = lines[0].substring(7); + chunkProgress.setSubmitStatusMessage(statusMessage); + throw new RuntimeException(statusMessage); } if ((lines[0].length() >= 7) && lines[0].substring(0, 7).equals("BADUSER")) { - throw new FailedLoginException("Invalid Username"); + statusMessage = "Invalid Username"; + chunkProgress.setSubmitStatusMessage(statusMessage); + throw new FailedLoginException(statusMessage); } if ((lines[0].length() >= 6) && lines[0].substring(0, 6).equals("UPDATE")) { - throw new RuntimeException("Update your client:" + lines[0].substring(7)); + statusMessage = "Update your client:" + lines[0].substring(7); + chunkProgress.setSubmitStatusMessage(statusMessage); + throw new RuntimeException(statusMessage); } @@ -212,5 +225,7 @@ chunkProgress.updateCurrentChunk(1); - logger.log(Level.INFO, "Handshake completed"); + statusMessage = "Handshake completed"; + chunkProgress.setSubmitStatusMessage(statusMessage); + logger.log(Level.INFO, statusMessage); } @@ -218,8 +233,12 @@ throws UnsupportedEncodingException, NoSuchAlgorithmException, MalformedURLException, IOException, FailedLoginException { - logger.log(Level.INFO, "Submitting tracks..."); + String statusMessage = "Submitting tracks..."; + chunkProgress.setSubmitStatusMessage(statusMessage); + logger.log(Level.INFO, statusMessage); if (trackChunks.size() == 0) { - throw new RuntimeException("No tracks to submit"); + statusMessage = "No tracks to submit"; + chunkProgress.setSubmitStatusMessage(statusMessage); + throw new RuntimeException(statusMessage); } @@ -298,7 +317,8 @@ } + chunkProgress.setSubmitStatusMessage("Done. You may now sync your iPod."); logger.log(Level.INFO, "Tracks submitted"); logger.log(Level.INFO, - "You must now sync your iPod with your music management software " + "You may now sync your iPod with your music management software " + "or delete 'Play Counts' from the iTunes folder!"); @@ -315,6 +335,4 @@ private void pauseIfRequired() { if (interval != 0) { - logger.log(Level.INFO, "The server is busy. Pausing for " + interval + " seconds."); - try { Thread.sleep(interval * 1000); Index: /trunk/src/main/org/lastpod/action/SubmitTracks.java =================================================================== --- /trunk/src/main/org/lastpod/action/SubmitTracks.java (revision 73) +++ /trunk/src/main/org/lastpod/action/SubmitTracks.java (revision 77) @@ -135,5 +135,4 @@ new SwingWorker() { public Object construct() { - userInterface.getSubmitStatus().setText("Transferring Data..."); userInterface.getStatusAnimationLabel().setIcon(busyIcons[0]); busyIconIndex = 0; @@ -144,5 +143,4 @@ public void finished() { - userInterface.getSubmitStatus().setText("Done"); busyIconTimer.stop(); userInterface.getStatusAnimationLabel().setIcon(idleIcon); Index: /trunk/src/main/org/lastpod/ChunkProgress.java =================================================================== --- /trunk/src/main/org/lastpod/ChunkProgress.java (revision 66) +++ /trunk/src/main/org/lastpod/ChunkProgress.java (revision 77) @@ -43,3 +43,9 @@ */ void setCompletionStatus(boolean completionStatus); + + /** + * Sets the message for the submitStatus label. + * @param submitStatusMessage The message for the submitStatus label. + */ + void setSubmitStatusMessage(String submitStatusMessage); }