2015-06-01 09:35:51 +00:00
|
|
|
package com.bytezone.diskbrowser.gui;
|
|
|
|
|
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
import java.io.File;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
2016-12-07 10:56:25 +00:00
|
|
|
import javax.swing.Action;
|
2015-06-01 09:35:51 +00:00
|
|
|
|
|
|
|
import com.bytezone.common.DefaultAction;
|
2016-12-07 10:42:01 +00:00
|
|
|
import com.bytezone.diskbrowser.duplicates.DiskDetails;
|
2016-12-07 10:56:25 +00:00
|
|
|
import com.bytezone.diskbrowser.duplicates.DuplicateWindow;
|
|
|
|
import com.bytezone.diskbrowser.duplicates.DuplicateWorker;
|
2016-12-07 10:42:01 +00:00
|
|
|
import com.bytezone.diskbrowser.gui.RootDirectoryAction.RootDirectoryListener;
|
2015-06-01 09:35:51 +00:00
|
|
|
|
2016-12-07 10:42:01 +00:00
|
|
|
public class DuplicateAction extends DefaultAction implements RootDirectoryListener
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
|
|
|
Map<String, List<DiskDetails>> duplicateDisks;
|
|
|
|
int rootFolderLength;
|
|
|
|
File rootFolder;
|
|
|
|
DuplicateWindow window;
|
|
|
|
|
|
|
|
public DuplicateAction ()
|
|
|
|
{
|
|
|
|
super ("Check for duplicates...", "Check for duplicate disks",
|
2016-12-07 10:42:01 +00:00
|
|
|
"/com/bytezone/diskbrowser/icons/");
|
2015-06-01 09:35:51 +00:00
|
|
|
|
|
|
|
setIcon (Action.SMALL_ICON, "save_delete_16.png");
|
|
|
|
setIcon (Action.LARGE_ICON_KEY, "save_delete_32.png");
|
|
|
|
}
|
|
|
|
|
2016-12-07 10:42:01 +00:00
|
|
|
// public void setDuplicates (File rootFolder,
|
|
|
|
// Map<String, List<DiskDetails>> duplicateDisks)
|
|
|
|
// {
|
|
|
|
// this.duplicateDisks = duplicateDisks;
|
|
|
|
// this.rootFolderLength = rootFolder.getAbsolutePath ().length ();
|
|
|
|
// setEnabled (duplicateDisks.size () > 0);
|
|
|
|
// }
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void rootDirectoryChanged (File newRootDirectory)
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
2016-12-07 10:42:01 +00:00
|
|
|
this.rootFolder = newRootDirectory;
|
|
|
|
System.out.println ("gotcha");
|
2015-06-01 09:35:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void actionPerformed (ActionEvent arg0)
|
|
|
|
{
|
|
|
|
if (duplicateDisks == null)
|
|
|
|
{
|
|
|
|
System.out.println ("No duplicate disks found");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (window != null)
|
|
|
|
{
|
|
|
|
window.setVisible (true);
|
|
|
|
return;
|
|
|
|
}
|
2016-12-07 10:56:25 +00:00
|
|
|
window = new DuplicateWindow (rootFolder);
|
2015-06-01 09:35:51 +00:00
|
|
|
for (List<DiskDetails> diskList : duplicateDisks.values ())
|
|
|
|
new DuplicateWorker (diskList, window).execute ();
|
|
|
|
}
|
|
|
|
}
|