}
@Override
public void start() {
for (int i = 0; i < tracks.size(); i++) {
Track track = tracks.get(i);
TrackData trackData = track.getTrackData();
if (abort)
break;
if (trackData.isFile() && trackData.getSubsongIndex() == 0) {
currentTrack = trackData.getFile().getName();
progress = (float) i / tracks.size();
AudioFileReader reader = TrackIO.getAudioFileReader(trackData.getFile().getName());
trackData.clearTags();
reader.reload(track);
}
}
playlist.firePlaylistChanged();
}
@Override
public boolean isIndeterminate() {
return false;
}
@Override
public float getProgress() {
return progress;
}
});
}
});
ActionListener fileOpsListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
FileOperations.Operation op = FileOperations.Operation.valueOf(cmd);
new FileOperations(parent, op, tracks).setVisible(true);
}
};
JMenu fileOps = new JMenu("File Operations");
fileOps.add("Open containing folder").addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
for (Track track : tracks) {
if (track.getTrackData().isFile()) {
File file = track.getTrackData().getFile().getParentFile();
try {
Desktop.getDesktop().open(file);
} catch (IOException e1) {
e1.printStackTrace();
}
break;
}
}
}
});
fileOps.addSeparator();
for (FileOperations.Operation op : FileOperations.Operation.values()) {
fileOps.add(op.name()).addActionListener(fileOpsListener);
}
fileOps.addSeparator();
JMenuItem deleteItem = fileOps.add("Delete ");
deleteItem.setIcon(Images.getEmptyIcon());
deleteItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int ret = JOptionPane.showConfirmDialog(null, "This will delete file(s) permanently. Are you sure?", "Delete File(s)?", JOptionPane.YES_NO_OPTION);
if (ret == JOptionPane.YES_OPTION) {
for (Track track : tracks) {
if (track.getTrackData().isFile() && !track.getTrackData().isCue()) {
if (player.getTrack() == track) {
player.stop();
}
if (track.getTrackData().getFile().delete()) {
FileUtils.deleteEmptyParentFolders(track.getTrackData().getFile(), true);
playlist.remove(track);
}
}
}