dmolony-DiskBrowser/src/com/bytezone/diskbrowser/gui/DuplicateAction.java

53 lines
1.5 KiB
Java
Raw Normal View History

2015-06-01 09:35:51 +00:00
package com.bytezone.diskbrowser.gui;
2016-12-09 11:31:03 +00:00
import java.awt.Toolkit;
2015-06-01 09:35:51 +00:00
import java.awt.event.ActionEvent;
2016-12-09 11:31:03 +00:00
import java.awt.event.KeyEvent;
2015-06-01 09:35:51 +00:00
import java.io.File;
2016-12-07 10:56:25 +00:00
import javax.swing.Action;
2016-12-09 11:31:03 +00:00
import javax.swing.KeyStroke;
2015-06-01 09:35:51 +00:00
import com.bytezone.common.DefaultAction;
2016-12-07 10:56:25 +00:00
import com.bytezone.diskbrowser.duplicates.DuplicateWindow;
2016-12-09 11:31:03 +00:00
import com.bytezone.diskbrowser.duplicates.DuplicateWorker;
2016-12-08 01:19:18 +00:00
import com.bytezone.diskbrowser.gui.RootDirectoryAction.RootDirectoryChangeListener;
2015-06-01 09:35:51 +00:00
2016-12-08 01:19:18 +00:00
public class DuplicateAction extends DefaultAction implements RootDirectoryChangeListener
2015-06-01 09:35:51 +00:00
{
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-09 11:31:03 +00:00
int mask = Toolkit.getDefaultToolkit ().getMenuShortcutKeyMask ();
putValue (Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke (KeyEvent.VK_D, mask));
2016-12-08 01:19:18 +00:00
setEnabled (false);
2015-06-01 09:35:51 +00:00
}
2016-12-07 10:42:01 +00:00
@Override
2016-12-08 01:19:18 +00:00
public void rootDirectoryChanged (File rootFolder)
2015-06-01 09:35:51 +00:00
{
2016-12-08 01:19:18 +00:00
this.rootFolder = rootFolder;
setEnabled (rootFolder != null);
window = null;
2015-06-01 09:35:51 +00:00
}
@Override
public void actionPerformed (ActionEvent arg0)
{
2016-12-08 01:19:18 +00:00
if (window == null)
2016-12-09 11:31:03 +00:00
{
2016-12-08 01:19:18 +00:00
window = new DuplicateWindow (rootFolder);
2016-12-09 11:31:03 +00:00
new DuplicateWorker (rootFolder, window).execute ();
}
2016-12-08 01:19:18 +00:00
else
2015-06-01 09:35:51 +00:00
window.setVisible (true);
}
}