From: Boudewijn R. <bo...@re...> - 2000-12-04 13:15:02
|
I've got the console working - even if I still have to hack Actions.py to be able to switch back to strong security, so now I've started to integrate my application interface in the console. However, this is a first for me, and I'm not an experienced Java developer, so I wanted to ask you all to look at my solution, and give criticism (like: this is a hack! It's unsupported! Don't do it! ;-). What I've done is this: All functionality to the core application goes via an adapter. There's already a Swing gui, so that was easy. I've added an extra parameter to the constructor of the console, where I put the adapter object: class Console (Object): def __init__(self, adapter=None, adapterName=""): "@sig public Console(Object adapter, java.lang.String adapterName)" self.locals = {} if adapter!=None: self.locals[adapterName]=adapter I've given the signature Object, so I can reuse the console for other adapters - this is the point where I'm not sure. I can access the interface from the Jython prompt, that's true. From Java I call it like this: Console console=new Console(managementGuiAdapter, "managementAdapter"); JScrollPane pane=new JScrollPane(console.getTextPane()); console.write("Tryllian AFC 1.5 Habitat Management Console\n" + "Uses Jython technology.\n" ,"output"); console.capturePythonOutput(); console.getTextPane().requestFocus(); console.newInput(); getContentPane().add(pane); And everything seems nice - but is it, really? Boudewijn Rempt | http://www.valdyas.org |
From: <bc...@wo...> - 2000-12-04 23:15:10
|
[Boudewijn Rempt] >I've got the console working - even if I still have to hack Actions.py >to be able to switch back to strong security, so now I've started to >integrate my application interface in the console. However, this is a >first for me, and I'm not an experienced Java developer, so I wanted to >ask you all to look at my solution, and give criticism (like: this is >a hack! It's unsupported! Don't do it! ;-). I hope you can make use of: This is cool! It is intended to used this way! Just do it! >What I've done is this: > >All functionality to the core application goes via an adapter. There's >already a Swing gui, so that was easy. > >I've added an extra parameter to the constructor of the console, where >I put the adapter object: > >class Console (Object): > def __init__(self, adapter=None, adapterName=""): > "@sig public Console(Object adapter, java.lang.String adapterName)" > self.locals = {} > if adapter!=None: > self.locals[adapterName]=adapter > >I've given the signature Object, so I can reuse the console for other >adapters - this is the point where I'm not sure. If you take a look at at org/python/util/PythonInterpreter and its set() method you will see that it too takes an Object as a generic value. public void set(String name, Object value) { ... } This method is solving exactly the same problem of setting a local variable in a python namespace. >I can access the >interface from the Jython prompt, that's true. > >From Java I call it like this: > > Console console=new Console(managementGuiAdapter, "managementAdapter"); > JScrollPane pane=new JScrollPane(console.getTextPane()); > console.write("Tryllian AFC 1.5 Habitat Management Console\n" + > "Uses Jython technology.\n" > ,"output"); > console.capturePythonOutput(); > console.getTextPane().requestFocus(); > console.newInput(); > getContentPane().add(pane); > >And everything seems nice - but is it, really? Yes. Very nice. regards, finn |
From: Boudewijn R. <bo...@re...> - 2000-12-05 09:37:08
|
On Mon, 4 Dec 2000, Finn Bock wrote: > > I hope you can make use of: This is cool! It is intended to used this > way! Just do it! > <...> > > Yes. Very nice. > Thanks for those kind words... It means that I can now almost safely say that Tryllian (http://www.tryllian.com) will use Jython as the scripting extension of their management tool for the habitat servers for the mobile, intelligent agents ;-). Boudewijn Rempt | http://www.valdyas.org |
From: Mats W. <ma...@la...> - 2000-12-09 03:56:31
|
Pretty new to Jython, and faced with having to write something sensible about it (for a class I'm putting together). Sigh. Anyway, looking over the demo programs that (still) come with the current alpha, and I can't get the example in "javaclasses" to work. The output trace is attached. Any suggestions welcomed... Mats Wichmann |
From: <bc...@wo...> - 2000-12-09 18:58:45
|
[Mats Wichmann] >Pretty new to Jython, and faced with having to write something >sensible about it (for a class I'm putting together). Sigh. > >Anyway, looking over the demo programs that (still) come with >the current alpha, and I can't get the example in "javaclasses" >to work. The output trace is attached. Any suggestions >welcomed... >Command (as described in readme.txt): >jythonc -package pygraph Graph.py >========= > >Warning: -package is deprecated, use --package Thanks for the feedback. I'll update the readme.txt to use the --package option. >[...] > >Compiling .java to .class... >Compiling with args: ['C:\\PROGRAM FILES\\JAVASOFT\\JRE\\1.3\\bin\\javac', ... >1 java.io.IOException: CreateProcess: "C:\PROGRAM FILES\JAVASOFT\JRE\1.3\bin\javac" ... This is most likely because you used the JRE to install Jython. The JRE does not include a java compiler. If the JRE is the only JVM you have installed, you will need to install the full JDK. If you have installed the full JDK already, you may need to specify the full path to the JDK java.exe when installing Jython, ie: c:\java\jdk1.3\bin\java -cp . Jython-20a1 where c:\java is the path you specified when you installed the JDK. I have very recently added additional information to the install.html page which hopefully will help other from falling into the same problems. regards, finn |