home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 August / PCO0897.ISO / filesbbs / os2 / fp1os2.arj / OS2 / DATA / 49 / C / 0 / F_26836 / JavaScript.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-15  |  6.8 KB  |  268 lines

  1. import stardiv.tools.HoldJavaEnvironment;
  2. import stardiv.tools.SjProtocolWindow;
  3.  
  4. class JavaScript {
  5.    private static int nNoOfManagers;
  6.    private JScriptManager aJScriptManager;
  7.    JSbxObject aWrapperObj;
  8.    private ThreadGroup aThreadGroup;
  9.    private boolean bUsedAsIDE;
  10.    private int nNoOfModules;
  11.    protected long pCppJSbxObject;
  12.  
  13.    public JScriptManager GetManager() {
  14.       return this.aJScriptManager;
  15.    }
  16.  
  17.    public boolean ExistsNativeHandle() {
  18.       return this.pCppJSbxObject != 0L;
  19.    }
  20.  
  21.    public final void ClearNativeHandle() {
  22.       this.pCppJSbxObject = 0L;
  23.    }
  24.  
  25.    public final void SetNativeHandle(long var1) {
  26.       this.pCppJSbxObject = var1;
  27.    }
  28.  
  29.    public final long GetNativeHandle() {
  30.       return this.pCppJSbxObject;
  31.    }
  32.  
  33.    public final int GetNativeHandleInt() {
  34.       return (int)this.pCppJSbxObject;
  35.    }
  36.  
  37.    public static JavaScript GetMyJavaScript() {
  38.       JScriptManager var0 = JScriptManager.GetMyJScriptManager();
  39.       if (var0 != null) {
  40.          JavaScript var1 = var0.GetJavaScriptObj();
  41.          return var1;
  42.       } else {
  43.          return null;
  44.       }
  45.    }
  46.  
  47.    public static boolean StopThreadWithCallbackID(int var0) {
  48.       return JScriptRunAsync.StopThreadWithCallbackID(var0);
  49.    }
  50.  
  51.    protected void finalize() {
  52.       this.aJScriptManager = null;
  53.       SjProtocolWindow.DecUser1Count();
  54.    }
  55.  
  56.    protected void Constr() {
  57.       SjProtocolWindow.IncUser1Count();
  58.    }
  59.  
  60.    private void SetMyWrapper(Object var1) {
  61.       if (var1 instanceof JSbxObject) {
  62.          this.aWrapperObj = (JSbxObject)var1;
  63.       } else if (this.aWrapperObj instanceof JavaScriptWrapperObject) {
  64.          ((JavaScriptWrapperObject)this.aWrapperObj).SetObject(var1);
  65.       } else {
  66.          HoldJavaEnvironment.AddToProtocol("*** WARINIG: create JavaScriptWrapperObject !!!");
  67.          this.aWrapperObj = new JavaScriptWrapperObject(var1, true);
  68.       }
  69.    }
  70.  
  71.    public JavaScript(long var1, boolean var3) {
  72.       this.Constr();
  73.       this.SetNativeHandle(var1);
  74.       this.aWrapperObj = null;
  75.       if (var3) {
  76.          this.aThreadGroup = new ThreadGroup("(Star)JavaScript_" + nNoOfManagers++);
  77.          this.aJScriptManager = new JScriptManager(this.aThreadGroup, this.aWrapperObj, var3);
  78.       } else {
  79.          this.aJScriptManager = new JScriptManager((ThreadGroup)null, this.aWrapperObj, var3);
  80.       }
  81.  
  82.       this.aJScriptManager.UpdateNativeInterface(this);
  83.       this.aJScriptManager.SetSysExitFlag(false);
  84.       this.nNoOfModules = 0;
  85.       this.bUsedAsIDE = var3;
  86.    }
  87.  
  88.    public void SetRoot(Object var1) {
  89.       this.SetMyWrapper(var1);
  90.       this.aJScriptManager.SetRootObject(this.aWrapperObj);
  91.    }
  92.  
  93.    public JSbxObject GetRoot() {
  94.       return this.aJScriptManager.GetRootObject();
  95.    }
  96.  
  97.    public String GetLastErrorString() {
  98.       return this.aJScriptManager.GetLastError();
  99.    }
  100.  
  101.    public static String GetWatchdogMessage() {
  102.       return "lengthy JavaScript still running. Continue ?";
  103.    }
  104.  
  105.    public void ChangeAndClrRoot(Object var1) {
  106.       if (this.aWrapperObj instanceof JavaScriptWrapperObject) {
  107.          this.aWrapperObj.ClrAllVariables();
  108.          ((JavaScriptWrapperObject)this.aWrapperObj).SetObject(var1);
  109.       } else if (var1 instanceof JScriptWindowObject) {
  110.          ((JScriptWindowObject)var1).ClearGlobalVariables();
  111.       }
  112.  
  113.       this.aJScriptManager.SetRootObject(this.aWrapperObj);
  114.    }
  115.  
  116.    public void StopAllPendingAndNoneRecursiveScripts() {
  117.       JScriptScheduler.StopAllPendingAndNoneRecursiveScripts(this);
  118.    }
  119.  
  120.    public int CreateAndRunModule(String var1, String var2, SJCallByReference_boolean var3, boolean var4) {
  121.       JScriptRunParam var5 = new JScriptRunParam();
  122.       var5.aErrInFirstStmt = var3;
  123.       var5.bDbgFlag = var4;
  124.       return this.CreateAndRunModule(var1, var2, var5);
  125.    }
  126.  
  127.    public int CreateAndRunModule(String var1, String var2, JScriptRunParam var3) {
  128.       try {
  129.          if (this.aJScriptManager != null) {
  130.             int var4 = this.aJScriptManager.CreateAndRunModule_CTOJ(var1, var2 != null ? var2 : "JSMOD_" + this.nNoOfModules++, var3);
  131.             this.CheckErrorCode(var4);
  132.             return var4;
  133.          } else {
  134.             return -3;
  135.          }
  136.       } catch (Throwable var6) {
  137.          String var5 = "WARNING: Exception in JavaScript.CreateAndRunModule()";
  138.          HoldJavaEnvironment.AddToProtocol(var5);
  139.          var5 = "Exception= " + var6;
  140.          HoldJavaEnvironment.AddToProtocol(var5);
  141.          return -1;
  142.       }
  143.    }
  144.  
  145.    public int CreateAndRunModuleAsync(String var1, String var2, int var3) {
  146.       return this.CreateAndRunModuleAsync(var1, var2, var3, false);
  147.    }
  148.  
  149.    public int CreateAndRunModuleAsync(String var1, String var2, int var3, boolean var4) {
  150.       return this.AsyncRun(var1, var2, (Object)null, var3, var4);
  151.    }
  152.  
  153.    public Object DoExecuteSync(String var1, JScriptRunParam var2) {
  154.       int var3 = 0;
  155.  
  156.       try {
  157.          if (this.aJScriptManager != null) {
  158.             if (var2.aModule != null) {
  159.                var2.bRunAsThread = true;
  160.                var3 = this.aJScriptManager.DoRunModSync_CTOJ(var2);
  161.                if (var2.aErrCode != null) {
  162.                   var2.aErrCode.SetValue(var3);
  163.                }
  164.  
  165.                this.CheckErrorCode(var3);
  166.                return var2.aModule;
  167.             }
  168.  
  169.             JScriptModule var4 = new JScriptModule("JSMOD_" + this.nNoOfModules++, var1);
  170.             var2.aModule = var4;
  171.             var2.bRunAsThread = true;
  172.             var2.aThisObj = null;
  173.             var3 = this.aJScriptManager.DoCompileAndRunModSync_CTOJ(var2);
  174.             if (var2.aErrCode != null) {
  175.                var2.aErrCode.SetValue(var3);
  176.             }
  177.  
  178.             this.CheckErrorCode(var3);
  179.             return var4;
  180.          }
  181.       } catch (Throwable var6) {
  182.          String var5 = "WARNING: Exception in JavaScript.DoExecuteSync()";
  183.          HoldJavaEnvironment.AddToProtocol(var5);
  184.          var5 = "Exception= " + var6;
  185.          HoldJavaEnvironment.AddToProtocol(var5);
  186.          if (var2.aErrCode != null) {
  187.             var2.aErrCode.SetValue(-1);
  188.          }
  189.       }
  190.  
  191.       return null;
  192.    }
  193.  
  194.    public Object DoExecuteSync(String var1, Object var2, SJCallByReference_String var3, SJCallByReference_int var4, SJCallByReference_boolean var5, boolean var6) {
  195.       JScriptRunParam var7 = new JScriptRunParam();
  196.       var7.aModule = (JScriptModule)var2;
  197.       var7.aRetStrg = var3;
  198.       var7.aErrCode = var4;
  199.       var7.aErrInFirstStmt = var5;
  200.       var7.bDbgFlag = var6;
  201.       return this.DoExecuteSync(var1, var7);
  202.    }
  203.  
  204.    public int DoExecuteAsync(String var1, Object var2, int var3) {
  205.       return this.DoExecuteAsync(var1, var2, var3, false);
  206.    }
  207.  
  208.    public int DoExecuteAsync(String var1, Object var2, int var3, boolean var4) {
  209.       return this.AsyncRun(var1, (String)null, var2, var3, var4);
  210.    }
  211.  
  212.    private void DoExecute(String var1) throws JSbxExceptionBase {
  213.       if (this.aJScriptManager != null) {
  214.          JScriptModule var2 = this.aJScriptManager.MakeModule(var1);
  215.          var2.SetName("JSMOD_" + this.nNoOfModules++);
  216.          this.aJScriptManager.DoCompileAndRunModAsync(var2, false);
  217.       }
  218.  
  219.    }
  220.  
  221.    public void StartIDE() {
  222.       if (this.aJScriptManager != null) {
  223.          this.bUsedAsIDE = true;
  224.          this.aJScriptManager.CreateUpDateIDEWindow();
  225.          DoDelay(2000);
  226.       }
  227.  
  228.    }
  229.  
  230.    public void DoStopJavaScriptEnvironment() {
  231.       if (this.aJScriptManager != null) {
  232.          int var1 = this.aJScriptManager.GetNoOfRTI();
  233.          if (var1 > 0) {
  234.             HoldJavaEnvironment.AddToProtocol("WARNING: number of RTI = " + var1);
  235.          }
  236.  
  237.          this.aJScriptManager.StopManager();
  238.          this.aJScriptManager.RemoveAllReferences();
  239.          this.aJScriptManager = null;
  240.          this.aThreadGroup = null;
  241.       }
  242.  
  243.    }
  244.  
  245.    private void CheckErrorCode(int var1) {
  246.    }
  247.  
  248.    public static void DoDelay(int var0) {
  249.       try {
  250.          Thread.sleep((long)var0);
  251.       } catch (InterruptedException var1) {
  252.       }
  253.    }
  254.  
  255.    public int AsyncRun(String var1, String var2, Object var3, int var4, boolean var5) {
  256.       JScriptRunAsync var6 = new JScriptRunAsync(this, var1, var2, var3, var4, var5);
  257.       return var6 == null ? -9 : 0;
  258.    }
  259.  
  260.    public native JScriptImageObject CreateImage(int var1, int var2);
  261.  
  262.    public native void DoCallback(int var1, String var2, int var3);
  263.  
  264.    public native void DebugCall(String var1);
  265.  
  266.    public static native String GetWatchdogMessageFromRes();
  267. }
  268.