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