Work to date
Everything here is still under construction. Nothing is guaranteed to work. We are particularly interested in criticisms of UI design and coding style.
If you run into any issues with JES, please post them on the Bug List.
To run JES, download all of the files listed below and place them in one directory. Then simply type in 'Jython JESProgram.py' from that directory. The files containted in JESHelp.zip should be put in a subdirectory of the JES directory called 'JESHelp'.
The new official way to upload JES files is to create a ZIP file of
the latest code, and upload that. (I'm spending too much time
renaming file like JESProgram.22.py, and such :) )
This is the latest version of JES
Do we want JESDebugWindow to distinguish between global and local
We don't want JESDebugWindow to display variables that the students don't need to know about. We also don't want to try and display internal objects without __class__ attributes.
- What do we want to show? How should we implement the blocking of undesirable things? IE, a list of things that we allow or a list of things that we block
- I've worked around the __class__attribute by wrapping the relevant code in a try/except block. I let the code generate an AttributeError, and then ignore that error. That object is not not included in the list. That seems good enough for the moment. Do we want that happening in the finished product?
30 July 2002
- Added simple user manual (in the form of an HTML help file), which is included in the JES.zip. The new file is called 'How to use JES.html'.
- added comments to JESCommandWindow
27 July 2002
- More code cleanup
- Uploaded the simple JES Installation Guide file
18 July 2002
- Updated JESCommandWindow and JESInterpreter
- Fixed the problem Dr. Guzdial was having with loading a file in the middle of typing "hello".
- When you try to type a newline in the command window somewhere you aren't allowed to type, nothing happens and the cursor doesn't move.
- Choosing cut in the command window somewhere you aren't allowed to cut will now copy.
- Updated JESProgram, JESUI, JESEditor, and JESEditorDocument to enable the prompting to save a file before loading.
15 July 2002
- JESProgram.py modified, save now calls saveAs if the file has not been named.
14 July 2002
- Splitter bar added to JESUI to allow the command window size to be changed.
12 July 2002
- Updated JESCommandWindow. Now multiline pastes will only paste the first line of code in the command window. Code entered after that should execute fine.
- A change was made in JESInterpreter, which I think was to correct a cursor problem, and now it's causing problems in the command window. I added it to the bug list.
11 July 2002
- The error Dr. Guzdial noticed has been fixed.
- The stop button works.
10 July 2002
JESProgram has been modified. It should now no longer throw IO Exceptions when the user atte,tps to save a file that has no name. If the user selects the 'Save' option, and the file has no name, nothing will happen. The user must select 'Save As' to save the file.
If the file already has a name, it should not be a problem, also, comments have been added to the functions.
10 July 2002
- Updated JESCommandWindow. Fixed the cut and paste overrides, so now you can cut, copy, and paste between the two text panes.
- Updated JESEditorDocument. Fixed problem where keyword highlighing doesn't highlight words if they are preceeded with a tab.
7 July 2002
Performed a preliminary code cleanup on all of JES code:
- Added skeleton function headers to all of the ones that didn't already have headers
- Commented some functions that I could easily tell what was going on
- Made sure that existing headers all are in the same format
- Made sure that all line are within 80 characters (except for long messages in JESConstants)
6 July 2002
HTML Help Browser is up! The code has been fixed to allow the html browser to funcion. JESUI and JESProgram have both been modified. Html_Browser.py was added. I also included a simple test directory as a zip file, called JESHelp.zip. Download it into the same directory as the jython executable, unzip it there. It should give you a directory named JESHelp with 3 sample html files in it. Verifiy this was done correctly. If this folder does not exist, or if there are no html files in the folder, then the browser will not operate correctly. It works fine on my Windows box, I would appreciate it if someone would test it on Linux and Mac. Also, I chose the jython directory since that is where a new file pointer is located upon creation. It can be changed to root/some_specified_directory if we choose. This would probably be better, but we need to decide on some type of install directory for the help files. Thanks, and remeber to let me know of any problems.
3 July 2002
- Action.py changed to JESAction.py
2 July 2002
- system saves AND tabnannies
- the LOAD button works, but I don't handle file errors completly correctly
- added JESCommandWindowDocument.
- updated JESCommandWindow:
- set all text except current command line as uneditable.
- cleaned up showText and showError
1 July 2002
- Updated JESUI with code to add help menu options.
- JESUI actionlistener calls openBrower to open help files when they are selected in help menu.
30 June 2002
- make checkTabs return T/F
- tabnanny will probably work after all (I'm a moron) the call checkTabs() works in my tests, but I don't think we're loading files yet, so I haven't really tested it. it sends its output to the command window
- the file tabnanny.py is the tabnanny of python 2.1. it has to be included
- showVars() works now, but we have a cluttered variable-space
- don't know how to handle errors in loading the preprocessing file
- JESDebugWindowWrapper sits around JESDebugWindow, and keeps a count of the number of debug windows that have been opened.
- JESOutputBuffer was misnamed. It is now called JESStdOutputBuffer it is not a general output buffer, but only capures stdout
- Updated JESAbout class with some comments and cleaned up code.
28 June 2002
- tabnanny.py is not part of jython. I would assume that porting python's tabnanny to jython must be hard, or the jython folks would have done it. I'll look in to this.
- Fixed the problem of '5 + 5' not printing '10'
- Now returns our error messages instead of default ones
- Added preprocessing code to the load command.
- New file JESPreprocessing.py, where the preprocessing code will be stored
- Updated JESCommandWindow so it accepts all multiline commands (as far as I can tell) and performs cut, copy, paste, and undo functions.
27 June 2002
- Fixed editor so that it doesn't do word wrapping anymore.
- Updated GUI so that it shows the current row and column that the cursor is on in the editor window.
- Minor code cleanup in JESUI class, removed todo comments that have been taken care of.
Ok, I put up a new copy of JESProgram.py. This one should allow full functionality for opening, saving and creating new files. Let me know if anyone runs accross any bugs. Thanks.
26 June 2002
- JESCommandWindow updated, accepting single line and multiline commands and formatting them into a string for JESInterpreter.
23 June 2002
- Updated JESEditor with code to highlight syntax.
- Added a new class, JESEditorDocument to help out with syntax highlighting.
- Added undo functionality to editor.
- Added error line highlighting to editor window
I'm now working on JESDebugWindow.
- JESInterpreter does everything but displaying the good error messages. And it dosen't do any kind of tab checking on the loaded user's code. I don't know what we wanted.
It needs to be able to:
- Filter out variables that don't have __class__ attributes and
- Display more understandable names for the class field.
21 June 2002
- JESCommandWindow updated. I had to add an action class to define the keymap. The command window is reading in text every time the newline character is entered, but does not yet process the input.
20 June 2002
- I've finished part of JESInterperter. It does not return the "clean" error messages.
- We didn't discuss this, but I don't like having more that one class per file. I've added the JESThread class, which handles the execution of the user's code in its own thread, and JESOutputBuffer. Jython allows us to overwrite standard output. I do this (temporarily) to capture the user's output from JESThread. JESOutputBuffer is the class where that happens.
20 June 2002
- JESProgram updated with opening and saving functions, file opening and closing is bugged.
17 June 2002
- JESUI updated with comments and promptSave code.
Link to this Page
- JES Development last edited on 29 October 2002 at 7:38 pm by 1Cust128.tnt4.atl4.da.uu.net