## Changes in 2.0.0

- Due to an bug in previous versions, you needed to start the Data Explorer user interface and the Data Explorer executive separately. That bug has been fixed. You should load nets saved with an earlier version and save them again.
- DXServer will use a single dxexec to service any number of connected browsers. This should enhance the scalability of Java Explorer. The startserver script understands a -session command line argument which allows you to configure the number of dxexecs which DXServer will start. You'll probably want to user multiple sessions only if you have multiple machines pointed to by your dxserver.hosts.
- Direct interaction uses visual cues which are similar to those in the Data Explorer user interface such as a rotation gnomon.
- The -memory argument now defaults to no explicit limit on the amount dxexec will allocate. This is the norm when using Data Explorer and should provide reasonable behavior given the default number of sessions which is 1.
- Now it should be easy to install web pages in directories of your choosing rather than having to use installDir/java/htmlpages. Several changes to the way dxui generates makefiles and html files and to the startserver script support this change. You may find it most convenient to have dxui generate a new makefile and html file for your existing nets in order to take advantage of these changes. Files generated with an earlier version of Java Explorer will continue to work, so no action is really required on your part.
- The issue to be aware and careful of is applets which share a codebase will be allowed to interoperate. From now on dxui will generate applet tags with a codebase="../". Then individual jar files are located relative to that codebase. The obvious alternative is an applet tag with a relative pathname in the code parameter which isn't legal.

- In addition to gif images and vrml worlds, dx objects can now be transfered into a web page through Java Explorer. This feature uses an ActiveX component in the web page and therefore works in Internet Explorer and not in Netscape. The ActiveX component uses a copy of Data Explorer installed on the machine which runs the browser in order to render its image. This also requires adding tear.exe to your path.

- This technique should be useful for web pages which benefit from frequent camera manipulation.

- The net files you save for use with DXServer, have always used a special version of the Image macro. Now, the macro uses an internal cache setting of CACHE_LAST which should save memory.

- This 2.0.0 release begins adding the ability to use a gui builder such as VisualAge to combine Java Explorer's machine generated java code with customized gui interfaces for your web pages. Future releases will include examples of such applets. Combining the capabilites of Java Explorer with VisualAge involves importing Java Explorer's jar file, making an applet which subclasses dx.net.DXLinkApplication, and setting some of Java Explorer's properties. The documentation you would need for this is missing, so it's virtually impossible to do.
- A setting in your $HOME/DX file - DX*htmlDir - should be changed so that it does not include the htmlpages directory. For example:
  `DX*htmlDir: /usr/http/java
  `
- Two new settings in $HOME/DX are now used. They are DX*userHtmlDir and DX*userJarFile. The default settings are user and user.jar respectively. Consequently, dxui will generate makefiles which compile applets into user.jar and install user.jar into htmlDir/userHtmlDir. By default, all web pages generated by dxui will not be installed into installDir/java/htmlpages. Instead they'll be installed into a directory beside htmlpages.

## Changes in 1.0.4

- Shift+Mouse Click in any Java Explorer Image applet will cause the applet to pop its image up in a new browser window. This enables the user to save the image.
- Java Explorer's web page generation mechanism will now automatically generate applet tags in the .html file which result in the content produced by the DXLOutput tool being displayed in an applet running in the browser. Examples of this mechanism in place are MutualFund and Thunderstorm Simulation.
- The dx.net package in Java Explorer includes the dx.net.DXLinkHandler interface which an applet can implement in order to handle output produced by a DXLOutput tool in a net.
- A new menu in the 'Execution' panel provides a selection of views - Front, Back, Left, Right, etc.

## Changes from 1.0.3 to 1.0.4

- Data-driven selector and selector list interactors were malfunctioning on the second execution following receipt of new input values for stringdata and valuelist inputs. They would continue to malfunction until the user selected a new value in the interactor. The specific symptom was that the selector or selector list tool would output a value from its most recent user input or from the stored net if the user had never entered a value.
- The mechanism by which DXServer erases old gif files malfunctioned on the pc with an httpd program causing DXServer to erase these files too soon. As a result, the browser's Java Console would contain error messages indicating that AppletClient couldn't load <filename>.gif.

## Changes from 1.0.2 to 1.0.3

- A bug in Netscape 4.05 and earlier versions prevented data-driven selector interactors from working properly. Since that bug is fixed in Netscape 4.06, the Java Explorer applets attempt to distinguish between 4.06 and other versions in handling these interactors at run time. If Java Explorer mistakenly identifies a pre-4.06 browser as a 4.06 browser, then the Java Explorer applet will crash when it handles an option-menu style data-driven selector interactor message. There will be a corresponding message in the browser's Java Console.
- The distributed execution mechanism did not work using the SGI version of DXServer due to a syntax error in the remote shell script used to spawn dx sessions. The DXServers for the other platforms experienced protocol errors due to dropped data packets.
- Java Explorer obeys the Image tool's interaction mode input parameter. You may include an interactor in your visualization to control the parameter. If the input is tab down then Java Explorer may overwrite it. Java Explorer will obey the value of the input if the value is one of "none", "rotate", "pick", "panzoom", or "zoom". If the value is "panzoom", then Java Explorer will enter its pan mode.
- Java Explorer's Image and Pick menus in the Execution panel will be included in the user interface if there are 2 or more image or pick tools respectively. Previously these menus were included if there was 1 image tool or pick tool.
- Java Explorer will honor the image tool's interactionmode input parameter value saved in a .net file. In other words if you save a visual program with the Image tool in Pick or Rotate mode, then Java Explorer will be in Pick or Rotate mode (respectively) when the browser hits the web page resulting from that net.
- A bug in DXServer in 1.0.2 and earlier versions in which the DXServer entered an infinite loop if dxexec crashed is now fixed.
- Java Explorer now uses Netscape's Document Object Model for locating image window destinations within the web page only for vrml output and not for image output.

## Changes from 1.0.0 to 1.0.2

- All .class files required by Java Explorer are now in one jar file. As a result the time taken by a browser to load Java Explorer's classes over the internet should be reasonable.
- Support for Data Explorer's sequencer is now included. If your visual program contains multiple images tools, 2 or more of which should sequence together, then set the groupName input of their associated WebOptions tools to a common string. The Java Explorer sequencer works differently from the Data Explorer sequencer in that it cycles the Data Explorer sequencer through one time, then replays images from a local cache for good performance. The Data Explorer sequencer does not replay images from an image cache. Instead it actually reexecutes the net with every step, relying on data caching in the executive for good performance. The differences which would be obvious to an end user are:
  1. When the Java Explorer sequencer has finished one cycle the green execution light goes off, unlike in Data Explorer.
  If an interactor value is changed while Java Explorer is replaying images from its cache, the change will not be reflected in the image unless the user selects Sequence in the Mode menu again.
- Camera interaction modes now operate in the coordinate space of the viewer.
- Camera interaction modes allow you to stroke in the image with the mouse.
- DXLExitDX now successfully terminates dxexec in the pc version of DXServer.
- The input types to WebOptions have changed. In the previous release, the inputs were all of type "value list or string list or object". Now the mdf information for WebOptions contains appropriate types for all the inputs. As a result you may get warning messages from dxui when loading an older net saved with a WebOptions. If you do get such a warning, then you must check the values entered in the configuration dialog for WebOptions. It's likely that one or more values were lost.
- Some interfaces used in the java code generated by dxui have changed. In order to use nets saved with the previous version of Java Explorer with this version, you must do the following:
  1. Remove or hide the old version of WebOptions (found in weboptionsmac.net).
  2. Add the new version found in installDir/java/server/dxmacros to your DXMACROS.
  3. Load and visual program then save it using 'File/Save'.
  4. Save a new java file using 'Edit/Java/Net To Applet'.
- Dxui used to write the files comprising a web page into its current working directory. Now it writes them into the same directory as the .net file.
- So that you aren't required to hand edit the makefile generated by 'Edit/Java/Save As Web Page' you may make settings for the following in $HOME/DX:
  - DX*cosmoDir: /some/where/vrml

    > A value is required for cosmoDir only if you're generating web pages which use vrml. The files pointed to by cosmoDir are supplied with the cosmo plug-in.

  - DX*dxJarFile: installDir/java/htmlpages/dx.jar
  - DX*jdkDir: /usr/jdk_base/lib/classes.zip

    > This location depends on your installation of java.

  - DX*htmlDir: installDir/java/htmlpages
  - DX*serverDir: installDir/java/server
- You may produce an Orbit and use it in a web page without using a connection to DXServer. To do this, simply follow the instructions for producing a Java Explorer web page. Then remove the applet tag pointing to myprog.class from the .html file.
- A display in orbit mode now gives the user an indication that an orbit is available by changing the cursor. However, this works only in Internet Explorer.