Revision: 18560
          http://sourceforge.net/p/jmol/code/18560
Author:   hansonr
Date:     2013-08-13 22:49:06 +0000 (Tue, 13 Aug 2013)
Log Message:
-----------
___JmolVersion="13.2.4_dev_2013.08.13"

bug fix: screen repaints were being requested far too frequently

        
        *indicates when a refresh is made (external apps and applets only)
        
        external apps only 
                via loadInline(List)*
                        createModelSetAndReturnError
        
        script LOAD
        openDOM, openReader, openFile, openFiles*
                via loadModelFromFile(*)
                        createModelSetAndReturnError
        
        script CALCULATE HYDROGENS, PLOT, ZAP (modelkit)
        loadInLine(String)* via loadInLineScript(*)
        FileDropper (string drop) via openStringInline*
                openStringInlineParamsAppend
                        createModelSetAndReturnError
        
        external apps, applet only, via loadInline(String[])*
        script LOAD DATA via loadFileFull and loadInlineScript
                openStringsInlineParamsAppend
                        createModelSetAndReturnError

Modified Paths:
--------------
    branches/v13_2/Jmol/src/org/jmol/api/JmolRepaintManager.java
    branches/v13_2/Jmol/src/org/jmol/api/JmolViewer.java
    branches/v13_2/Jmol/src/org/jmol/applet/Jmol.java
    branches/v13_2/Jmol/src/org/jmol/appletjs/Jmol.java
    branches/v13_2/Jmol/src/org/jmol/navigate/Navigator.java
    branches/v13_2/Jmol/src/org/jmol/render/RepaintManager.java
    branches/v13_2/Jmol/src/org/jmol/script/ScriptEvaluator.java
    branches/v13_2/Jmol/src/org/jmol/thread/AnimationThread.java
    branches/v13_2/Jmol/src/org/jmol/thread/MoveThread.java
    branches/v13_2/Jmol/src/org/jmol/thread/MoveToThread.java
    branches/v13_2/Jmol/src/org/jmol/thread/ScriptDelayThread.java
    branches/v13_2/Jmol/src/org/jmol/thread/SpinThread.java
    branches/v13_2/Jmol/src/org/jmol/viewer/JC.java
    branches/v13_2/Jmol/src/org/jmol/viewer/Jmol.properties
    branches/v13_2/Jmol/src/org/jmol/viewer/Viewer.java

Modified: branches/v13_2/Jmol/src/org/jmol/api/JmolRepaintManager.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/api/JmolRepaintManager.java        
2013-08-13 22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/api/JmolRepaintManager.java        
2013-08-13 22:49:06 UTC (rev 18560)
@@ -11,15 +11,15 @@
 
   boolean isRepaintPending();
 
-  void popHoldRepaint(boolean andRepaint);
+  void popHoldRepaint(boolean andRepaint, String why);
 
-  boolean repaintIfReady();
+  boolean repaintIfReady(String why);
 
-  void pushHoldRepaint();
+  void pushHoldRepaint(String why);
 
   void repaintDone();
 
-  void requestRepaintAndWait();
+  void requestRepaintAndWait(String why);
 
   void clear(int iShape);
 

Modified: branches/v13_2/Jmol/src/org/jmol/api/JmolViewer.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/api/JmolViewer.java        2013-08-13 
22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/api/JmolViewer.java        2013-08-13 
22:49:06 UTC (rev 18560)
@@ -215,7 +215,7 @@
   abstract public boolean haveFrame();
 
   abstract public void pushHoldRepaint();
-  abstract public void popHoldRepaint();
+  abstract public void popHoldRepaint(String why);
 
   // for example: getData("selected","XYZ");
   abstract public String getData(String atomExpression, String type);

Modified: branches/v13_2/Jmol/src/org/jmol/applet/Jmol.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/applet/Jmol.java   2013-08-13 22:47:30 UTC 
(rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/applet/Jmol.java   2013-08-13 22:49:06 UTC 
(rev 18560)
@@ -449,7 +449,7 @@
       }
     }
 
-    viewer.popHoldRepaint();
+    viewer.popHoldRepaint("applet init");
   }
 
   private void setLogging() {

Modified: branches/v13_2/Jmol/src/org/jmol/appletjs/Jmol.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/appletjs/Jmol.java 2013-08-13 22:47:30 UTC 
(rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/appletjs/Jmol.java 2013-08-13 22:49:06 UTC 
(rev 18560)
@@ -223,7 +223,7 @@
        viewer.getProperty("DATA_API", "disablePopupMenu", null);
 
     String scriptParam = getValue("script", "");
-    viewer.popHoldRepaint();
+    viewer.popHoldRepaint("applet init");
     if (scriptParam.length() > 0)
       scriptProcessor(scriptParam, null, SCRIPT_WAIT);
     jmolReady();

Modified: branches/v13_2/Jmol/src/org/jmol/navigate/Navigator.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/navigate/Navigator.java    2013-08-13 
22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/navigate/Navigator.java    2013-08-13 
22:49:06 UTC (rev 18560)
@@ -241,7 +241,7 @@
           break;
         }
         doNavStep(iStep++);
-        viewer.requestRepaintAndWait();
+        viewer.requestRepaintAndWait("navigator");
         int sleepTime = (int) (targetTime - System.currentTimeMillis());
         if (!runSleep(sleepTime, MAIN))
           return;

Modified: branches/v13_2/Jmol/src/org/jmol/render/RepaintManager.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/render/RepaintManager.java 2013-08-13 
22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/render/RepaintManager.java 2013-08-13 
22:49:06 UTC (rev 18560)
@@ -62,22 +62,22 @@
     return repaintPending;
   }
   
-  public void pushHoldRepaint() {
+  public void pushHoldRepaint(String why) {
     ++holdRepaint;
   }
   
-  public void popHoldRepaint(boolean andRepaint) {
+  public void popHoldRepaint(boolean andRepaint, String why) {
     --holdRepaint;
     if (holdRepaint <= 0) {
       holdRepaint = 0;
       if (andRepaint) {
         repaintPending = true;
-        repaintNow();
+        repaintNow(why);
       }
     }
   }
 
-  synchronized public void requestRepaintAndWait() {
+  synchronized public void requestRepaintAndWait(String why) {
     /**
      * @j2sNative
      * 
@@ -88,7 +88,7 @@
     {
       //System.out.println("RM requestRepaintAndWait() " + (test++));
       try {
-        repaintNow();
+        repaintNow(why);
         //System.out.println("repaintManager requestRepaintAndWait I am 
waiting for a repaint: thread=" + Thread.currentThread().getName());
         wait(viewer.global.repaintWaitMs); // more than a second probably 
means we are locked up here
         if (repaintPending) {
@@ -102,18 +102,21 @@
     //System.out.println("repaintManager requestRepaintAndWait I am no longer 
waiting for a repaint: thread=" + Thread.currentThread().getName());
   }
 
-  public boolean repaintIfReady() {
+  public boolean repaintIfReady(String why) {
     if (repaintPending)
       return false;
     repaintPending = true;
     if (holdRepaint == 0) {
       //System.out.println("RM refresh() " + (test++));
-      repaintNow();
+      repaintNow(why);
     }
     return true;
   }
 
-  private void repaintNow() {
+  /**
+   * @param why  
+   */
+  private void repaintNow(String why) {
     // from RepaintManager to the System
     // -- "Send me an asynchronous update() event!"
     if (!viewer.haveDisplay)

Modified: branches/v13_2/Jmol/src/org/jmol/script/ScriptEvaluator.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/script/ScriptEvaluator.java        
2013-08-13 22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/script/ScriptEvaluator.java        
2013-08-13 22:49:06 UTC (rev 18560)
@@ -337,7 +337,7 @@
     }
     if (haveError || !isJS || !allowJSThreads) {
       viewer.setTainted(true);
-      viewer.popHoldRepaintWhy("runEval");
+      viewer.popHoldRepaint("runEval");
     }
     timeEndExecution = System.currentTimeMillis();
     if (errorMessage == null && executionStopped)
@@ -403,7 +403,7 @@
     setErrorMessage(null);
     if (executionStopped || sc == null || !sc.mustResumeEval) {
       viewer.setTainted(true);
-      viewer.popHoldRepaintWhy("runEval");
+      viewer.popHoldRepaint("runEval");
       viewer.queueOnHold = false;
       return;
     }
@@ -429,7 +429,7 @@
     contextPath += " >> script() ";
     this.outputBuffer = outputBuffer;
     allowJSThreads = false;
-    if (compileScript(null, script + JC.SCRIPT_EDITOR_IGNORE, false))
+    if (compileScript(null, script + JC.SCRIPT_EDITOR_IGNORE + 
JC.REPAINT_IGNORE, false))
       dispatchCommands(false, false);
     popContext(false, false);
   }
@@ -510,7 +510,7 @@
       return;
     if (withDelay && !isJS )
       viewer.delayScript(this, -100);
-    viewer.popHoldRepaintWhy("pauseExecution");
+    viewer.popHoldRepaint("pauseExecution");
     executionStepping = false;
     executionPaused = true;
   }
@@ -5411,7 +5411,7 @@
     }
     refresh();
     while (executionPaused) {
-      viewer.popHoldRepaintWhy("pause"); 
+      viewer.popHoldRepaint("pause"); 
       // does not actually do a repaint
       // but clears the way for interaction
       String script = viewer.getInsertedCommand();
@@ -5438,7 +5438,7 @@
       // JavaScript will not reach this point, 
       // but no need to pop anyway, because
       // we will be out of this thread.
-      viewer.pushHoldRepaintWhy("pause");        
+      viewer.pushHoldRepaintWhy("pause" + JC.REPAINT_IGNORE);        
     }
     notifyResumeStatus();
     // once more to trap quit during pause
@@ -10124,7 +10124,8 @@
     String[] savedFileInfo = viewer.getFileInfo();
     boolean oldAppendNew = viewer.getBoolean(T.appendnew);
     viewer.setAppendNew(true);
-    boolean isOK = (data != null && viewer.loadInline(data, true) == null);
+    
+    boolean isOK = (data != null && viewer.openStringInlineParamsAppend(data, 
null, true) == null);
     viewer.setAppendNew(oldAppendNew);
     viewer.setFileInfo(savedFileInfo);
     if (!isOK)
@@ -10266,7 +10267,7 @@
     if (chk)
       return;
     viewer.setTainted(true);
-    viewer.requestRepaintAndWait();
+    viewer.requestRepaintAndWait("script refresh");
   }
 
   private void reset() throws ScriptException {
@@ -19297,7 +19298,7 @@
     for (int i = 0; i < pts.length; i++)
       sb.append("H ").appendF(pts[i].x).append(" ").appendF(pts[i].y).append(" 
")
           .appendF(pts[i].z).append(" - - - - 
").appendI(++atomno).appendC('\n');
-    viewer.loadInlineScript(sb.toString(), '\n', true, null);
+    viewer.openStringInlineParamsAppend(sb.toString(), null, true);
     runScriptBuffer(sbConnect.toString(), null);
     BS bsB = viewer.getModelUndeletedAtomsBitSet(modelIndex);
     bsB.andNot(bsA);

Modified: branches/v13_2/Jmol/src/org/jmol/thread/AnimationThread.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/thread/AnimationThread.java        
2013-08-13 22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/thread/AnimationThread.java        
2013-08-13 22:49:06 UTC (rev 18560)
@@ -73,7 +73,7 @@
       case INIT:
         if (Logger.debugging)
           Logger.debug("animation thread " + intThread + " running");
-        viewer.requestRepaintAndWait();
+        viewer.requestRepaintAndWait("animation thread");
         viewer.startHoverWatcher(false);
         isFirst = true;
         mode = MAIN;

Modified: branches/v13_2/Jmol/src/org/jmol/thread/MoveThread.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/thread/MoveThread.java     2013-08-13 
22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/thread/MoveThread.java     2013-08-13 
22:49:06 UTC (rev 18560)
@@ -119,7 +119,7 @@
         int timeSpent = (int) (System.currentTimeMillis() - startTime);
         int timeAllowed = iStep * timePerStep;
         if (timeSpent < timeAllowed) {
-          viewer.requestRepaintAndWait();
+          viewer.requestRepaintAndWait("move thread");
           if (!isJS && !viewer.isScriptExecuting()) {
             mode = FINISH;
             break;

Modified: branches/v13_2/Jmol/src/org/jmol/thread/MoveToThread.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/thread/MoveToThread.java   2013-08-13 
22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/thread/MoveToThread.java   2013-08-13 
22:49:06 UTC (rev 18560)
@@ -160,7 +160,7 @@
           doRender = true;
         }
         if (doRender)
-          viewer.requestRepaintAndWait();
+          viewer.requestRepaintAndWait("moveto thread");
         if (transformManager.motion == null || !isJS && eval != null
             && !viewer.isScriptExecuting()) {
           stopped = true;

Modified: branches/v13_2/Jmol/src/org/jmol/thread/ScriptDelayThread.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/thread/ScriptDelayThread.java      
2013-08-13 22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/thread/ScriptDelayThread.java      
2013-08-13 22:49:06 UTC (rev 18560)
@@ -72,7 +72,7 @@
             millis = 1;
         }
         if (doPopPush)
-          viewer.popHoldRepaintWhy("delay INIT");
+          viewer.popHoldRepaint("delay INIT");
         mode = MAIN;
         break;
       case MAIN:

Modified: branches/v13_2/Jmol/src/org/jmol/thread/SpinThread.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/thread/SpinThread.java     2013-08-13 
22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/thread/SpinThread.java     2013-08-13 
22:49:06 UTC (rev 18560)
@@ -162,7 +162,7 @@
         if (bsAtoms == null)
           viewer.refresh(1, "SpinThread:run()");
         else
-          viewer.requestRepaintAndWait();
+          viewer.requestRepaintAndWait("spin thread");
         //System.out.println(angle * degreesPerRadian + " " + count + " " + 
nDegrees + " " + endDegrees);
         if (!isNav && nDegrees >= endDegrees - 0.001) {
           isDone = true;

Modified: branches/v13_2/Jmol/src/org/jmol/viewer/JC.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/viewer/JC.java     2013-08-13 22:47:30 UTC 
(rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/viewer/JC.java     2013-08-13 22:49:06 UTC 
(rev 18560)
@@ -121,6 +121,7 @@
   public final static String NOTE_SCRIPT_FILE = "NOTE: file recognized as a 
script file: ";
  
   public final static String SCRIPT_EDITOR_IGNORE = "\1## EDITOR_IGNORE ##";
+  public final static String REPAINT_IGNORE = "\1## REPAINT_IGNORE ##";
 
   public final static String LOAD_ATOM_DATA_TYPES = 
";xyz;vxyz;vibration;temperature;occupancy;partialcharge;";
 
@@ -1296,7 +1297,7 @@
     "pubchem", 
"http://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/%FILE/SDF?record_type=3d";
   };
   
-  public final static String MODELKIT_ZAP_STRING = "1 0 C 0 0";
+  public final static String MODELKIT_ZAP_STRING = "5\n\nC 0 0 0\nH .63 .63 
.63\nH -.63 -.63 .63\nH -.63 .63 -.63\nH .63 -.63 -.63";
   public final static String MODELKIT_ZAP_TITLE = "Jmol Model Kit";//do not 
ever change this -- it is in the state
   public final static String ADD_HYDROGEN_TITLE = "Viewer.AddHydrogens"; //do 
not ever change this -- it is in the state
 

Modified: branches/v13_2/Jmol/src/org/jmol/viewer/Jmol.properties
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/viewer/Jmol.properties     2013-08-13 
22:47:30 UTC (rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/viewer/Jmol.properties     2013-08-13 
22:49:06 UTC (rev 18560)
@@ -9,8 +9,33 @@
 #  Don't use ___ in your text, as that is the key for stripping out
 #  the information saved in the JAR version of this file.
 
-___JmolVersion="13.2.4_dev_2013.08.12"
+___JmolVersion="13.2.4_dev_2013.08.13"
 
+bug fix: screen repaints were being requested far too frequently
+
+       
+       *indicates when a refresh is made (external apps and applets only)
+       
+       external apps only 
+               via loadInline(List)*
+                       createModelSetAndReturnError
+       
+       script LOAD
+       openDOM, openReader, openFile, openFiles*
+               via loadModelFromFile(*)
+                       createModelSetAndReturnError
+       
+       script CALCULATE HYDROGENS, PLOT, ZAP (modelkit)
+       loadInLine(String)* via loadInLineScript(*)
+       FileDropper (string drop) via openStringInline*
+               openStringInlineParamsAppend
+                       createModelSetAndReturnError
+       
+       external apps, applet only, via loadInline(String[])*
+       script LOAD DATA via loadFileFull and loadInlineScript
+               openStringsInlineParamsAppend
+                       createModelSetAndReturnError
+
 bug fix: set loglevel 6 (debugHigh) not working
 bug fix: {*}.tensor("", "id") not implemented
 bug fix: {*}.tensor("") not implemented

Modified: branches/v13_2/Jmol/src/org/jmol/viewer/Viewer.java
===================================================================
--- branches/v13_2/Jmol/src/org/jmol/viewer/Viewer.java 2013-08-13 22:47:30 UTC 
(rev 18559)
+++ branches/v13_2/Jmol/src/org/jmol/viewer/Viewer.java 2013-08-13 22:49:06 UTC 
(rev 18560)
@@ -985,7 +985,7 @@
 
   public void moveUpdate(float floatSecondsTotal) {
     if (floatSecondsTotal > 0)
-      requestRepaintAndWait();
+      requestRepaintAndWait("moveUpdate");
     else if (floatSecondsTotal == 0)
       setSync();
   }
@@ -1926,6 +1926,28 @@
 
   // //////////////// methods that open a file to create a model set 
///////////
 
+  //  *indicates when a refresh is made (external apps and applets only)
+  //
+  //  external apps only 
+  //    via loadInline(List)*
+  //      createModelSetAndReturnError
+  //
+  //  script LOAD via loadModelFromFile
+  //  openDOM, openReader, openFile, openFiles via loadModelFromFileRepaint*
+  //      createModelSetAndReturnError
+  //
+  //  script CALCULATE HYDROGENS, PLOT, ZAP (modelkit)
+  //  loadInLine(String) via loadInLineScriptRepaint*
+  //  FileDropper (string drop) via openStringInline*
+  //    openStringInlineParamsAppend
+  //      createModelSetAndReturnError
+  //
+  //  external apps, applet only, via loadInline(String[])*
+  //  script LOAD DATA via loadFileFull and loadInlineScript
+  //    openStringsInlineParamsAppend
+  //      createModelSetAndReturnError
+  
+  
   /**
    * opens a file as a model, a script, or a surface via the creation of a
    * script that is queued \t at the beginning disallows script option - used 
by
@@ -1950,7 +1972,7 @@
   @Override
   public String openFile(String fileName) {
     zap(true, true, false);
-    return loadModelFromFile(null, fileName, null, null, false, null, null, 0);
+    return loadModelFromFileRepaint(null, fileName, null, null);
   }
 
   /**
@@ -1962,7 +1984,7 @@
   @Override
   public String openFiles(String[] fileNames) {
     zap(true, true, false);
-    return loadModelFromFile(null, null, fileNames, null, false, null, null, 
0);
+    return loadModelFromFileRepaint(null, null, fileNames, null);
   }
 
   /**
@@ -1976,8 +1998,7 @@
   @Override
   public String openReader(String fullPathName, String fileName, Reader 
reader) {
     zap(true, true, false);
-    return loadModelFromFile(fullPathName, fileName, null, reader, false, null,
-        null, 0);
+    return loadModelFromFileRepaint(fullPathName, fileName, null, reader);
   }
 
   /**
@@ -1991,9 +2012,17 @@
   public String openDOM(Object DOMNode) {
     // applet.loadDOMNode
     zap(true, true, false);
-    return loadModelFromFile("?", "?", null, DOMNode, false, null, null, 0);
+    return loadModelFromFileRepaint("?", "?", null, DOMNode);
   }
 
+  private String loadModelFromFileRepaint(String fullPathName, String fileName,
+                                          String[] fileNames, Object reader) {
+    String ret = loadModelFromFile(fullPathName, fileName, fileNames, reader, 
false, null, null, 0);
+    refresh(1, "loadModelFromFileRepaint");
+    return ret;
+  }
+
+
   /**
    * Used by the ScriptEvaluator LOAD command to open one or more files. Now
    * necessary for EVERY load of a file, as loadScript must be passed to the
@@ -2216,7 +2245,7 @@
     if (haveFileData) {
       strModel = (String) htParams.get("fileData");
       if (htParams.containsKey("isData")) {
-        return loadInlineScript(strModel, '\0', isAppend, htParams);
+        return loadInlineScript(strModel, '\0', isAppend, htParams, false);
       }
     } else if (isString) {
       strModel = modelSet.getInlineData(-1);
@@ -2255,25 +2284,25 @@
   @Override
   public String openStringInline(String strModel) {
     // JmolSimpleViewer
-    return openStringInlineParams(strModel, null, false);
+    return openStringInlineParamsAppend(strModel, null, false);
   }
 
   @Override
   public String loadInline(String strModel) {
     // jmolViewer interface
-    return loadInlineScript(strModel, global.inlineNewlineChar, false, null);
+    return loadInlineScript(strModel, global.inlineNewlineChar, false, null, 
true);
   }
 
   @Override
   public String loadInline(String strModel, char newLine) {
     // JmolViewer interface
-    return loadInlineScript(strModel, newLine, false, null);
+    return loadInlineScript(strModel, newLine, false, null, true);
   }
 
   @Override
   public String loadInline(String strModel, boolean isAppend) {
     // JmolViewer interface
-    return loadInlineScript(strModel, '\0', isAppend, null);
+    return loadInlineScript(strModel, '\0', isAppend, null, true);
   }
 
   @Override
@@ -2289,7 +2318,9 @@
     // loadInline
     if (arrayModels == null || arrayModels.length == 0)
       return null;
-    return openStringsInline(arrayModels, null, isAppend);
+    String ret = openStringsInlineParamsAppend(arrayModels, null, isAppend);
+    refresh(1, "loadInline String[]");
+    return ret;
   }
 
   /**
@@ -2315,7 +2346,7 @@
   }
 
   public String loadInlineScript(String strModel, char newLine,
-                                 boolean isAppend, Map<String, Object> 
htParams) {
+                                 boolean isAppend, Map<String, Object> 
htParams, boolean andRepaint) {
     // ScriptEvaluator DATA command uses this, but anyone could.
     if (strModel == null || strModel.length() == 0)
       return null;
@@ -2328,6 +2359,7 @@
       Logger.debug(strModel);
     String datasep = getDataSeparator();
     int i;
+    String ret;
     if (datasep != null && datasep != ""
         && (i = strModel.indexOf(datasep)) >= 0
         && strModel.indexOf("# Jmol state") < 0) {
@@ -2343,9 +2375,13 @@
         strModels[i] = strModel.substring(pt0, pt);
         pt0 = pt + datasep.length();
       }
-      return openStringsInline(strModels, htParams, isAppend);
+      ret = openStringsInlineParamsAppend(strModels, htParams, isAppend);
+    } else {
+      ret = openStringInlineParamsAppend(strModel, htParams, isAppend);
     }
-    return openStringInlineParams(strModel, htParams, isAppend);
+    if (andRepaint)
+      refresh(1, "loadInlineScript");
+    return ret;
   }
 
   public static String fixInlineString(String strModel, char newLine) {
@@ -2377,7 +2413,7 @@
 
   // everything funnels to these two inline methods: String and String[]
 
-  private String openStringInlineParams(String strModel,
+  public String openStringInlineParamsAppend(String strModel,
                                         Map<String, Object> htParams,
                                         boolean isAppend) {
     // loadInline, openStringInline
@@ -2403,7 +2439,7 @@
         loadScript, null);
   }
 
-  private String openStringsInline(String[] arrayModels,
+  private String openStringsInlineParamsAppend(String[] arrayModels,
                                    Map<String, Object> htParams,
                                    boolean isAppend) {
     // loadInline
@@ -2497,7 +2533,7 @@
       zapMsg(errMsg);
       setErrorMessage(errMsg, null);
     }
-    popHoldRepaintWhy("createModelSet");
+    popHoldRepaint("createModelSet" + JC.REPAINT_IGNORE);
     errMsg = getErrorMessage();
 
     setFileLoadStatus(EnumFileStatus.CREATED, fullPathName, fileName,
@@ -2804,7 +2840,7 @@
       dataManager.clear();
       if (resetUndo) {
         if (zapModelKit && global.modelKitMode) {
-          loadInline(JC.MODELKIT_ZAP_STRING); // a JME string for methane
+          openStringInlineParamsAppend(JC.MODELKIT_ZAP_STRING, null, true);
           setRotationRadius(5.0f, true);
           setStringProperty("picking", "assignAtom_C");
           setStringProperty("picking", "assignBond_p");
@@ -3879,25 +3915,18 @@
    */
   public void pushHoldRepaintWhy(String why) {
     if (repaintManager != null) {
-      repaintManager.pushHoldRepaint();
+      repaintManager.pushHoldRepaint(why);
       //System.out.println("viewer pushHoldRepaint " + why + " " + 
((org.jmol.render.RepaintManager)repaintManager).holdRepaint);
     }
 
   }
 
   @Override
-  public void popHoldRepaint() {
-    //System.out.println("viewer popHoldRepaint don't know why");
-    if (repaintManager != null) {
-      repaintManager.popHoldRepaint(true);
-    }
-  }
-
-  public void popHoldRepaintWhy(String why) {
+  public void popHoldRepaint(String why) {
     //if (!why.equals("pause"))
     //System.out.println("viewer popHoldRepaint " + why);
     if (repaintManager != null) {
-      repaintManager.popHoldRepaint(!why.equals("pause"));
+      repaintManager.popHoldRepaint(why.indexOf(JC.REPAINT_IGNORE) < 0, why);
       //System.out.println("viewer popHoldRepaint " + why + " " + 
((org.jmol.render.RepaintManager)repaintManager).holdRepaint);
     }
   }
@@ -3962,14 +3991,14 @@
       if (mode == 7)
         return;
       if (mode > 0)
-        repaintManager.repaintIfReady();
+        repaintManager.repaintIfReady(strWhy + " " + mode);
     }
 
     if (mode % 3 != 0 && statusManager.doSync())
       statusManager.setSync(mode == 2 ? strWhy : null);
   }
 
-  public void requestRepaintAndWait() {
+  public void requestRepaintAndWait(String why) {
     // called by moveUpdate from move, moveTo, navigate,
     // navTranslate
     // called by ScriptEvaluator "refresh" command
@@ -3978,7 +4007,7 @@
     // called by TransformationManager11 navigate, navigateTo
     if (!haveDisplay || repaintManager == null)
       return;
-    repaintManager.requestRepaintAndWait();
+    repaintManager.requestRepaintAndWait(why);
     setSync();
   }
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Jmol-commits mailing list
Jmol-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to