1 package com.jsql.view.swing.terminal;
2
3 import com.jsql.model.exception.JSqlRuntimeException;
4
5 import java.awt.*;
6 import java.awt.datatransfer.DataFlavor;
7 import java.awt.datatransfer.UnsupportedFlavorException;
8 import java.awt.event.MouseEvent;
9 import java.awt.event.MouseListener;
10 import java.io.IOException;
11 import java.util.Arrays;
12
13
14
15
16 public class EmptyFocusCopy implements MouseListener {
17
18 private final AbstractExploit abstractExploit;
19
20 public EmptyFocusCopy(AbstractExploit abstractExploit) {
21 this.abstractExploit = abstractExploit;
22 }
23
24 @Override
25 public void mousePressed(MouseEvent e) {
26 e.consume();
27 this.abstractExploit.requestFocusInWindow();
28 this.abstractExploit.setCaretPosition(this.abstractExploit.getDocument().getLength());
29 if (Arrays.asList(MouseEvent.BUTTON2, MouseEvent.BUTTON3).contains(e.getButton())) {
30 this.pasteClipboard();
31 }
32 }
33
34 private void pasteClipboard() {
35 try {
36 String data = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
37 this.abstractExploit.append(data);
38 } catch (UnsupportedFlavorException | IOException ex) {
39 throw new JSqlRuntimeException(ex);
40 }
41 }
42
43 @Override
44 public void mouseReleased(MouseEvent e) {
45 e.consume();
46 }
47
48 @Override
49 public void mouseExited(MouseEvent e) {
50 e.consume();
51 }
52
53 @Override
54 public void mouseEntered(MouseEvent e) {
55 e.consume();
56 }
57
58 @Override
59 public void mouseClicked(MouseEvent e) {
60 e.consume();
61 }
62 }