/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* Drag gesture recognition support for classes that have a
* <code>TransferHandler</code>. The gesture for a drag in this class is a mouse
* press followed by movement by <code>DragSource.getDragThreshold()</code>
* pixels. An instance of this class is maintained per AppContext, and the
* public static methods call into the appropriate instance.
*
* @author Shannon Hickey
*/
class DragRecognitionSupport {
private int motionThreshold;
/**
* This interface allows us to pass in a handler to mouseDragged,
* so that we can be notified immediately before a drag begins.
*/
public static interface BeforeDrag {
}
/**
* Returns the DragRecognitionSupport for the caller's AppContext.
*/
get(DragRecognitionSupport.class);
support = new DragRecognitionSupport();
}
return support;
}
/**
* Returns whether or not the event is potentially part of a drag sequence.
*/
}
/**
* If a dnd recognition has been going on, return the MouseEvent
* that started the recognition. Otherwise, return null.
*/
}
/**
* Returns whether or not a drag gesture recognition is ongoing.
*/
}
private void clearState() {
}
return TransferHandler.NONE;
}
return SunDragSourceContextPeer.
}
/**
* Returns whether or not the event is potentially part of a drag sequence.
*/
!= TransferHandler.NONE) {
dndArmedEvent = me;
return true;
}
clearState();
return false;
}
/**
* If a dnd recognition has been going on, return the MouseEvent
* that started the recognition. Otherwise, return null.
*/
/* no recognition has been going on */
if (dndArmedEvent == null) {
return null;
}
} // else component has changed unexpectedly, so return null
clearState();
return retEvent;
}
/**
* Returns whether or not a drag gesture recognition is ongoing.
*/
/* no recognition is in progress */
if (dndArmedEvent == null) {
return false;
}
/* component has changed unexpectedly, so bail */
clearState();
return false;
}
/* notify the BeforeDrag instance */
}
clearState();
}
}
return true;
}
}