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              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  }