View Javadoc
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   * Cancel every mouse click, only gives focus.
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  }