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