Clazz.declarePackage("J.thread");
Clazz.load(["J.thread.JmolThread"], "J.thread.HoverWatcherThread", null, function(){
var c$ = Clazz.decorateAsClass(function(){
this.actionManager = null;
this.current = null;
this.moved = null;
this.hoverDelay = 0;
Clazz.instantialize(this, arguments);}, J.thread, "HoverWatcherThread", J.thread.JmolThread);
Clazz.makeConstructor(c$, 
function(actionManager, current, moved, vwr){
this.setViewer(vwr, "HoverWatcher");
this.actionManager = actionManager;
this.current = current;
this.moved = moved;
this.start();
}, "JV.ActionManager,JV.MouseState,JV.MouseState,JV.Viewer");
Clazz.overrideMethod(c$, "run1", 
function(mode){
while (true) switch (mode) {
case -1:
if (!this.isJS) Thread.currentThread().setPriority(1);
mode = 0;
break;
case 0:
this.hoverDelay = this.vwr.getHoverDelay();
if (this.stopped || this.hoverDelay <= 0 || !this.runSleep(this.hoverDelay, 1)) return;
mode = 1;
break;
case 1:
if (this.moved.is(this.current)) {
this.currentTime = System.currentTimeMillis();
var howLong = (this.currentTime - this.moved.time);
if (howLong > (this.vwr.acm.zoomTrigger ? 100 : this.hoverDelay) && !this.stopped) {
this.actionManager.checkHover();
}}mode = 0;
break;
}

}, "~N");
});
;//5.0.1-v7 Mon Aug 17 10:07:10 MDT 2026
