I’m bad. I guess I have to quickly summarize what I did the last two months…
On the DrJava side, I improved multi-screen behavior and discovered and filed an AWT/Swing bug. Supposedly it has been fixed for 6.0, but I haven’t tested that yet. I added two big new features, “Find All” and “Browser History”, brought the user documentation and quickstart guide up to date, and also committed numerous bugfixes from the SourceForge website.
“Find All” allows the user to collect all matches of a “Find” operation in a region tree panel (like bookmarks). The user can maintain an arbitrary number of these “Find All” result panels at the same time. This turns out to be a tremendous help when searching, because typically you discover another thing you need to search for while you’re already searching for something.
The “Browser History” collects all changes of the current document and puts them in a list with a cursor. Using Alt-Left/Right, the user can browser forward and backward, just like in a web browser.
Dr. Nguyen and I turned the Temperature Calculator from our SIGCSE 2006 workshop into an assignment that will probably be used for Comp 202/212 at some point. We also submitted it to the OOPSLA 2006 Educators Symposium for review. Most of the work for this had already been done, but writing the assignment specs, solution and putting the finishing touches on everything nonetheless took two days.
Now that I have the Linux PC that Corky, my advisor, bought for my office almost working (almost: subversion and audio still doesn’t work), I have started to make everything Linux-compatible. Most things already were, just a few path-related issues had to be straightened out. At the same time, I made the launchers a whole lot more flexible: They now support Java properties as variables, so you can write
%java.class.path% and these strings will get replaced with the values of the properties. The launchers also set a few properties themselves, so the name of the log file can be based on the current directory, the name of the rt.jar file and the class, for example:
I also converted the entire build process to an Ant script. I was just sick of forgetting to compile or re-instrument before running something. The Ant script’s dependencies do that for me now. The Java properties and variables I described above were tremendously helpful here, because now I could write a general XML configuration file and then fill in the actual values from the Ant script. The launchers also do more error checking and highlight invalid entries in red. They even check if the main class to be executed can be found on the class path.