
Feel free to add to this file any time! Don't worry about sync problems.
Put new items at top, please.

Jmol.___JSVDate="$Date: 2016-09-19 22:54:52 +0200 (Mon, 19 Sep 2016) $"
Jmol.___JSVSvnRev="$LastChangedRevision: 1735 $"
Jmol.___JSVVersion="14.2.7"

Note:
security.fileuri.strict_origin_policy
When local HTML files (e.g., those located on your hard drive) are loaded into Firefox,
the scripts and links within have restrictions on what they can see and do. 
Those restrictions are determined by the following controls.
Possible values and their effects:
True
Local documents have access to other local documents in the same directory and in subdirectories, but not directory listings. (Default)

False
Local documents have access to all other local documents, including directory listings.

Recommended settings
If you do development with local files and need to be able to retrieve other local files, 
you will need to set this preference to false. Otherwise, leaving it set to true offers the most security.

To set for Firefox, type about:config as the address then search for security.fileuri.strict_origin_policy
For Chrome, add the --allow-file-access-from-files command line switch to enable it work

todo: 
 - Jmol Application Tools...Spectrum menu issue with EPFL returning a new 2D structure and links now not synched
 - enhancement: for  BLOCK files generate a page for each spectrum when exporting PDF

 - enhancement: when displaying peaks for a spectrum that has links available suggest that from the peak dialog box 
 that clicking on a peak will highlight appropriately in JSmol/JSME

 - get integrations to stay in view sets.
 
BH  09/19/2016
 - fix for UTF-8 strings to byte[]

BH  05/10/2016
 - update for 13C NMR simulation from NMRDB
    
RL 01/06/2016
 -update About Dialog Box for 2016
 
BH 12/21/2015
 -bug fix: for inefficient array handling for labels 

BH 8/21/2015
-set spectrum.setHZtoPPM(true) for simulations from NMRDB

BH 3/31/2015
-modification to JSInterface 
 
BH 2/24/2015
-GenericPlatform update 
 
BH 11/9/2014
-update to GIFencoder 

BH 10/4/2014 
-fix: dragging over integration not filling spectrum properly

BH 7/13/2014
-code: refactoring of HTML5 Jmol, JSpecView, and AstexViewer for cleaner
 interaction with web-page based JavaScript. All interactions now 
 go directly through JS



BH 6/27/2014
-fix: JavaScript addHighlight  not working properly
-new feature: HIGHLIGHT OFF
-new feature: HIGHLIGHT x1 x2
-new feature: HIGHLIGHT x1 x2 OFF
-new feature: HIGHLIGHT x1 x2 r g b
-new feature: HIGHLIGHT x1 x2 r g b a
  - max for a is 150
  - r g b a may be fractional [0,1] or in the range (1,256)

BH 4/4/2014
-fix: JDX reading of older Chime-related ##PEAKASSIGNMENTS records
 
BH and RJL  3/31/2014 3:30
-fix: colour prediction from visible spectrum - new equations to CIE lines generated from Fityk 

BH 3/27/2014  9AM
-peak picking shown as % of max appropriate only for NMR not UV/Vis etc.
 
BH 3/5/2014  1:11:00 AM
-fix: JSpecView loading simulation now compatible with synced applets
-new feature: JSpecView and Jmol read ACD/Labs assigned spectra block JDX files.
-fix: drag/drop not working for JSV applet
 
BH 2/11/2014 7:26:00 AM
-cleaned up dialog synchronization in Java
-set so that measurements only lock in when measurements dialog is open

-fix for a BLOCK file view 2 spectra eg IR and MS 1.1 and 1.4 then try close selected (gone from dialog but not display)
 then try to open an H NMR spectrum 1.2 - nothing happens - FIXED 24 Jan 2014
-fix for JSpecView/Java + JSME crashed Firefox during applet loading. (just went away??)

BH 1/23/2014 5:12:00 PM 
-added close SIMULATIONS
-added close VIEWS
-added DEFAULTLOADSCRIPT "script..." 
-added DEFAULTNMRNORMALIZATION x.x

BH 1/13/2014 8:24:33 PM 
-fix for baseline dropping below bottom pixel
-fix for file-not-found or file-not-recognized error message not understandable.
-fix for PDF file creation broken

new feature: show NMR taps into NMRDB directly
 -- for now, application only

in preparation for JavaScript version:

-- 12/05/2013 BH
Generating corejsv.js
  -- using build_test.xml
  -- incrementally adding classes to see where the problems are.

-- 11/29/2013 BH
 *Boolean.toString(boolean) removed -- disambigifying 

-- 11/26/2013 BH 
 Secure code signing working smoothly

 *JavaScript J2S compiler error does not coerce int += float to integer

 *Make all public inner classes top-level. Problem is with loading process, specifically on Macs

 
-- 10/30/2013 BH
 * exception.getMessage() --> exception.toString();
 * Object.getClass().getResource() returns a simple relative filename, not a URL
 -- all exports, including CML, AML, JDX, PNG, JPG (as PNG), and PDF working
 -- CLOSE ALL fixed
 
-- 10/29/2013 BH
 -- PRINT PDF working in JavaScript HTML5-only version of JSpecView
 -- !!!MISSION ACCOMPLISHED!!!!
 
-- 10/28/2013 BH
 -- adds PRINT PDF command
 -- iText PDF creation classes (1.2M) replaced with simplified custom classes (17K) :)
 -- JSpecView signed applet now only 631K (was 1832K);
 -- efficient PDF creation includes 2D NMR; tested in application only; see jspecview.export.PdfCreator
 -- Test.java allows decoding of PDF file streams
 
-- 10/24/2013 BH
 -- removes load dependence on ZIP classes
 -- testjsv_mol.htm working
 -- 2D NMR added
 -- no toolbar
 -- no PDF creation
 -- IR T/A toggle fixed
 -- NMR peak list table is cut off on right side

-- 10/20/2013 BH
 measurements fixed
 integration fixed
 
-- 10/19/2013 BH  --  3 weeks!
JSpecView/HTML5 preliminary development complete
 -- (modifications in Jmol, JSmol, JSpecView, JSpecViewLib)
 -- functional as HTML5-only application
 -- pop-up menu enabled
 -- dialogs enabled
 -- can simulate 1H spectra in the applet
 -- see http://chemapps.stolaf.edu/jmol/jsmol/jsv.htm
 -- no 2D NMR (see 10/24)
 -- no toolbar
 -- no PDF creation
 -- buildtojs.xml working
 -- measurements are still messed up
 -- ready for testing
 * double[][] data = new double[size()][];  not allowed. Use double[][] data = ArrayUtil.
 *   private final static Boolean[] useNumberLocalization = new Boolean[];
 * {
 *   useNumberLocalization[0] = Boolean.TRUE;
 * }
 * needs to be recast to
 *    private final static Boolean[] useNumberLocalization = new Boolean[] { Boolean.TRUE };
 *
 * Integer.parseInt(s, 16) not implemented; use Parser.parseIntRadix(s, 16);
 *
 -- sharper lines using context.translate(0.5, 0.5)
 -- search box allows !command entry, as for Jmol
 -- command BACKGROUND #xxxxxx fixed
 
-- 10/18/2013 BH
bug fix in coretop.js: Float.valueOf(Float.NaN).valueOf() === Float.NaN, not an error
javajs methods added to core.z.js
bug found in J.api.Interface.getInterface:
  return x.instanceOf();
returns an object, but 
  return (x == null ? null : x.instanceOf()); 
returns a string, but only when compiled within Eclipse 4.2 on Robert Lancashire's machine, 
not on mine, with 3.6. 

Update needed for more recent Eclipse java2script compilers. They are available from:
http://dev.zhourenjian.com/j2s/j2s-2.0.0-20131019-eclipse-4.3.zip
http://dev.zhourenjian.com/j2s/j2s-2.0.0-20131019-eclipse-4.2.zip
http://dev.zhourenjian.com/j2s/j2s-2.0.0-20131019-eclipse-3.8.zip
http://dev.zhourenjian.com/j2s/j2s-2.0.0-20131019-eclipse-3.7.zip
http://dev.zhourenjian.com/j2s/j2s-2.0.0-20131019-eclipse-3.6.zip
http://dev.zhourenjian.com/j2s/j2s-2.0.0-20131019-eclipse-3.5.zip

-- 10/17/2013 BH
javajs created, incorporating awt, swing, and util
dialogs working, mouse callbacks working; draggable placement working
*ArrayList.remove(obj) --> ArrayList.removeObj(obj) [Implemented with modified java.util.ArrayList]

-- 10/16/2013 BH
Dialog JavaScript Swing development complete

-- 10/15/2013 BH
Dialog JavaScript Swing replacement first try (note, Java dialogs are being sent to the console as JavaScript for testing

-- 10/14/2013 BH
Complete rewrite of dialogs.
 -IntegrationDialog, MeasurementDialog, OverlayLegendDialog, PeakListDialog, ViewsDialog all AWT-free
 -DialogManager is AWT-free and coordinates all communication
 -DialogHelper is used to create dialogs
 -Event communication even in AWT is via a URL passed to JSViewer.runScript: 
    "event://DIALOG_ID?&id=EVENT_ID&DATA..."
 -To implement in JavaScript we only need to create all methods in JsDialogManager and JsDialog
   
-- 10/12/2013 BH
Fixed character translation issues in decompressor due to bug in Double.valueOf(String) in coretop.js
*note: In Java ('-' == 45) but in JavaScript it does not. J2S does not necessarily take care of this. 
Further disambiguation
Added second top-level canvas with transparent highlights. Excellent speed now.
[working well; still not fully tested; no popup menu, no dialogs]

-- 10/11/2013 BH
[Visible spectra observable in HTML5]
*Fields instantiated by super during static phase of loading are lost and re-initiated by subclass
  (resulting in ColorParameters not having booleans defined)
*Can't use URL.getInputStream()
List.toArray() was not implemented (fixed)
*foo((JDXSpectrum) null) does not give "null" at the other end.
The following two signatures cannot be distinguished in JavaScript:
  public static int intoRangeInt(int i, int i0, int i1)
  public static double intoRange(double x, double x0, double x1)


-- 10/10/2013 BH
Added g2d and g2djs packages
Moved all graphics writing code to g2d.G2D and g2djs.G2D
new InputStreamReader(stream) ---> new InputStreamReader(stream, "UTF-8")
new GZIPInputStream(bis) ---> new GZIPInputStream(bis, 512)
new URL(urlString) ---> new URL((URL) null, urlString, null);
*URLConnection.getContentLength() is not defined -- needs work in JSVFileManager
BufferedInputStream.read(bytes) ---> BufferedInputStream.read(bytes, 0, bytes.length) 
subclassed BufferedReader.read(char[] chars) --> BufferedReader.read(char[] chars, pt, len)
Added buildfromjspecview.xml to JSmol project
Added Math.log10 in coretop.js
Working on adjustments needed in JSmol.js, JSmolJSV.js, JSmolApi.js
Adding JsViewPanel
Bug fixes in JSVApplet, JSVApp, JSViewer
[initial script is being processed]
Added @j2sRequireImport for static references to "new java.util.Properties()" in JSVersion

-- 10/9/2013 BH
Preliminary JsPanel; all AWT fully isolated; filling in of JsPanel will pretty much do it.
Added JsTree, JsTreeModel, JsTreeNode, JsTreePath (for testing; now used in Java applet)
Removed AwtAppletPopupMenu, AwtPopupMenu
Modified the popupMenus to all work through apiPlatform and JSViewer.runScript();
Added commands: SHOWERRORS, SHOWKEY, SHOWMENU, SHOWPROPERTIES, SHOWSOURCE

-- 10/8/2013 BH
Added Jmol's menuing system

-- 10/6/2013 BH
Renamed JSVAppletPrivate(Pro) to JSVApp(pro)
Moved all AWT references of JSVApp into JSVApplet
Moved JSVApp into jspecview/app
Cleaned jspecview/java directory -- all AWT-dependent classes here
Fixed Build.xml

-- 10/5/2013 BH
Refactored dialogs
Added JSVMainPanel, JSVTree interfaces
Added DialogParams, FileHelper
Moved AWT printing/saving operations to AwtPanel
Created AwtTree, AwtTreeNode, AwtTreePath, JSVTree, JSVTreeNode, JSVTreePath
Made JSViewer non-static

-- 10/4/2013 BH
Removed need for AwtGraphSet
AwtPanel slimmed down to only the essentials for drawing -- rest left in GraphSet or PanelData
Clean up of Measurement, Integral, Peak constructors
Removed need for AwtExportDialog

-- 10/3/2013 BH
Disambiguated Parser
* Replaced BitSet with org.jmol.util.BS (later moved to javajs.util)
Added org.jmol.util.J2SIgnoreImport, J2SRequireImport
Base64 moved to org.jmol.io
Added org.jmol.util.P3 and Tuple3f (required for Jmol's ArrayUtil; later refactored as javajs.uti.P3 and .T3)
XMLReader moved to org.jmol.io
Replaced org.jmol.util.ArrayUtil, Base64, Escape, Parser, Txt with Jmol's.
Replaced org.jmol.util.DefaultLogger, Logger, LoggerInterface, with Jmol's.
Created jspecview.awt, jspecview.awtjs2d; populated with template methods
Created EventManager
Implemented jspecview.awt.Mouse and jspecview.awtjs2d.Mouse
  - note that in JSpecView, each panel is its own PlatformViewer and EventManager and display Component
    (but I think there is only one panel ever now)
  
-- 10/2/2013 BH
* Replaced all List and ArrayList with  JmolList to avoid overloaded .add(x) (later refactor as javajs.util.List)
Moved and renamed methods from jspecview/util to org/jmol/util (applets can share this code; later to javajs)
* Replaced Hashmap with Hashtable

-- 10/1/2013 BH
* Replaced all references to DecimalFormat with JSVTextFormat.formatDecimal or 
	JSVTextFormat.formatDecimalTrimmed (later refactored as javajs.util.DecimalFormat)
* Replaced all references to StringBuilder and StringBuffer with JSVSB (later refactored as javajs.util.SB)

====TODO=========


-feature: in the jsvtest.htm page, when there is a CNMR and IR overlay shown
nothing happens when a proton is clicked on a molecule in the Jmol
applet. The viewer should have the option to either add H-NMR with
current overlay or to load only H-NMR (in this case the viewer could
have already saved the C-NMR and IR changes as a "view" to return to
later--could be done through a pop up box

-feature: when in the split overlay version: addition of two boxes next to the
one to toggle between stacked and split, one to clear the selected
spectrum (X), and one to minimize it only (-)

-feature: a save "view" (overlay) option: writes a jdx file that will be able
to call up changes to a current overlay similar to "save as," so that
if one of the used spectra is used in a different file, separate
changes and analyses can be made without altering the saved view

  - in OleNMR this will be handled by saving $$JSVCMD into the procs file, I think.


=====DONE========

-fix for NMR spectra in JavaScript are dropping baseline in some cases

-fix for Printing with Signed Applet

-Transmission to Absorbance conversion broken

-Preferences for Application no longer showing sample.jdx spectrum with colour schemes
-sample.jdx is in Application/resources folder
-default colours changed

-in the HTML5/JS version. Integration dialog box opened but would not close

-double-clicking 1HNMR is not starting a measurement

version and revision number have stopped showing in About Dialog Box

correct FIX export bug: X values now max of 14 wide Y values 10 wide
apply changes to build.xml to allow command line ANT compilation for use in Fedora (Thanks to Susi Lehtola)

update signing certificate (now valid for 10 years)

check inline file loading

new feature: PEAK HNMR id=3 
new feature: (Tony Williams suggestion) PAGE_UP/PAGE_DOWN keys for scaling
new feature: integration MIN value -- removes integrations less than the specified value
bug fix: Y-slider problems; print title still not quite right
new feature: PDF/printing now high resolution (10 x screen) for scalable graphics
new feature: print dialog includes "Create PDF" button
new feature: print includes somewhat wider top/bottom margins for full page option
new feature: Shift-drag to zoom with both X and Y scaling, Drag alone to only give X scaling
             Different colour for background for each
bug fix: various linking issues
bug fix: getProperty needs more return values to be helpful

bug fix: smoother "always-in-front" peak/integration/measurement dialogs
demo: http://chemapps.stolaf.edu/nmr/viewspec2  now fully functional. 
new feature: LINK command options "*", "AB", "ABC", "NONE"
bug fix: Reading offset in Bruker 2D 13C/1H HMBC spectra incorrectly
         (must only read the first ##$OFFSET record)
new feature: X- and Y-scales for 2D NMR spectra 
new feature: "lockable/annotatable" 2D cursor -- click to set; double-click to annotate or release
new feature: linking of 2D spectra with 1D counterparts
		tested for 1H/1H COSY and 1H/13C HMBC

		Wow -- I can't believe how easy it is to understand HMBC!
		see http://chemapps.stolaf.edu/nmr/doc/HMBC_example.pdf
		see http://chemapps.stolaf.edu/nmr/doc/COSY_example.pdf
		
		

	view 1.1,2.1
    link ab
	
or

	view 1.1,2.1,3.1
    link abc
	
new feature: script foo.jsv (or whatever extension you want, Robert)

bug fix: opening peak dialog without clicking spectra doesn't place cursor correctly
bug fix: closing all dialogs except the type chosen; otherwise it gets too cluttered 
bug fix: need to close all dialogs when the print dialog comes up
bug fix: issues with printing split spectra
PDF printing from signed applet and application
 
print PDF   or  print "foo.pdf"

peak list not coming up with peaks initially

integration LIST command option brings up dialog
versioning fixed -- all now in TODO.txt
T/A switching does not update min/max Y
print job name, optional title change, mandatory file name display.
on-screen title display fix for views.

y-axis shift to bring 0 closer to bottom

app file save As Source... fixed (and changed to "Original..."
refactoring ViewData.java and ScaleData.java; better minor X-ticks
xScale tweak adds minor ticks and changes allowed markings to 2, 5, 10 only

fix for integral fill not quitting

Set the SVN version number in TODO.txt rather than JSVapplet.java
This would mean making a comment when changes were made and submitting each time
so that the Help About dialog box code was updated as well.

SET LOADIMAGINARY T/F   -- default F - we can't process the imaginary spec anyway
acceptable?
 
fix for hide/show in peak dialog
fix for spectral shift

fix for integration handles broken yesterday (18th July 2012)

getProperty integration

{ "integration": { "normalizationFactor": 1.0
,"range": 50.0
,"table": [
	[7.192226512510311,6.9246496588731645,4.926643236225048],
	[4.526840366120152,4.247738137695028,11.036230573260724],
	[3.6325143648219447,3.358270687071215,11.083311665174023],
	[2.5828624962660385,2.3231806309339547,11.342257977394365],
	[2.2497695140375464,1.9457959058590926,11.037903913352398]]
,"offset": 30.0
,"header": ["peak","start/ppm","end/ppm","value"]
 }
,"id": "2.2"
 }

{ "peaklist": { 
"threshold": 11000.0
,"interpolation": "parabolic"
,"table": [
	[7.965197485241784,0.069523326261312,1589.7269625789845,0.0,0.0,0.0],
	[7.9583260963520965,0.08002807854864,1588.355542446773,1.3714201322116837,0.0,0.0],
	[7.950097960627121,0.047604282372504,1586.7133371859504,1.6422052608222724,3.013625393033956,0.0],
	[7.924291666857321,0.119271048519096,1581.5628106502181,5.150526535732331,6.7927317965546035,9.80635718958856],
	[7.916298405529351,0.08384643650356799,1579.9674825901723,1.5953280600459387,6.74585459577827,13.538586392332872],
	... 
	]
,"header": ["peak","shift/ppm","intens","shift/hz","diff/hz","2-diff","3-diff"]
 }
,"id": "3.1"
 }

close command fix for losing track of selected panel
fix for integral dialogs not closing or disappearing and not coming back

FINALLY!!! bug found in AwtPanel.update() with huge performance issues with Mac applet.
update() Should not call super.update() because this is an opaque applet

creating a view was closing files

peaklist command fixed (and separate from showPeakList TRUE/FALSE)

peaklist command options: threshold=x.x interpolation=[PARABOLIC|NONE]

double-clicking does not complete a measurement, just starts/ends it. 

getProperty viewInfo

{ 
 "maxY": 236826.159599058
,"maxX": 10.179782090604432
,"maxXOnScale": 10.179782090604432
,"minXOnScale": -1.320253057688545
,"minY": -280.022400942
,"minX": -1.320253057688545
,"minYOnScale": -25000.0
,"specShift": 0.0
,"maxYOnScale": 250000.0
 }


getProperty key # implies selected; key is optional
getProperty ALL key # all spectra; key is optional

integrationRegion xx (%)
integrationOffset xx (%)

integration MARK command

	 * INTEGRATION MARK list
	 * where list is a comma-separated list of ppm1-ppm2
	 * with  :x.x added to normalize one of them
	 * and starting with  0-0 clears the integration 
	 * for example: integration mark 0-0,8.25-7.75:2,7.75-7.25 


swap double click and ctrl click for measurements
show/hide measurements


dialogs;

-Peak picking
     Show/Hide Peak Labels
     Clear
     Threshold
  [x]Parabolic Interpolation
     List Peaks
    

-Integration:
     Show/Hide Integration
     Clear Integration
     Normalize
     Set Baseline Offset
     Set Scaling Factor
     List Integrals

-Measurements:
  Needs a dialog
  
     Show/Hide Measurements
     Clear Measurements
     Mark Measurements [just calls up a prompt telling how to do that]
     List Measurements
     Font Size
    

FINDX x.xx
 -- draws a red vertical line at a given position and acts like a click. 

SETPEAK x.xx command
 -- NMR only 
 -- requires prior clicking on a specific spectrum.
 -- first finds the top of the peak, then assigns chemical shift
 
SHIFTX x.x command
 -- NMR only
 -- requires prior clicking on a specific spectrum.

http://blog.gorges.us/2009/03/how-to-enable-keywords-in-eclipse-and-subversion-svn/
Use 
<dollar>LastChangedRevision: 998 $
<dollar>LastChangedDate: 2012-07-05 18:21:10 -0500 (Thu, 05 Jul 2012) $
to set the APPLET_VERSION to include the SVN revision number

-in the jsvtest.htm page, HNMR and CNMR are not distinguished

-when you offset a spectrum the peaks are able to go off the page, the
user cannot click on the parts of the spectra that are off the grid

- when the spectra has coupling constants, when it is zoomed to view a
spot that does not have the constants, the constants still show up
even if their peaks are off the page (they are where the peaks would
be if the whole spectrum were blown up)


-Integration:
 --changing the command from "integrate" to "integration"
   ---also what is the difference between integrate on/off and
showintegration true/false/toggle?

Features and Bugs:
For the overlay/close dialog box, please move the overlay section to the top of the display rather than the bottom

Dialog Box for overlay colours needs checking
  -- added active clicking in overlay key box
  
not observed: With JSpecView application, loading a file gives the dialog box and if you sort on date the program crashes.

Bug:
Loading a GC/MS file in Jmol application and selecting a menu option in Jmol to choose a frame
gives JSpecView loading with looping over frames in the Jmol display as well as the JSpecView display 

LOADFILECALLBACKNAME added

Loading a GC/MS file in Jmol application and selecting a menu option in Jmol to choose a frame
gives JSpecView loading with looping over frames in the Jmol display as well as the JSpecView display 


PRINT command for applet and application

compoundmenuon true gives menu option of Spectra
compoundmenuon false gives greyed out menu option of Blocks - renamed Spectra as well

ReversePlot was disabled; x widgets aren't right with plot reversed.
>seems fixed?

GC/MS is not tested and probably all messed up.
Works if call is to the GCMS.jdx file with overlay ALL

With Jmol application, when loading a Block file the JSV display is automatically showing the LAST Block.
>Changed to display First Block


With a dual display of GC at top and MS at bottom what script should I use to
change the lower display but leaving the top display undisturbed?
Can they be identified individually?

> done:
For the applet
overlay 1,3 or 1,4 etc default display is overlay 1,2

  peak ms model1
  peak ms "204"  -- could look for match in title text?
> DONE -- needs testing

  peak ms "204" ALL
       -- added ALL keyword lets you look through  all spectra, otherwise it's just the current panel
       -- current panel, though, is always checked first.


Loading a Block file and switching between Blocks without selecting a peak.
Having looked at 4 Blocks and returning to the first.
A PEAK is shown selected and if an IR then Jmol starts vib mode despite not having clicked in the JSV display.

> fixed

Loading acetophenone.html and selecting a peak in the IR sends the display into frenzy
with overlay showing and uncontrollable flashing between spectra.
Seems to happen as well when you select a peak then use spectrumnumber to change display

>> fixed 

Integration should be standard size without changing when you scale Y

Use of Ctrl-/ Ctrl+
OK for when baseline is at the bottom, needs to work as well for spectra 
where the baseline is at the top of the page 

DONE for a block file allow overlaying some of the spectra not necessarily all the spectra

  command:   OVERLAY 1.1,1.2 for instance

6th Mar turn off RED error icon when file is closed.
Done

done 8.3.12

bug:
If I open a file then open another file then open another file
The drop down file type in the file open dialog box always defaults to JCAMP-DX (not a problem)
BUT instead of it showing 1 JDX type it keeps on increasing in the
list so jcamp-dx shows up 3 times
and every time I open another file it seems to add another jcamp-dx to
the drop down file type list.

done 8.3.12
 
