fuin.org
Small Open Source Java Tools and Libraries
File Copy Progress Monitor
Enhanced version of the well known ProgressMonitor with two progress bars instead of one.Screenshot:
Example video:
Flash video
Example usage:
public static void main(final String[] args) {
// This runs in the "main" thread (outside the EDT)
// Initialize the L&F in a thread safe way
Utils4Swing.initSystemLookAndFeel();
// Create an cancel tracker
final Cancelable cancelable = new CancelableImpl();
// Create the monitor dialog
final FileCopyProgressMonitor monitor = new FileCopyProgressMonitor(cancelable,
"Copy Test", 10);
// Make the UI visible
monitor.open();
try {
// Dummy loop to simulate copy...
for (int i = 0; i < 10; i++) {
// Check if the user canceled the copy process
if (cancelable.isCanceled()) {
break;
}
// Create a dummy source and target name...
final int n = i + 1;
final String fileName = "file" + n + ".jar";
final int fileSize = n * 10;
final String sourceFilename = "http://www.fuin.org/demo-app/" + fileName;
final String targetFilename = "/program files/demo app/" + fileName;
// Update the UI with names, count and filesize
monitor.updateFile(sourceFilename, targetFilename, n, fileSize);
// Simulate copying a file
// Normally this would be done with a
// "FileCopyProgressInputStream"
for (int j = 0; j < fileSize; j++) {
// Update the lower progress bar
monitor.updateByte(j + 1);
// Sleep to simulate slow copy...
sleep(100);
}
}
} finally {
// Hide the UI
monitor.close();
}
}