| Clazz.declarePackage ("JM"); | |
| Clazz.load (["J.thread.JmolThread"], "JM.MinimizationThread", ["JU.Logger"], function () { | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.minimizer = null; | |
| Clazz.instantialize (this, arguments); | |
| }, JM, "MinimizationThread", J.thread.JmolThread); | |
| Clazz.makeConstructor (c$, | |
| function () { | |
| Clazz.superConstructor (this, JM.MinimizationThread, []); | |
| }); | |
| Clazz.overrideMethod (c$, "setManager", | |
| function (manager, vwr, options) { | |
| this.minimizer = manager; | |
| this.setViewer (vwr, "MinimizationThread"); | |
| return 0; | |
| }, "~O,JV.Viewer,~O"); | |
| Clazz.overrideMethod (c$, "run1", | |
| function (mode) { | |
| while (true) switch (mode) { | |
| case -1: | |
| this.lastRepaintTime = this.startTime; | |
| this.haveReference = true; | |
| if (!this.minimizer.startMinimization ()) return; | |
| this.vwr.startHoverWatcher (false); | |
| mode = 0; | |
| break; | |
| case 0: | |
| if (!this.minimizer.minimizationOn () || this.checkInterrupted (this.minimizer.getThread ())) { | |
| mode = -2; | |
| break; | |
| }this.currentTime = System.currentTimeMillis (); | |
| var elapsed = (this.currentTime - this.lastRepaintTime); | |
| var sleepTime = 33 - elapsed; | |
| if (!this.runSleep (sleepTime, 1)) return; | |
| mode = 1; | |
| break; | |
| case 1: | |
| this.lastRepaintTime = this.currentTime = System.currentTimeMillis (); | |
| mode = (this.minimizer.stepMinimization () ? 0 : -2); | |
| break; | |
| case -2: | |
| this.minimizer.endMinimization (); | |
| this.vwr.startHoverWatcher (true); | |
| return; | |
| } | |
| }, "~N"); | |
| Clazz.overrideMethod (c$, "oops", | |
| function (e) { | |
| if (this.minimizer.minimizationOn ()) JU.Logger.error (e.toString ()); | |
| }, "Exception"); | |
| }); | |