JAL-3368 retaining branch for future SwingJS reference
[jalview.git] / src / jalview / util / Platform.java
index 6d95747..ffecebb 100644 (file)
@@ -23,6 +23,7 @@ package jalview.util;
 import jalview.javascript.json.JSON;
 
 import java.awt.Color;
+import java.awt.Dimension;
 import java.awt.Toolkit;
 import java.awt.event.MouseEvent;
 import java.io.BufferedReader;
@@ -40,6 +41,7 @@ import java.util.logging.ConsoleHandler;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.swing.JComponent;
 import javax.swing.SwingUtilities;
 
 import org.json.simple.parser.JSONParser;
@@ -276,6 +278,8 @@ public class Platform
    * 
    * Platform.timeCheck("some message", Platform.TIME_MARK);
    * 
+   * reset...[set/mark]n...get
+   * 
    * @param msg
    * @param mode
    */
@@ -286,6 +290,7 @@ public class Platform
     {
     case TIME_RESET:
       time = mark = t;
+      duration = 0;
       if (msg != null)
       {
         System.err.println("Platform: timer reset\t\t\t" + msg);
@@ -294,6 +299,7 @@ public class Platform
     case TIME_MARK:
       if (set > 0)
       {
+        // total time between set/mark points
         duration += (t - set);
       }
       else
@@ -316,7 +322,7 @@ public class Platform
     case TIME_GET:
       if (msg != null)
       {
-        System.err.println("Platform: timer dur\t" + ((t - time) / 1000f)
+        System.err.println("Platform: timer get\t" + ((t - time) / 1000f)
                 + "\t" + ((duration) / 1000f) + "\t" + msg);
       }
       set = 0;
@@ -329,13 +335,12 @@ public class Platform
     if (!isJS() || data == null)
     {
       return;
-    }
-    /**
-     * @j2sNative
-     * 
-     *            swingjs.JSUtil.cacheFileData$S$O(path, data);
-     * 
-     */
+    } /**
+       * @j2sNative
+       * 
+       *            swingjs.JSUtil.cacheFileData$S$O(path, data);
+       * 
+       */
   }
 
   public static void cacheFileData(File file)
@@ -434,13 +439,12 @@ public class Platform
     {
       BrowserLauncher.openURL(url);
       return false;
-    }
-    /**
-     * @j2sNative
-     * 
-     * 
-     *            window.open(url);
-     */
+    } /**
+       * @j2sNative
+       * 
+       * 
+       *            window.open(url);
+       */
     return true;
   }
 
@@ -529,8 +533,7 @@ public class Platform
 
   public static Object parseJSON(String json) throws ParseException
   {
-    return (isJS() ? JSON.parse(json)
-            : new JSONParser().parse(json));
+    return (isJS() ? JSON.parse(json) : new JSONParser().parse(json));
   }
 
   public static Object parseJSON(Reader r)
@@ -608,13 +611,12 @@ public class Platform
     if (isJS())
     {
       System.out.println(
-            "Platform adding known access-control-allow-origin * for domain "
-                    + domain);
-      /**
-       * @j2sNative
-       * 
-       *            J2S.addDirectDatabaseCall(domain);
-       */
+              "Platform adding known access-control-allow-origin * for domain "
+                      + domain);/**
+                                 * @j2sNative
+                                 * 
+                                 *            J2S.addDirectDatabaseCall(domain);
+                                 */
     }
 
   }
@@ -713,7 +715,8 @@ public class Platform
     return Regex.perlCode(code);
   }
 
-  /**
+  /** 
+   * Convert a color name to a Color object. SwingJS can do this natively. 
    * @param c
    */
   public static Color getColorFromName(String name)
@@ -760,7 +763,6 @@ public class Platform
       default:
         return null;
       }
-
     }
   }
 
@@ -832,7 +834,26 @@ public class Platform
      */
   }
 
-  public final static String EMBEDDED_DIM = "dim";
+  /**
+   * Retrieve the object's embedded size from a div's style on a page if
+   * embedded in SwingJS.
+   * 
+   * @param frame
+   *          JFrame or JInternalFrame
+   * @param defaultWidth
+   *          use -1 to return null (no default size)
+   * @param defaultHeight
+   * @return the embedded dimensions or null (no default size or not embedded)
+   */
+  public static Dimension getDimIfEmbedded(JComponent frame,
+          int defaultWidth, int defaultHeight)
+  {
+    Dimension d = /** @j2sNative frame.ui.getEmbedded$S("dim") || */
+            null;
+    return (d == null && defaultWidth >= 0
+            ? new Dimension(defaultWidth, defaultHeight)
+            : d);
+  }
 
   /**
    *
@@ -849,7 +870,7 @@ public class Platform
     {
       return null;
     }
-    return (/** swingjs@j2sNative || frame.ui.getEmbedded(type) */
+    return (/** @j2sNative frame.ui.getEmbedded$S(type) || */
     null);
   }