package thaw.plugins.transferLogs; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.KeyListener; import java.awt.event.KeyEvent; import javax.swing.AbstractButton; import java.util.Vector; import java.util.Iterator; public class TransferManagementHelper { public interface TransferAction extends ActionListener { /** * Can disable the abstract button if required * @param files can be null */ public void setTarget(Vector transfers); } /* * As a key listener, it reacts with the key 'suppr' */ public static class TransferRemover implements TransferAction, KeyListener { private AbstractButton b; private Vector targets; private TransferTable tt; public TransferRemover(AbstractButton b, TransferTable t) { this.b = b; this.tt = t; if (b != null) { b.addActionListener(this); } } public void setTarget(Vector transfers) { targets = transfers; } public void keyPressed(final KeyEvent e) { } public void keyReleased(final KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_DELETE) { actionPerformed(null); } } public void keyTyped(final KeyEvent e) { } public void actionPerformed(ActionEvent e) { if (targets == null) return; if (e == null || b == null || e.getSource() == b) { for (Iterator it = targets.iterator(); it.hasNext(); ) { Transfer t = (Transfer)it.next(); t.delete(); } } if (tt != null) tt.refresh(); } } public static class TransferKeyCopier implements TransferAction { private AbstractButton b; private Vector targets; public TransferKeyCopier(AbstractButton b) { this.b = b; if (b != null) { b.addActionListener(this); } } public void setTarget(Vector transfers) { targets = transfers; } public void actionPerformed(ActionEvent e) { if (targets == null) return; if (b == null || e.getSource() == b) { String keys = ""; for (Iterator it = targets.iterator(); it.hasNext(); ) { Transfer t = (Transfer)it.next(); if (t.getKey() != null) keys += t.getKey() + "\n"; } thaw.gui.GUIHelper.copyToClipboard(keys); } } } }