JMV 0.7 Development Status

  • Revised drawTube() so that bonds between different chains are not drawn.
  • Added creator/ directory, with JMVform.html, the JMV applet creator. This allows users to create html for a JMV applet by specifying the parameters they want. The html code is generated in a text area, and users may cut and paste this text into their webpage.
  • Added javascript to check for Java Plug-In to JMV_plugin.html Changed 0.72 to 0.73 in JMV_plugin.html and JMV_noplugin.html.
  • Updated files for JMV 0.73
  • Removed the line from the test applet used to detect the Java PlugIn on IE. It still works correctly, and now we don't need an extra class file.
  • Added code to include HelpBean
  • Added HelpBean. This is a "?" button that will bring up a webpage for the FAQ.(The URL for this page will need to be changed.)
  • Modified javascript to detect the Java Plug-In.
  • If the Java PlugIn is found in the user's system, but Java3D is not found, it will display a static image if one is specified in the Applet's "IMAGE" parameter. It will also display the message box informing the user that Java3D could not be found, along with the button to open the Java3D download site. If no "IMAGE" parameter is specified, then just the message box and button are displayed.
  • Changed the document.applet[0] tag to document.applet.JMVapplet1. Also gave the applet the name 'JMVapplet1'. This allows IE6 to handle displaying an image if it can't find Java.
  • Added check for "FILE" and "IMAGE" parameters to see if they are equal to an empty string ("") instead of just null.
  • Added a "cancel" button to the file chooser bean.
  • Modified the javascript to check for the Java Plug-In mimetype, rather than the name.
  • Modified load_from_biofs_window() to get the correct directory. Previously, it was getting the directory based on the project id number, when it should have been using the directory's id number. (which is what it is using now)
  • Added upper limit for sphere resolution.
  • Added MAX_SPHERE_SUBDIV member for maximum sphere subdivision.
  • Removed and changed some lines that I had put in for debugging when checking for Java3d.
  • Removed TextArea and changed wording on the button.
  • Changed the JMV.html page to display an image if the Java Plug-In is not detected. It uses Javascript to detect the plugin for Netscape or IE, and if it is found, it prints out the Applet code. If the Plug-In is not found, then it prints html for an image (currently a JMV screenshot, we will want to change this), and a message telling the user the Plug-in could not be found, with a link to the download site.
  • Added a "Open molecule window" button when the molecule window is a separate frame.
  • Changed the html code to use the Plugin version 1.3, instead of 1.3.1. This code was generated by Sun's HtmlConverter.
  • @expr `cat util/build.number` + 1 > util/build.number
  • Caught OutOfMemoryError when loading molecule Handle case where trying to revert to a previous molecule & rep fails
  • Added OutOfMemoryError checking when loading a new file to propertyChange().
  • Caught OutOfMemoryError in drawMolecule() Caught OutOfMemoryError in createSceneGraph() Changed redraw() to try to handle OutOfMemoryError better. There are still some issues, though. Changed drawTrace() and drawTube() to only connect CA atoms if they are in the same chain and the same segment. Added titleScreen() function to create the title screen BranchGroup
  • Caught OutOfMemoryError when reading in pdb file. Caught NumberFormatException when reading atom records and secondary structure information
  • Added javadoc comments for min & max coordinate members
  • After a file is selected from the "Browse" dialogue, the file popup window stays +open and displays the selected file name, instead of closing and automatically loading the file.
  • Changed "Utilities" to "Display Options"
  • Removed m_jcbRange_itemChanged() and m_jcbColors_itemChanged() to simplify code.
  • JMV 0.72 Pre-Release (11/2/2001)
    • Made new fixed distribution.
    • Upped version to 0.72
    • Moved ControlBean up next to FileChooserBean, changed its size so text fit properly.
  • JMV 0.71 Pre-Release (11/2/2001)
    • Re-added autoload of 1TIT.
    • Modified the Applet HTML code to work with different versions of the Java Plug-In. This code was generated by the HtmlConverter version 1.3.
    • Added top level Makefile and Announcement file to the src distrib.
    • Added zip file version of distrib target, also translates text files into Windows CR-LF format..
    • Added new "signdist" target to make applet signing and re-packaging easier.
    • Renamed the applet/README to applet/README.TXT for the benefit of Windows users.
    • Folded APPLET_README into the regular README file, and improved the documentation.
    • Updated the JMV applet example page.
    • Updated version numbers in readme files etc.
    • Eliminated old readme file from bean box applet creator.
    • Only distribute the "plugin" version of the example HTML page.
    • The distribution is now built using a single jar file.
    • The distrib target now starts from scratch after doing a clean.
    • Made top level all target just build the source with no distrib targets, and made the top level distrib target run all build + distrib targets.
    • Added tmp dir cleanup to makefiles.
    • Added documentation distribution target.
    • Added top level makefile to control the whole build process.
    • Added Makefile for applet distribution packaging
    • Added new automatic build and distribution capabilities to all of the JMV makefiles.
    • Fixed up the Javadoc build process, added version numbers, and eliminated bugs.
    • Changed title screen to print out version number with Version.getBuild().
    • Changed TB sendusage to send Version.getBuild() for the version number.
    • Don't redraw the molecule on a sphere resolution change if the representation does not contain spheres.
    • Fixed version number reported by the usage monitor.
  • JMV 0.7 Pre-Release (10/30/2001)
    • Added support for loading RCSB PDB entries from HTML pages as an applet parameter.
    • Added a better DNA example structure file.
    • Updated all of the pertinent README files
    • Added information for HEIGHT, WIDTH, WINHEIGHT, WINWIDTH parameters.
    • Added height, width, windowHeight, windowWidth fields for applet height, applet width, molecule window height, molecule window width.
    • In MolecGraphics.java, changed "Loading..." screen to look more consistent with "Calculating..." screen in redraw(). Added 'return' statements to the ends of exceptions caught in MainBean in propertyChange().
    • Changed APPLET_README to contain information on creating the applet html page, including information on the Applet parameters (SEPARATE_WINDOW, FILE, etc) MODIFY_README contains what was previously in APPLET_README, and contains information on adding and modifying Beans in the applet.
    • In MainBean.java, added separate messages for the AccessControlException based on what type of file the user is trying to load. In MolecGraphics.java, added "Loading..." message while loading a new molecule, and "Drawing..." message while creating a new representation.
    • Moved the code from GNUmakefile to Makefile
    • Revised javadoc comments for every file to be more thorough.
    • Added the creation of Version.java, for version information. Added javadoc creation with "doc" option Removed options (windows, applet) and classes (JMVApplet, IndexedSphere) no longer in use.
    • Added util directory and build.number, which contains the number of times the code has been built.
    • Added version number and build date to title screen. Changed LinearFog to ExponentialFog. Caught OutOfMemory Exception in redraw(). Added javadoc documentation for enumerations, etc.
    • Revised interface so it looks better when running in an unsigned applet. It seems that an unsigned applet window contains an extra 'header' at the top saying 'Java Applet Window', which takes up space, leaving less room for the rest of the window elements. This header does not show up when the applet is signed. Now, it looks good in an unsigned applet, but there is extra space in the window in a signed applet.
    • Added full pathname to the "Load from BioFS" window
    • Packaged everything up for Siggraph 2001 demonstrations.
    • Changed propertyChange() so it doesn't try to draw anything if the molecule is null.
    • Fixed a bug where CPK mode wasn't able to change colors due to capabilities not being set to read children on its sphere and cylinder groups.
    • Added website to title screen.
    • Added title screen when first starting applet.
    • Added changes so stereo view looks better. Still could use some work, but a decent approximation for now.
    • Revised test for bond determination to check the squared distance instead of the distance.
    • Cleaned up the code a bit. In MolecGraphics, when a BranchGroup is created for a new molecule, changed it to only set capabilities once.
    • Revised BondSearch to determine bonds based on the radii of both atoms rather than a fixed threshhold. (more like VMD)
    • Disabled backface culling on hollow cylinders. Also changed the position of the DirectionalLight to make the molecule appear better lit.
    • Changed Cylinders to IndexedShapes. Also fixed a few bugs that were introduced in previous checkins so that the sphere sizes and cylinder rotations were correct.
    • Added Chien's advice to use Shape3D's rather than Spheres because of the higher overhead with Spheres. Added IndexedShape.java to store a Shape3D object with an index. TODO: The IndexedShape should also be able to hold the Shape for a Cylinder.
    • Misc code cleanup.
    • When creating new colors for a new color scheme, create Appearances as well, (in an array, 'm_appearanceArray' in ColorCategory) so Appearances can be shared between atoms, rather than being created separately for each atom.
    • Improved coloring method so it's faster. Previously, it recalculated the color array for each atom, now it just does it once.
    • Changed chooser beans with a dropdown menu to have more space between the label and the menu for readability. Changed the FileChooserBean to be a button that brings up the dialog box for a user to input a file or code, or to browse. Started adding some code to detect Java3D, and if it isn't found, alert the users and direct them to Sun's download page.
    • Added support for uncompressed PDB files.
    • Reorganized CVS repository now that we're further along in development.
    • Added a 'distrib' target that builds a tar.gz file containing the necessary source files, annoted with a date in the resulting filename.
    • HTML instructions for installing Java3D.
    • Added .cvsignore to ignore .class files
    • Reduced the font sizes in the chooser beans Added an error message to PDBChooser bean if the file cannot be found. in ColorChooserBean, changed "Range colors" to "Color Gradient" In Makefile, added an option "allbeans", which puts all the class files into one bean. See: http://www.ks.uiuc.edu/~mbach/JMV/beansApplet/beansApplet_plugin.html for an example.
    • Got rid of PickingBehavior for now. Revised camera zooming so molecule fits a little better on the screen.
    • Molecule now contains its own max/min values for x,y,z coordinates. Added JMVApplet to main.jar in Makefile so it can be used in BioFS, etc.
    • Corrected an error where getMolecule() was taking a string. Changed it now to take an InputStream instead.
    • Changed PdbReader to take an InputStream as input instead of a String.
    • Changed the Chooser Beans to use the selected Option's id rather than the index of the Option in the Choice box.
    • Changed ColorChooserBean, StereoChooserBean to implement OptionsHolder and Options.
    • Added new coloring methods for "Segname", "Chain", and "Resname"
    • Fixed bug where CPK representation wasn't showing up. We were trying to cast a BranchGroup to a derived class, an IndexedBranchGroup.
    • Rewrote the Molecule class to use NameLists instead of hash tables, in preparation for adding new coloring methods.
    • fixed NameList internal TableEntry class inclusion in JAR files.
    • Added CPK representation similar to the one used in VMD.
    • Updated Makefile to print messages when building jar files.
    • Updated Makefile to remove code that won't work on everybody's CVS tree.
    • Added NameList class similar to the one used by VMD.
    • Added BranchGroups with unique ID's associated with them.
    • Added a new "bonds" representation similar to the one provided in VMD.
    • Flattened intermediate structure arrays for improved performance and reduced temporary memory requirements.
    • Significant cleanup of MolecGraphics, eliminating duplication of code for coloring representations, re-using as much as possible. Also got rid of old debugging/dead-code.
    • Implemented indexed spheres which add an atom index to each rendered sphere, for coloring and other purposes.
    • Ported the TBSoft code to Java, and added hooks in JMV to call it.
    • updated comments in bond search code
    • New error dialog boxes when JMV encounters badly formatted PDB files, empty files, or when the user attempts to load something that just isn't even a PDB file at all. Also improved sanity checking in various parts of the code.
    • Improved user feedback when error conditions occur, added handling for incorrectly formatted PDB files, or situations where no valid data was loaded from their file.
    • Improved naming of buttons, labels in GUI, as per comments received in review session today.
    • Updated startup code to request a stereo-capable display mode/visual.
    • Updated JMVApplet code to take parameters. The JMVApplet.class and main.jar must be included in the same directory for the applet to work.
    • New stereo chooserbean, moved Java3D canvas so its a member and can be re-configured later on for stereo etc.
    • Added first half of stereoscopic display code.
    • Updated PDB chooser to use a 4 character text field for the PDB accession code input area.
    • Fixed static initializers on Java3D branch groups etc, which were causing exceptions when running on Linux, or in certain cases on Solaris.
    • Implemented FTP download in the PdbReader, for new RCSB accession code feature.
    • Implemented a simple applet wrapper for the JMV code.
    • Implemented a PDBChooserBean that takes an RCSB PDB accession code and translates it into a ftp:// URL that will download the PDB file from the main RCSB ftp server.
    • More graphics code work. Eliminated comments about things we've now fixed with regard to storing bond information in the molecule. Also changed the code in the changeColor method to use the stored bond information rather than regenerating it again. Also did some cleanup of dead code and unused variables.
    • Did some cleanup, performance improvements from removal of useless code, and added commentary next to some stuff that might impact performance, all in the graphics code.
    • improved checking when parsing "ATOM" and "HETATOM" lines.
    • added missing classes to jar files.
    • Change code to store the calculated bond lists in the molecule object rather than recalculating them from scratch every time reps are changed.
    • Improved molecule character identifier extraction code
    • eliminated dead code.
    • Rewrote coloring code, moving things into the ColorCategory classes and out of the MolecGraphics classes.
    • Changed 'switch' statement in getAtomCharacter() to an if() statement that checks a character range.
    • added an error dialog when the user tries to open a molecule that isn't there
    • replaced if/else constructs with switch statements for more efficient coloring of atoms
    • added code to determine default atom radius
    • re-worked coloring code
    • created the jmv web pages, updated with new info on running the demo
  • First JMV Project discussions (November, 2000)

Please email any questions to jmv@ks.uiuc.edu.