+ messageSB.append(MessageManager
+ .formatMessage("label.newerdelete_line", new String[]
+ { ftbd.getName(), rf.getName(), ftbdLMT, rfLMT, ftbdSize,
+ rfSize }));
+ messageSB.append("\n\n");
+ messageSB.append(MessageManager
+ .formatMessage("label.confirm_deletion", new String[]
+ { ftbd.getName() }));
+ String[] options = new String[] {
+ MessageManager.getString("label.delete"),
+ MessageManager.getString("label.keep") };
+
+ confirmButton = JvOptionPane.showOptionDialog(Desktop.desktop,
+ messageSB.toString(),
+ MessageManager.getString("label.backupfiles_confirm_delete"),
+ JvOptionPane.YES_NO_OPTION, JvOptionPane.WARNING_MESSAGE,
+ null, options, options[0]);
+ }
+
+ // return should be TRUE if file is to be deleted
+ return (confirmButton == JvOptionPane.YES_OPTION);
+ }
+
+ private void deleteOldFiles()
+ {
+ if (deleteFiles != null && !deleteFiles.isEmpty())
+ {
+ boolean doDelete = false;
+ StringBuilder messageSB = null;
+ if (confirmDelete && deleteFiles.size() > 0)
+ {
+ messageSB = new StringBuilder();
+ messageSB.append(MessageManager
+ .getString("label.backupfiles_confirm_delete_old_files"));
+ for (int i = 0; i < deleteFiles.size(); i++)
+ {
+ File df = deleteFiles.get(i);
+ messageSB.append("\n");
+ messageSB.append(df.getName());
+ messageSB.append(" ");
+ messageSB.append(MessageManager.formatMessage("label.file_info",
+ new String[]
+ { sdf.format(df.lastModified()),
+ Long.toString(df.length()) }));
+ }
+
+ int confirmButton = JvOptionPane.showConfirmDialog(Desktop.desktop,
+ messageSB.toString(),
+ MessageManager
+ .getString("label.backupfiles_confirm_delete"),
+ JvOptionPane.YES_NO_OPTION, JvOptionPane.WARNING_MESSAGE);
+
+ doDelete = (confirmButton == JvOptionPane.YES_OPTION);
+ }
+ else
+ {
+ doDelete = true;
+ }
+
+ if (doDelete)
+ {
+ for (int i = 0; i < deleteFiles.size(); i++)
+ {
+ File fileToDelete = deleteFiles.get(i);
+ fileToDelete.delete();
+ System.out.println("DELETING '" + fileToDelete.getName() + "'");
+ }
+ }
+
+ }
+
+ deleteFiles.clear();
+ }
+
+ private TreeMap<Integer, File> sortBackupFilesAsTreeMap(
+ File[] backupFiles, String basename)
+ {
+ // sort the backup files (based on integer found in the suffix) using a
+ // precomputed Hashmap for speed
+ Map<Integer, File> bfHashMap = new HashMap<>();
+ for (int i = 0; i < backupFiles.length; i++)
+ {
+ File f = backupFiles[i];
+ BackupFilenameParts bfp = new BackupFilenameParts(f, basename, suffix,
+ digits);
+ bfHashMap.put(bfp.indexNum(), f);
+ }
+ TreeMap<Integer, File> bfTreeMap = new TreeMap<>();
+ bfTreeMap.putAll(bfHashMap);
+ return bfTreeMap;
+ }