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 try {
31 String data = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
32 this.abstractExploit.append(data);
33 } catch (UnsupportedFlavorException | IOException ex) {
34 throw new JSqlRuntimeException(ex);
35 }
36 }
37 }
38
39 @Override
40 public void mouseReleased(MouseEvent e) {
41 e.consume();
42 }
43
44 @Override
45 public void mouseExited(MouseEvent e) {
46 e.consume();
47 }
48
49 @Override
50 public void mouseEntered(MouseEvent e) {
51 e.consume();
52 }
53
54 @Override
55 public void mouseClicked(MouseEvent e) {
56 e.consume();
57 }
58 }