JAL-3451 JalviewJS embedded mode not resizing
[jalview.git] / src / jalview / util / Platform.java
index fba669b..11f7988 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;
@@ -836,7 +838,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);
+  }
 
   /**
    *
@@ -853,7 +874,7 @@ public class Platform
     {
       return null;
     }
-    return (/** swingjs@j2sNative || frame.ui.getEmbedded(type) */
+    return (/** @j2sNative frame.ui.getEmbedded$S(type) || */
     null);
   }