Java prog opens nb in Mathematica frontend which prompts for input - fails in background
- To: mathgroup at smc.vnet.net
- Subject: [mg39491] Java prog opens nb in Mathematica frontend which prompts for input - fails in background
- From: Knud Steven Knudsen <ksk at ieee.org>
- Date: Wed, 19 Feb 2003 04:42:25 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Hi, I apologize for the rather complicated subject; it's a problem that's hard to describe... I have a Java program that links to Mathematica to start up a notebook. The Java program is acting as a project manager for legacy Mathematica notebooks. When a user creates a new project using the Java program, it links to Mathematica, creates and evaluates a temporary notebook (I like the notebook since then I have a hard-record to look at if something goes wrong...). As part of the temporary notebook evaluation, a custom function is called which prompts for user input. The problem arises the first time the link is made to Mathematica from the Java program. When I first start the Java program, it links immediately to Mathematica and opens and executes an initialization notebook using the front end (UseFrontEnd[]). Thus, Mathematica is running in the background. Then, if I initiate a new project in the Java program, it should talk to Mathematica and create and execute the aforementioned temporary notebook. I can see it create the notebook, select all its cells and try to evaluate them, but I don't see the input prompt. However, if I start the Java program and, before initiating a new project, I bring Mathematica to the foreground and then switch back to the Java program, I can initiate a new project and get the input prompt to come up. After that, I can repeat the project initiation steps and have success regardless of "how far in the background" Mathematica is put. Does this sound familiar to anyone? I suspect that I have some kind of blocking IO call. It's interesting in the failure scenario that it doesn't matter if I then bring Mathematica to the foreground and try again to initiate a project, it will never work... no matter what I do. One possble solution would be to have my Java program bring Mathematica to the foreground right after the initial kernel link is made. This seems kludgey and may be a problem under different OSes. BTW, I'm running Mathematica 4.1 under Win2K. JDK1.3.x. thanks -- Knud Steven Knudsen <ksk at ieee.org>