/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: MouseMotionEventTranslator.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.swing; import java.awt.Component; import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; public class MouseMotionEventTranslator implements MouseMotionListener { private Component mTargetComponent = null; public MouseMotionEventTranslator(Component targetComponent) { mTargetComponent = targetComponent; } public void mouseDragged(MouseEvent e) { if (mTargetComponent instanceof MouseMotionListener) { MouseMotionListener target_listener = (MouseMotionListener)mTargetComponent; target_listener.mouseDragged(translateMouseEvent(e)); } } public void mouseMoved(MouseEvent e) { if (mTargetComponent instanceof MouseMotionListener) { MouseMotionListener target_listener = (MouseMotionListener)mTargetComponent; target_listener.mouseMoved(translateMouseEvent(e)); } } private MouseEvent translateMouseEvent(MouseEvent e) { MouseEvent new_mouse_event = null; Point target_location = mTargetComponent.getLocationOnScreen(); Component source_component = (Component)e.getSource(); int new_x = (int)(source_component.getX()-target_location.getX()+e.getX()); int new_y = (int)(source_component.getY()-target_location.getY()+e.getY()); new_mouse_event = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(), new_x, new_y, e.getClickCount(), e.isPopupTrigger()); return new_mouse_event; } }