1 /** 2 * Copyright 2010 JogAmp Community. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without modification, are 5 * permitted provided that the following conditions are met: 6 * 7 * 1. Redistributions of source code must retain the above copyright notice, this list of 8 * conditions and the following disclaimer. 9 * 10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list 11 * of conditions and the following disclaimer in the documentation and/or other materials 12 * provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED 15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 16 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 21 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 22 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * 24 * The views and conclusions contained in the software and documentation are those of the 25 * authors and should not be interpreted as representing official policies, either expressed 26 * or implied, of JogAmp Community. 27 */ 28 29 package com.jogamp.opengl.test.junit.util; 30 31 import java.util.ArrayList; 32 import java.util.EventObject; 33 import java.util.List; 34 35 import com.jogamp.newt.event.MouseAdapter; 36 import com.jogamp.newt.event.MouseEvent; 37 38 public class NEWTMouseAdapter extends MouseAdapter implements InputEventCountAdapter { 39 40 String prefix; 41 int mouseClicked; 42 int consumed; 43 boolean pressed; 44 List<EventObject> queue = new ArrayList<EventObject>(); 45 boolean verbose = true; 46 NEWTMouseAdapter(final String prefix)47 public NEWTMouseAdapter(final String prefix) { 48 this.prefix = prefix; 49 reset(); 50 } 51 setVerbose(final boolean v)52 public synchronized void setVerbose(final boolean v) { verbose = v; } 53 isPressed()54 public synchronized boolean isPressed() { 55 return pressed; 56 } 57 getCount()58 public synchronized int getCount() { 59 return mouseClicked; 60 } 61 getConsumedCount()62 public synchronized int getConsumedCount() { 63 return consumed; 64 } 65 copyQueue()66 public synchronized List<EventObject> copyQueue() { 67 return new ArrayList<EventObject>(queue); 68 } 69 getQueueSize()70 public synchronized int getQueueSize() { 71 return queue.size(); 72 } 73 reset()74 public synchronized void reset() { 75 mouseClicked = 0; 76 consumed = 0; 77 pressed = false; 78 queue.clear(); 79 } 80 mousePressed(final MouseEvent e)81 public synchronized void mousePressed(final MouseEvent e) { 82 pressed = true; 83 queue.add(e); 84 if( verbose ) { 85 System.err.println("MOUSE NEWT PRESSED ["+pressed+"]: "+prefix+", "+e); 86 } 87 } 88 mouseReleased(final MouseEvent e)89 public synchronized void mouseReleased(final MouseEvent e) { 90 pressed = false; 91 queue.add(e); 92 if( verbose ) { 93 System.err.println("MOUSE NEWT RELEASED ["+pressed+"]: "+prefix+", "+e); 94 } 95 } 96 mouseClicked(final MouseEvent e)97 public synchronized void mouseClicked(final MouseEvent e) { 98 mouseClicked+=e.getClickCount(); 99 if(e.isConsumed()) { 100 consumed++; 101 } 102 queue.add(e); 103 if( verbose ) { 104 System.err.println("MOUSE NEWT CLICKED ["+mouseClicked+"]: "+prefix+", "+e); 105 } 106 } 107 toString()108 public String toString() { return prefix+"[pressed "+pressed+", clicked "+mouseClicked+", consumed "+consumed+"]"; } 109 } 110 111