Package jrdesktop.viewer

Source Code of jrdesktop.viewer.EventsListener

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package jrdesktop.viewer;

import java.awt.dnd.DropTarget;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.util.ArrayList;
import jrdesktop.viewer.FileMng.FilesDropTargetListener;

/**
*
* @author Admin
*/
public class EventsListener {

    private final ScreenPlayer player;
    private boolean isActive = false;

    private KeyAdapter keyAdapter;
    private MouseAdapter mouseAdapter;
    private MouseWheelListener mouseWheelListener;
    private MouseMotionAdapter mouseMotionAdapter;
    private FilesDropTargetListener filesDropTargetListener;
    private DropTarget dropTarget;

    private ArrayList<KeyEvent> keyEvents = new ArrayList<KeyEvent>();
    private ArrayList<MouseEvent> mouseEvents = new ArrayList<MouseEvent>();

    public EventsListener (Recorder recorder) {
        player = recorder.screenPlayer;

        keyAdapter = new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                keyEvents.add(e);
            }

            @Override
            public void keyReleased(KeyEvent e) {
                keyEvents.add(e);
            }
        };

        mouseWheelListener = new MouseWheelListener() {
            @Override
            public void mouseWheelMoved(MouseWheelEvent e) {
                mouseEvents.add(e);
            }
        };

        mouseMotionAdapter = new MouseMotionAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                mouseEvents.add(e);
            }

            @Override
            public void mouseDragged(MouseEvent e) {
                 if (player.isSelecting) {
                    player.destx = e.getX ();
                    player.desty = e.getY ();
                 }
                 else
                    mouseEvents.add(e);
            }
        };

        mouseAdapter = new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                if (player.isSelecting) {
                    player.destx = player.srcx = e.getX ();
                    player.desty = player.srcy = e.getY ();
                }
                else
                    mouseEvents.add(e);
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                 player.doneSelecting();
                 mouseEvents.add(e);
            }
        };

        filesDropTargetListener = new FilesDropTargetListener(recorder);
        dropTarget = new DropTarget();
        dropTarget.setComponent(player);
    }

   public ArrayList<MouseEvent> getMouseEvents() {
        ArrayList<MouseEvent> _mouseEvents = new ArrayList<MouseEvent>();

        synchronized(mouseEvents){
            _mouseEvents = mouseEvents;
            mouseEvents = new ArrayList<MouseEvent>();
        }

        return _mouseEvents;
    }

    public ArrayList<KeyEvent> getKeyEvents () {
        ArrayList<KeyEvent> _keyEvents = new ArrayList<KeyEvent>();

        synchronized(keyEvents){
            _keyEvents = keyEvents;
            keyEvents = new ArrayList<KeyEvent>();
        }
       
        return _keyEvents;
    }

    public boolean isActive () {
        return isActive;
    }

    public void addAdapters() {
        addAdapters(false);
    }

    public void addAdapters(boolean all) {
        if (isActive) return;
        player.addKeyListener(keyAdapter);
        player.addMouseWheelListener(mouseWheelListener);
        player.addMouseMotionListener(mouseMotionAdapter);
        player.addMouseListener(mouseAdapter);
        if (all)
            try {
                dropTarget.addDropTargetListener(filesDropTargetListener);
            } catch (Exception e) {
                e.printStackTrace();
            }
        isActive = true;
    }

    public void removeAdapters() {
        removeAdapters(false);
    }

    public void removeAdapters(boolean all) {
        if (!isActive) return;
        player.removeKeyListener(keyAdapter);
        player.removeMouseWheelListener(mouseWheelListener);
        player.removeMouseMotionListener(mouseMotionAdapter);
        player.removeMouseListener(mouseAdapter);
        if (all)
            dropTarget.removeDropTargetListener(filesDropTargetListener);
        isActive = false;
    }
}
TOP

Related Classes of jrdesktop.viewer.EventsListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.