Icy 1.7.3.0 - 12/11/2015
------------------------

Application:
 - just some bug fixes here and there.
 

Icy 1.7.2.0 - 04/11/2015
------------------------

Application:
 - fixed NPE on Metadata read preventing some image load operation (regression).
 

Icy 1.7.1.0 - 03/11/2015
------------------------

* ImageDataIterator:
 - fixed a bug (regression).
 - optimized a bit the implementation.
 

Icy 1.7.0.0 - 28/10/2015
------------------------

Application:
* ROI panel:
 - full implementation of the new ROIDescriptor feature.
 - extensible descriptor list by plugin.
 - now display the number of selected / total ROI in the table.
 - better display configuration.
 - separate columns selection for view and export.
 - added default drawing properties.
 - improved table computation time.
 - better value rounding policies.
 - fixed 'NOT' boolean operation on 2D ROI with fixed Z, T or C position.
 - faster ROI merge operation (up to 10x faster).
* fixed a bug in the Sequence dimension adjustment operation.
* Undo:
 - fixed a bug with the undo operation of ROI remove point.
 - some changes to the history panel.
* Histogram panel:
 - bounds are now correctly restored from persistence.
 - minors changes and fixes to the bounds range setting dialog. 
* some fixes with 3D rendering (VtkCanvas)
* conversion from IJ to Icy do not anymore display RoiManager.
* better handling of error when changing the rendering mode (Canvas type change).
* new splash screens (which are now dynamically fetched from res/image/splash location).
* 'time interval' metadata is automatically computed when possible.
* custom colormap (in 'colormap' folder) are now visible in the colormap selector.
* double click on the 'Sequence filename' will open the folder where the file is actually located.
* we can now remove the warning message when starting a second instance of Icy.
* fixed a minor issue in search result with bold character.
* improved Z/T dimension swap operation performance.
* some improvements in support of plugin execution from command line.
* many others changes and tweaks.

Developer:
* Sequence:
 - added addROIs(..) and removeROIs(..) methods.
 - do not cumulate ROI and Overlay events anymore (an event is sent for each add, modification or remove object operation).
 - fixed getPixelSizeScaling(..) and calculateSize(..) methods.
* IcyBufferendImage: fixed get/setRawData(..) methods
* SequenceDataIterator: fixed a (very) nasty copy-paste bug that prevents all calculations in 3D.
* ImageDataIterator: optimizations.
* added Position2DIterator and Position5DIterator interfaces.
* added BooleanMask2DIterator class to iterate over all contained points in a boolean mask.
* added ROIIterator class to iterate over all contained points in a ROI.
* added ROIDescriptor abstract class to define new ROI descriptor (any calculation done from a ROI)
* added PluginROIDescriptor interface for easy implementation of new ROIDescriptor from Plugin.
* BooleanMaskXD:
 - added getNumberOfPoints() method.
 - added getContourLength() method (return perimeter / surface area)
* BooleanMask2D:
 - added methods for merge operation with another BooleanMask.
   These methods allow faster merge operation of many BooleanMask by reducing the number of BooleanMask creation.
* ROI:
 - added getSubROI(..) method to retrieve a sub part of a ROI.
 - added methods for merge operation with another ROI.
   These methods allow faster merge operation of many ROI by reducing the number of ROI creation.
 - fixed default computeNumberOfPoints() implementation.
 - better error detection on ROI copy operation.
 - added methods to retrieve and set the defaults settings of drawing properties.
* ROI2DArea:
 - added add/exclusiveAdd/remove(ROI2DArea) methods
 - added add/exclusiveAdd/remove(BooleanMask2D) methods
 - safer manipulation in multi threaded context
 - fixed a minor refresh issue.
 - some tweaks here and there.
* ROI2DShape: faster getBooleanMask2D(..) implementation (help a lot for descriptor calculation).
* ROI2DPath:
 - fixed contains(..) and intersects(..) implementation.
 - better merge(ROI) implementation.
* ROI2DPolyLine: use the new Polyline2D shape for a better and more accurate implementation.
* ROI2DPolygon: use the new Polygon2D shape for a better and more accurate implementation.
* ROIUtil:
 - merge(List<ROI>, Op) method should be faster now in most situation now.
 - many deprecated methods because of the new ROIDescriptor structure.
* added Polygon2D and Polyline2D Shape objects.
* ShapeUtil:
 - added isClosed(Shape), getOpenPath(Shape), getClosedPath(Shape) methods.
 - merge(List<Shape>, Op) should work better and faster.
 - union, exclusiveUnion, intersection and subtraction operation should work better.
* Overlay: add getAttachedCanvas() method to retrieve all canvas where the overlay is displayed.
* IcyCanvas.create(..) now throws exception.
* IcyCanvas2D: set the alpha colormap value to full opaque by default.
* IcyCanvas3D: set the alpha colormap value to linear by default.
* Canvas2D: fixed minor issue with filtering parameter.
* LUT: added setAlphaToLinear() and setAlphaToOpaque() methods.
* IcyColormap: added methods to retrieve default and custom colormap
* MainInterface:
 - tweaked the events generation.
 - 'ROI/Overlay add' events happen now *after* 'Sequence opened' event.
* Loader:
 - fixed Importer retrieval (it was launching the plugin instead of just creating it).
 - getXXXImporters(..) methods automatically report errors.
* PluginLoader: fixed getPlugins(Class<?> ..) method which wasn't retrieving BlundedPlugin.
* added AbstractRoisPanel class to allow an easier incorporation of the ROI table in external component / frame.
* MetaDataUtil: added getPositionX/Y/Z() and getTimePosition() methods.
* SystemUtil: added openFolder(..) method.
* Array1DUtil: added getInterleavedData(..) and deInterleave(..) methods.
* ByteArrayConvert: major rewrite (fixed several bugs).
* FileUtil: added isDirectory(String) method.
* PluginLauncher: put create(..) method in public as we may need it.
* ColorUtil: added mix(Color, Color, ratio) method.
* ZipUtil: reworked a bit
* XMLUtil: better handling of random exception using xerces library.
* GuiUtil: added createIcyFrameFromWindow(..) method to convert external window to IcyFrame.
* minor fix in the way we handle Layer removal operation.
* many others fixes, tweaks and cleanup.


Icy 1.6.1.1 - 20/02/2015
------------------------

Application:
* optimized default opacity for 3D rendering.
* fixed a possible NPE on colormap update. 
 
 
 Icy 1.6.1.0 - 18/02/2015
------------------------

Application:
* ROI:
 - can set position and size of selected ROI with CTRL + arrow keys.
 - fixed the SHIFT modifier for Line and Rectangular ROIs.
 - fixed minor issue with contains(x, y, z, t, c) method.
 - 3D rendering (in VtkCanvas) improved.
 - fixed some issues with channel specific information display in ROI panel.
 - better approximation of the number of points with the generic computeNumberOfPoints() implementation.
* Canvas2D:
 - minors changes on shortcuts action.
* VtkCanvas:
 - added support to layer visibility and opacity.
 - now support arrow keys to navigate through frame and keypad keys to translate view. 
 - default background color is now black
 - display information message when no enough memory to display image
 - fixed VTK 3D rendering with more than 4 channels.
* ImageJ:
 - added support for drop file operation.
 - better ROI conversion between Icy and ImageJ (uses RoiManager if needed).
* fixed windows repositioning on multiple virtual desktop system.
* added custom colormap support (colormaps inside the 'colormap' folder are now visible in the colormap combobox).
* added range movement and range settings to Histogram panel.
* added information on maximum memory with 64bit JVM in Preferences.
* better assignment of default image colormaps.
* some fixes and minors changes.

Developer:
* Layer: replaced 'alpha' by 'opacity'
* fixed a bug with SequenceDataIterator object (should fix some issues with some ROIUtil methods).
* added IcyCanvas.isVisible(Layer) method.
* modified all the ArrayUtil.arrayToSafeArray(..) methods for better type conversion.
* fixed a minor issue with the IcyBufferedImageUtil.convertToType() method.
* removed the Plugin constructor using PluginDescriptor parameter (can cause issue)
* several improvements to IcyVtkPanel class.
* added ComponentUtil.centerOn(..) methods
* minor changes to the SequenceIdImporter interface (now implements Closeable)
* refactoring, cleanup.


Icy 1.6.0.1 - 26/11/2014
------------------------

Application:
* fixed a bug with the auto update process.
* fixed a minor issue in metadata parsing.


Icy 1.6.0.0 - 20/11/2014
------------------------

Application:
* Undo operation support:
 - customizable length history
 - support undo and redo depending the operation
 - undo / redo supported for almost all ROI operation
 - undo supported for almost all sequence operation
 - global undo / redo operation (when supported) by pressing Ctrl+Z / Ctrl+Y
* Added plugin usage statistics report (beta).
* Canvas2D:
 - added area selection (Ctrl key + mouse drag)
 - added message when there is not enough memory to display the image
* Canvas2D and VtkCanvas:
 - reset view with 'r' shortcut
 - reset view and palette with 'R' shortcut
* ROI:
 - fixed minor issue on subtraction operation.
 - fixed NOT boolean operation for 3D, 4D and 5D ROI.
* ROIPanel : fixed sorting on position and size. 
* Loader:
 - better image auto ordering from filename when loading a group of file
 - better progress information when loading a group of file
 - improved image preview display (support multiple importer)
* Loci importer: better retrieving of channel color from metadata
* VTK library loading fixed for Unix system (still some issues with VTK 6.1 support on unix system) 
* Colormap are preserved on Sequence extract channel / frame / slice operation.
* Histogram:
 - 'auto bounds' parameter is now preserved.
 - fixed minor refresh issue.
* Minor fix with internet monitor.
* Many bug fixes and tweaks.

Developer:
* New undo framework:
 - added many classes to provide 'Undoable' operation (IcyUndoManager, IcyUndoableEdit...)
 - added MainInterface.getUndoManager() method to retrieve the active Sequence UndoManager.
 - added MainInterface.undo() and MainInterface.redo() methods for fast undo and redo on the active Sequence.
 - look at ROI undoable operation example to learn how to use the framework.
* FileUtil.getApplicationDirectory() tweaked for better support on OSX
* PluginDescriptor:
 - added isBlundled() method to know if this is a bundled plugin (several plugins inside the same package)
 - added isKernelPlugin() to know if this plugin is bundled in the application.
* PluginLauncher: some changes with plugin launch operation.
* Plugin: added getName(), isBundled() and getOwnerClassName() methods.
* ROI:
 - added copyFrom(ROI) method to obtain a ROI copy.
 - added getPropertyValue(..) / setPropertyValue(..) for generic property get and set operations.
* MetaDataUtil: added getSizeX/Y/Z/T/C() and setSizeX/Y/Z/T/C() methods
* Sequence:
 - added copyFrom(..), copyDataFrom(..) and copyMetadataFrom(..) methods.
 - added createUndoPoint(..), createUndoDataPoint(..), createUndoMetadataPoint(..) and AddUndoableEdit(..) methods to create complete, partial or custom restore point for undo operation.
 - added undo() and redo() and clearUndoManager() methods
 - added getSelectedROIs(Class roiClass..) to retrieve selected ROI of a specific type only.
 - added getDefautColormap(..) and setDefautColormap(..) methods.
 - added getColormap(..) and setColormap(..) methods (user LUT).
* Added SequenceUtil.getCopy(Sequence, copyROI, copyOverlay, suffix) to get a copy of the specified sequence with specific options.
* Added the ugly PluginNoEDTConstructor interface to avoid plugin creation in the swing graphics thread (needed for retro compatibility).
  Be careful as some Plugin abstract classes now use this interface.
* IcyBufferedImageUtil.convertToType(..) now uses safe type conversion as we always prefer it (even if it's bit slower).
* Added ImageUtil.isGray(image) method to know if the specified RGB image only contains gray pixels.
* Added MetaDataUtil.getChannelColor(..) method.
* ROI2DShape: added addNewPoint(..) and removePoint(..) method. 
* RectanglexD: fixed some typos in contains() and intersects() methods
* ROIxDStack: fixed rounding error in contains(..) and intersects() methods
* Added 3D, 4D and 5D rectangle ROI (available through code only)
* Added new methods in LUT and LUTChannel to copy colormap and scaler objects.
* Added MainInterface.getActiveLUT() for fast retrieving of current viewer's LUT.
* Added new methods to DateUtil.


Icy 1.5.4.2 - 04/09/2014
------------------------

Application:
* added an option to display the ROI name (per ROI).
* fixed continuous histogram refresh on empty sequence (regression).
* some improvements on headless mode.
* check for update only once per day.
* fixed network detection when proxy is used.
* fixed faulty plugins verification.
* other minors fixes.


Icy 1.5.4.0 - 29/08/2014
------------------------

Application:
* Layers panel:
 - opacity setting has moved at bottom.
 - support custom setting panel per layer (Overlay.getOptionsPanel())
* SearchBar: faster result display / refresh of search bar
* ROI:
 - added ROI contour size field (only for drawing).
 - fixed ROI2DEllipse area calculation.
 - fixed vertical and horizontal ROI2DLine selection.
 - modified ROI2DPoint rendering.
 - Rewrote ROI2D and ROI3D perimeter calculation with a more precise approximation.
* Fixed shared LUT on viewer duplication (regression).
* Icy let you select appropriate importer when multiple choice are available.
* Fixed histogram refresh.
* Loader dialog show image preview even for "all files" filter.
* Minors changes on VTK library on Unix system..
* Fixed crash on exit on Unix system (temporary workaround for JVM bug).
* Better internet connection monitor (lighter on network traffic).
* Tweaks / fixes on GUI refresh.
* Faster background repaint (cached), more responsive when moving windows.
* Others minors improvements, bug fixes and cleanup.


Developer:
* Loader: many changes to provide better support on FileImporter and SequenceFileImporter classes.
* Overlay: support custom setting panel with getOptionsPanel()
* FileImporter.acceptFile(..) method now use path parameter.
* SequenceUtil:
 - C/Z/T merge operation now preserve metadata.
 - added getSubSequence(Sequence, ROI, double) method.
* Sequence:
 - added hasOverlay(Class) method.
 - added getROI/2D/3Ds(boolean sorted) methods.
* User email information stored in preferences.
* Fixed ROIUtil.getMassCenter() method.
* Added GeneralPreferences.get/setLoaderFolder(..) to retrieve the current "Open" folder.
* Do not clear anymore sequence objects (ROI and overlay) when sequence is closed.
* Fixed XLSUtil.loadWorkbook(..) which was clearing file.
* Fixed InstanceProcessors.submit(..) method.
* Minor change in the way we close opened windows on application exit.
* Some refactoring:
 - ImageLoaderDialog --> LoaderDialog
 - ImageSaverDialog --> SaverDialog
 - LoadDialog --> OpenDialog
* Some cleanup, refactoring and javadoc updates.


Icy 1.5.3.1 - 09/07/2014
------------------------

Fixed Rectangle3D/4D/5D.contains(...) method (can be annoying for developer).


Icy 1.5.3.0 - 08/07/2014
------------------------

Application:
* Last used colormap is now saved in the sequence persistent data.
* Added multi selection support in Plugin browser.
* Some improvements on the colormap combo box representation.
* Partial rewrite of the Plugin class loader sub system, this hopefully fix the random load class errors !
* Clean metadata on image loading.
* Avoid useless Z and T numbering when saving as "multiple files".
* Added missing plugins checking on start.
* Minor changes/fixes on inspector layout.
* Others minors changes.

Developer:
* Thread safe implementation of XMLPreferences.
* Added PluginLauncher.startSafe(..) method which allow to handle exceptions.
* Reworked the ThreadUtil.invokeNow(Callable) method.
* Packed LociImporter class in LociImporterPlugin class.
* Some cleanup, refactoring and javadoc updates.


Icy 1.5.2.0 - 13/06/2014
------------------------

Application:
* Modified way of retrieving the application folder (old method could fail on new OSX).
* Saver: removed the temporary hack to fix BioFormats save.
* Importer: fixed a minor issue with file path on Bio-Format importer.
* ROI:
 - fixed a issue with ROI subtraction operation.
 - fixed a issue with ROI2DShape intersects() method.
 - fixed issues with empty ROI2DArea.
* Rectangle5D: fixed infinite size C report.
* XMLUtil: added filterString(..) method to filter incorrect character.
* VTK:
 - fixed some VTK crashes due to multi thread access (even if protected).
 - fixed volume shading.
* minor change in plugin class loader for better handling on thread context class loader.
* others minors changes.

Developer:
* ROI: fixed a issue with ROI2DShape intersects() method.
* Rectangle5D: fixed infinite size C report.
* XMLUtil: added filterString(..) method to filter incorrect character.
* VTK:
 - added lock() / unlock() method to require access to VTK rendering.
 - added access to VTK properties and actors (activeCam, axes, bounding box, ruler, image volume...)
 - added pick(..) method for 3D picking.
 - added setVolumeVisible(..) method to display/hide image volume object.
* some javadoc updates.
* some cleanup.


Icy 1.5.1.0 - 23/05/2014
------------------------

Application:
* Fixed ROIUtil.getMassCenter() method.
* Fixed pixel size calculation on image resize operation.
* Fixed bug on ROI opacity change.
* Fixed LOD for ROI2DPoint and ROI2DLine.
* Fixed possible NPE in ROI panel.
* Fixed possible NPE in LUTViewer.
* Faulty plugins (corrupted jar file) are now automatically reinstalled.
* Others minors fixes and improvements.


Icy 1.5.0.0 - 19/05/2014
------------------------

Application:
* Improved 3D visualization.
* Main menu:
 - Added 'Import' command for plugin capable of importing resources.  
 - Added 'Save Metadata' command to force save of the image metadata.
* ROI panel:
  - Subtraction command now produces the 2 possible results.
    You have to remove the incorrect one afterward.
  - Channel informations are now separated in several column (better for excel analysis).
  - Excel export now always export all ROI (as this is generally what we want).
  - Performance improvement when dealing with many ROIs
* Improved headless support.
* Fixed Java 8 compatibility issue.
* Added support for local repository.
* Fixed a bug making 1 pixel height or 1 pixel width ROI to become invisible.
* Simpler image resize operation.
* Swimming pool viewer improved.
* Many bug fixes and others improvements.

Developer:
* Added Importer (and derived) interface to easily implement new resource / image importer from plugin.
* Added ImageProvider interface for flexible image access.
  This interface can be used in importer to provide low level image access.
* ThreadUtil: added runSingle(..) method. 
* Many changes in Loader interface.
* VTK:
 - New VTKCanvas class to replace Canvas3D.
 - Added VtkImageVolume class for easier volume rendering from an image stack.
 - New methods in VTKUtil.
* ROI:
  - Added contains(ROI) and intersects(ROI) methods.
  - Added ROIUtil.getMassCenter() method.
* SequenceUtil:
 - Added rotate() method.
 - Added toGray() and toRGB() methods.
* IcyBufferedImageUtil: added rotate() method.
* Added ActionDialog.isCanceled() method.
* MainInterface:
 - Added isHeadLess() method.
 - Added getCommandLineArgs() and getCommandLinePluginArgs() method (for headless mode mainly).
* FileUtil: added toFiles(paths) and toPath(files) methods.
* Some fix on ROI merge operations (again).
* Better error handling of incorrect ROI merge operation.
* Report frame now available also on internal application error.
* Updated Bio-Formats library to version 5.0.1
* Updated VTK to version 6.1 (some plugins using the old VTK API might not work anymore).
* Many others changes, deprecation, tweaks...

Icy 1.4.3.5 - 21/11/2013
------------------------

Application:
* Some fix on ROI merge operations (again).
* Better error handling of incorrect ROI merge operation.
* Report frame now available also on internal application error.


Icy 1.4.3.0 - 21/11/2013
------------------------

Application:
* Fixed some issues with ROI boolean merge operation.
* Modified the VTK Canvas3D screen shot rendering to RGB so it should always looks correct now. 
* Replaced the default 'Save' ribbon menu command by 'Save as' command instead.   
* Filter incorrect named classes in plugins folder to avoid useless warning messages.
* Minors changes in the About frame.
* Some others minors tweaks and changes.

Developer:
* Severals fixes with BooleanMask and ROI bounds calculations.
* Rectangle3D/4D/5D: added setInfinity..() method.
* Some Javadoc changes.


Icy 1.4.2.0 - 13/11/2013
------------------------

Application:
* Bug Report frame close automatically after report (regression fix).
* ChangeLog is now accessible directly through the application (close to the 'About' section).
* Some others minors tweaks and changes.

Developer:
* Fixed native library loading from Plugin on unix like system.
* Javadoc changes.


Icy 1.4.1.0 - 12/11/2013
------------------------

Application:
* ROIPanel: fixed area and volume unit representation.
* Removed image auto ordering when loading from the history.

Developer:
* Fixed issue in getSubSequence(Sequence, ROI) method.
* Improved backward compatibility.
  Lot of compatibilities issues appeared in the last version because of some majors changes in ROI and Overlay in general.
  We are really sorry for the troubles and some should be fixed now but still it is preferable for developers to update their plugins which heavily rely on ROI and Overlay.
* Javadoc changes.


Icy 1.4.0.2 - 30/10/2013
------------------------

Application:
* GUI:
  - now preserve last file filter used on load image dialog.
  - fixed multiple plugin launch from Ribbon plugin button.
  - fixed global shortcut action being executed while taping text in text field.
  - change log is displayed when a new version has been installed.
 * ROI / ROI Panel:
  - complete new panel with more ROI informations and XLS export support.
  - removed the 'selected color' property (selected ROI keep their normal color now).
  - added 'opacity' property to change the content opacity representation.
  - fixed point removing on polygon.
  - improved drawing performance (use Graphics clip information).
* Layer:
  - can now edit the layer's name directly through the table (as the ROI). 
  - accept delete command through the table.
  - some others minors tweaks.
* Colormap:
  - fixed color calculation with alpha blending.
  - active color line order modified (alpha is behind now).
  - tabs are now colored to reflect the channel colormap.
* Fill sequence operation now use the ROI properties to get the region to fill.
* Fixed issue in saving image in multiple file (temporary hack until issue is fixed in Bio-Formats).
* Minors changes and fixes in Sequence save operation (better name logic).
* F1 key now open a browser to the support forum.
* Fixed minor issue in plugin installation.
* Windows re-organization only affect viewer.
* ImageJ wrapper:
  - TRACED_ROI (ImageJ) are now converted to ROI2DArea.
  - fixed a minor issue with the IJ <---> Icy image conversion.
* Fixed a rendering issue with the screenshot feature on Canvas2D.
* Fixed the infamous margin error in text field.
* Fixed a bug with XML file containing '#' character in their filename.
* Fixed ROI painter event handling with Canvas3D.
* Fixed an issue with headless support (work in progress).
* Fixed a regression which made the Canvas3D visible even if VTK library was not loaded.
* More internals commands accessible through the search bar.
* Better error handling in general.
* Better backup of invalid XML metadata file.
* Removed the useless ROI tooltips.
* Added signature for the OSX launcher.
* Lot of others fixes, changes and tweaks.

Developer:
* New developer online documentation based on javadoc (still need some work).
* Plugin:
  - added loadLibrary(..) method for easy native libraries loading from the plugin jar file.
* Sequence:
  - setSelectedROI(..) method rewrote.
* BooleanMask:
  - added BooleanMask3D, BooleanMask4D and BooleanMask5D classes.
  - added contains(BooleanMask) and intersects(BooleanMask) methods.
  - added getPointsAsIntArray(..) method (better for GC work)
  - added getContourPointsAsIntArray(..) method (better for GC work)
* ROI (WARNING. major changes which may need code modification):
  - general better 3D, 4D and 5D ROI support.
  - added default 5D point constructor for all ROI.
  - added hasSelectedPoint() method (used for cursor update in canvas)
  - added getBooleanMask2D(..) method
  - added boolean and subtraction operations support.
  - added canSetPosition() and setPosition5D() methods.
  - added canSetBounds() and setBounds5D(..) methods.
  - added contains(ROI) and intersects(ROI) methods.
  - added getNumberOfContourPoints() and getNumberOfPoints() methods (used for perimeter, area.. calculation).  
  - added icon property (used by the ROI panel).
  - internal overlay mouse position is now 5D.
  - better BooleanMask integration in ROI.
  - added ROI3DArea, ROI4DArea and ROI5DArea.  
  - ROI are now implemented as plugin.
  - many others changes.
* ROIUtil:
  - added boolean and subtraction operations for ROI list.
  - added getStandardDeviation(..) methods.
  - added getContourSize(..) and getInteriorSize(..) methods (return result in pixel).
  - added getPerimeter(..) and getArea(..) methods (return the result in the input sequence pixel unit).
  - added getSurfaceArea(..) and getVolume(..) methods (return the result in the input sequence pixel unit).
* PluginROI interface modified, plugins using it have to be updated !
* Painter interface deprecation completed:
  - OverlayWrapper class used for wrapping.
  - Layer, IcyCanvas, Sequence, ROI... now uses the Overlay only internally.
  - removed as much Painter reference as possible.
* Overlay:
  - events now support 5D coordinates.
  - added receiveKeyEventOnHidden and receiveMouseEventOnHidden properties.
  - added isAttached(Sequence) method.
  - do not anymore extends AbstractPainter.
* MainListener interface is deprecated, use one of these instead:
  GlobalViewerListener, GlobalSequenceListener, GlobalROIListener, GlobalOverlayListener, GlobalPluginListener.
* Replaced 'focused sequence/viewer' by 'active sequence/viewer' logic:
  FocusedSequenceListener becomes ActiveSequenceListener and FocusedViewerListener becomes ActiveViewerListener.
* IcyCanvas:
  - fixed default canvas size implementation.
  - provide helpers for mouse event dispatch to overlays.
  - minors changes and refactoring.
 * Canvas2D:
  - better support for future 3D/4D/5D ROI drawing.
* SequenceDataIterator and ImageDataIterator implements the new 5D support from ROI.
* Point3D / Point4D / Point5D classes improvements.
* Rectangle3D / Rectangle4D / Rectangle5D classes improvements.
* Added Dimension3D / Dimension4D / Dimension5D classes.
* ByteArrayConvert: added readXXX() / writeXXX() methods for easy serialization.
* Major rewrite of Processor and derived objects:
 - replaced addTask(..) method by submit(..)
 - support Callable interface and return Future object.
* ThreadUtil: added support for Callable interface and Future object.
* DynamicArray: added support for variable block size (granularity parameter).
* Added ActionManager class which allow to access command action in a centralized way (will be improved in future).
* Replaced XLSManager by XLSUtil so use the later one now.
* GeneralPreferences: added getResultFolder() and setResultFolder() methods to get/set the default application 'results' folder.
* IcyColorMap: added getRedMap(), getGreenMap()... methods.
* TypeUtil: added toPoint(int[]) method.
* FileUtil: added backup(..) method.
* ArrayMath: added sum(..) method for all native array type.
* ColorUtil: added many color conversion methods.
* ImageUtil: added toRGB(..) and toARGB(..) methods.
* Added ErrorReportFrame for easier generic report.
* Added IcyTable component (better column resizing policy than JTable).
* Added SpecialValueSpinner component.
* ImageSaverDialog can now return selected options.
* Viewer: can now start/stop play video sequence and change the desired frame rate from the code.
* Fixed FileUtil.setExtension(..) method.
* Rewrote SequenceChooser class (cleaner and updated to new method).
* Prelemenary Bio-Formats automatic error report.
* Many refactoring.
* Removed some old deprecated units.


Icy 1.3.6.0 - 22/05/2013
------------------------

Application:
* Fixed copy/paste operation for image/ROI (IcyCanvas).
* Fixed deprecated method in Loader which was causing stack overflow.
* Fixed some image loading crash after an image has been saved.
* Improved Canvas3D screenshot performance.

Developer:
* Clipboard: added methods for system clipboard handling.
* A bit of refactoring.


Icy 1.3.5.0 - 17/05/2013
------------------------

Application:
* Added an option to disable the automatic image ordering when loading a group of image.
  It was always enabled before which may cause some issues.
* Improved online search (less intensive on the website --> faster replies).
* Results from the search bar are now sorted depending their relevance.
* Canvas3D: channel can now be enabled/disabled the same way than with Canvas2D.
* Added image copy/paste operation from/to external application.
* Better Roi copy/paste operation.
* Added Bio-Formats metakit part of library (needed for some image format).
* Better default colormap for image with more than 3 channels.
* Fixed a bug in chat panel which prevented private chat to work.
* Fixed an issue with Viewer losing focus in some situation.
* Added predefined colomaps: "alpha" and "glow upper under". 
* Improved network error handling.
* Many fixes and improvements... 

Developer:
* Added new Overlay class to replace the Painter interface:
 - add support for overlay priority.
 - automatic change event dispatch to sequence object.
 - many classes has been modified internally to use the new Overlay class, backward compatibility should be provided.
 - many others improvements, don't use the Painter anymore.
* Reworked Layer class:
 - handle new Overlay class.
 - dispatch event only for Layer properties change.
 - added fixed (cannot be removed) and readOnly (cannot change name) properties.
* Canvas2D:
 - All events are now sent to painter first then canvas.
   If a painter consume an event, canvas won't receive it.
 - Better support of getRenderedImage(...) image.
* Canvas3D: event are now correctly forwarded to painter.
* Loader: new methods, lot of rewrite...
* added onClosed() method to ActionDialog.
* Separated file choose and loading operation from ImageLoaderDialog class.
* Separated file choose and saving operation from ImageSaverDialog class.
* Added Plugin.getResource(..) and Plugin.getResources(..) methods.
* Added SystemUtil.addToJavaLibraryPath(..) method to modify library path at runtime.
* Added SystemUtil.loadLibrary(..) methods for easier native library loading.
* IcyBufferedImage: added method to load only a sub part of an image from Reader.
* New SequenceBuilder class to help in building a sequence with multi-threaded algorithms.
* Plugin bug report now give informations about dependencies. 
* PluginClassLoader:
 - removed Osgi loader (not needed there).
 - changed loader search order (system loader first --> local loader last).
 - some fixes.
* Added Sequence.calculateSize(..) method to help in calculating a distance or surface from a specified number of pixel.
* Main interface do not anymore combine events for ROI/Painter add/remove operations.
  --> more practical for developer but can make application slower when dealing with many ROI/Painter.


Icy 1.3.2.0 - 18/02/2013
------------------------

Application:
* Fixed an issue in local plugin search (search could not be done in online documentation of the plugin). 
* Removed 'empty' plugin from the research result list.
* Reverted to 'F3' shortcut for external / internal window mode.
* Fixed minors issues with viewer initialization.
* Replaced some Swing timer by Util timer (Swing timer tends to slowdown when you use too many of them).
* Automatically switch to headless mode for headless system (that make sense).
* Fixed regression in network loss detection (some latencies were added in Icy 1.3.0.0)
* Several minors improvements, tweaks and fixes. 

Developer:
* Major rewrite of the plugin class loader, hope that will help with perm gen space error:
  - now support getResource(..) and getResources(..) methods (return valid URL).
  - far less memory usage (load resource on demand only).
  - can release loaded resources so if loader is retained by a class memory usage is maintained low.
* Fixed FileUtil.getCurrentDirectory() so it actually returns the application root directory
  and not the launch directory which can be different.
* General shortcut handled ad ActionMap / InputMap so a plugin can override them.


Icy 1.3.1.0 - 17/01/2013
------------------------

Application:
* Added ROI boolean NOT operation (inverse ROI).
* Fixed GUI resize issue with the Image Resize frame.

Developer:
* Fixed issue on save sequence operation when parent directory was missing.
* Fixed IcyButton tooltip when an action is attached to the button.
* Can now disable/enable histogram auto refresh and auto bounds from code.
* Fixed BooleanMask2D.setBounds(..) which was accidently hidden in Icy 1.3.0.0
* NetworkUtil: fixed openURL(..) backward compatibility.
* FileUtil: tried to fix the obscure bug on delete() and rename() methods (Windows system only).


Icy 1.3.0.0 - 10/01/2013
------------------------

Application:
* Added a general search bar:
  - Search in plugins, protocols and kernel commands.
  - You can add you own results to search engine with a plugin.
* New ROI panel:
 - new Load / Save / Copy / Paste operations on ROI.
 - can change size and position depending the ROI type.
 - added subtraction boolean operation.
 - added surface / volume information.
 - added pixel intensity information. 
* New shortcuts:
  - 2/4/6/8 (keypad): image displacement (Canvas2D).
  - F2: duplicate view
  - F3: global search
  - F4: internalize/externalize view
  - Ctrl+F4: close view
  - Ctrl+O: open an image file
  - 0: disable view synchronization group
  - 1: enable/disable view synchronization group 1
  - 2: enable/disable view synchronization group 2
  - 3: enable/disable view synchronization group 3
  - 4: enable/disable view synchronization group 4
  - Shift+1: global view synchronization group 1
  - Shift+2: global view synchronization group 2
  - Shift+3: global view synchronization group 3
  - Shift+4: global view synchronization group 4
  - Shift+0: cancel global view synchronization
  - Shift+G: grid tile viewers in grid
  - Shift+H: horizontal tile viewers arrangement
  - Shift+V: vertical tile viewers arrangement
* Reworked ROI control in Canvas2D.
* Fixed proxy setting which should work now on Linux system.
* Improved plugin installation / udpate process.
* Fixed IcyBufferedImage bicubic filtered scaling.
* Fixed the infamous ComboBox selection bug in Dialog on MAC OSX system.
* Improved native librairie loading.
* Better handling of incorrect save format.
* Screenshot action now generate RGB image (ARGB is not supported by JPG nor AVI).
* Fixed Canvas3D screenshot fearure.
* Added support to launch a plugin at startup from the command line.
* Added support to open an image from command line.  
* Ctrl key is now used as mouse modifier on MAC OSX as Cmd key is
misinterpreted by JVM as right mouse button modifier.
* Better filename preservation in Sequence name.
* Improved histogram display.
* Added 'help' button in plugin manager to redirect on online plugin help.
* Fixed a bug in metadata pixelSize fields.
* Added new splash screens:)
* A lot of others minors fixes and improvements.

Developer:
* Added new methods in specific ROI classes:
  - ROI2DEllipse.setEllipse(..)
  - ROI2DRectangle.setRectangle(..)
* Added Point3D, Point4D and Point5D classes (same implementation as java.awt.geom.Point2D).
* Added Rectangle3D, Rectangle4D and Rectangle5D classes (same implementation as java.awt.geom.Rectangle2D).
* ROI:
 - added getVolume() method (return volume in number of pixel).
 - added getPerimeter() method (return perimeter in number of pixel).
 - added getDimension() method (return number of dimension).
 - introduced contains(..) method (method was initially located in ROI2D, ROI3D... classes).
 - introduced intersect(..) method (method was initially located in ROI2D, ROI3D... classes).
* BooleanMask2D:
 - added getPoints() method (return points composing the mask).
 - added getComponents() method (return independent object mask).
 - added getEdgePoints() method (return mask contour points).
 - added getComponentsPoints() method (return points from each independent object).
* Centralized all kernels menu commands to actions:
 - FileActions: all file commands.
 - PreferencesActions: launch preferences panel commands.
 - SequenceOperationActions: sequence manipulation commands.
 - WindowActions: window arrangement / opening commands.
 - GeneralActions: all others commands.
 - RoiActions: ROI panel actions.
* Canvas2D:
 - added void translate(...) method.
* Added Clipboard class for easy copy/paste operations in Icy.
* IcyAbstractAction:
 - now supports background action execution (with progressbar)
 - added GetRichToolTip() method to retrieve the action RichToolTip.
* IcyCommandxxxButton now support IcyAbstractAction.
* added AbstractSequenceModel class for easy SequenceModel implementation.
* added PluginSearchProvider interface: a plugin implementing this interface provides results for the global search bar.
* Removed NetworkConnectionListener to only keep InternetAccessListener.
* IcyFrame:
 - added dispose() method to ensure frame close and release.
 - added getVisibleRect() method.
* Added new methods to the SwimmingPool class so we can now manipulate objects depending their names.
* Added SwimmingObjectChooser component to select specific object type from the swimming pool.
* Changed default pixel size unit to m and time interval to second (compatible with OME).
* Added convertToType methods can now rescale values on data bounds.
* Added XMLPreferences.getXMLNode() method to get XML node.
* Added WeakWindowFocusListener class.
* Added methods to LookAndFeelUtil.
* Changed IcyTextField event.
* Added PluginRichToolTip class.


Icy 1.2.7.0 - 10/09/2012
------------------------

Application:
* Entirely reworked the 'Sequence / Image operation' band:
  - new sequence resize feature.
  - new C/Z/T operations.
  - new color conversion feature.
  - general improvements.
* Better plugin error report.
* Better colormap preservation when switching from 2D to 3D canvas.
* Better Icy to ImageJ ROI conversion.
* Modified ROI2DPoint so it now intersects point and do not contains it (more consistent with other ROI).
* Better metadata support for multi serie image.
* Fixed preview in the image loading dialog so it consumes less memory if possible.
* Added chat status messages filtering.
* Added network proxy setting.
* Added link to online website and help.
* Added direct access to online plugins in taskbar.
* A lot of others minors fixes and improvements.

Developer:
* Loader:
  - added methods so we can now specify serie(s) to load.
  - added 'getMetaData(File file)' method to retrieve the metadata of an image file.
  - added 'loadImage(File file, int z, int t)' method to load a single image from multi image file.
  - added methods to hide the progress bar.
* Added methods to Saver class to hide the progress bar while saving.
* Added IcyBufferedImage.copyData(src, int srcChannel, int dstChannel) to only copy data for a specified channel.
* Added ExcelTable component to display excel type table.
* Added abstract method 'getViewComponent()' to IcyCanvas so we can always retrieve the display component in a Canvas.
* Added many components for all Sequence tools (SequencePreviewPane, SequenceRangePreviewPanel...)
* Added IcyBufferedImageUtil class (general IcyBufferedImage tools).
* Added methods to SequenceUtil class.
* Fixed cursor preservation on Canvas2D.
* Added MainInterface.getSequences(String name) to retrieve sequence by name.
* Fixed a bug in ImageDataIterator.
* Fixed a minor bug in ROI.getBooleanMask() method.
* Fixed a minor bug in ROI2D.contains() and ROI2D.intersects() methods.
* Added BooleanMask2D.getSubtractionMask(..) method.
* Added ROI2D.merge(..) method to apply OR, AND, XOR binary operation on severals ROI2D.
* Added ROI2D.subtract(roi1, roi2) method to do ROI subtraction.
* Added ShapeUtil.merge(..) and ShapeUtil.subtract(..) operations.
* Sequence.metaChanged(String name) method is now public so you can use it to notify custom metadata changes.
* Added a command line option to remove splash-screen.
* Removed some deprecation in IcyCanvas.
* Lot of refactoring and source reorganization (check deprecations).


Icy 1.2.6.1 - 06/07/2012
------------------------

Application:
* Fixed multiple image loading.
* Fixed multiple plugin error report frame.
* Better multi threads handling.
* Fixed a bug in FileUtil.delete(..) method which could cause lags.
* Improved preview (now support float data type) in the image load dialog.
* A lot of others minors fixed and improvements.

Developer:
* Some code rewrite & cleanup in Plugin and Workspace management.
* Some others minors changes or refactoring.


Icy 1.2.6.0 - 29/06/2012
------------------------

Application:
* TIF saving uses LZW compression by default.
* Added series selection dialog for multi series image file.
* Fixed daemons plugins start and stop operations.
* Fixed PermGen space problems.
* Better metadata preservation.
* cleanup and minors fixes...

Developer:
* PluginUpdater class has been splited in PluginUpdater and PluginUpdateFrame classes.
* Added ThumbnailComponent class to display image thumbnail with basic description.
* Added some methods in Loader class for better sequence / image / metadata loading...
* Added MetaDataUtil class which provide metadata utilities.
* Rewrote DataType class so getEnumContants() is working correctly.
* Simplified DataIterator.


Icy 1.2.5.0 - 18/06/2012
------------------------

Application:
* Improved GUI for colormap model loading.
* Improved native libraries loading.
* Preliminary headless support.
* Lot of minors fixes and improvements...

Developer:
* Added new general GUI components:
  - RangeSlider (slider representing a range).
  - ColormapIcon (icon representing a colormap).
* Added new GUI components for basic Sequence operation:
  - SequencePreviewPanel (sequence preview).
  - SequenceChooserPanel.
  - SequenceRangePreviewPanel class.
  - SequenceChooserPreviewPanel class.
  - SequenceChooserRangePreviewPanel class.
* Added PluginBundled interface when you need to bundle severals
  classes extending Plugin in a single JAR file (bundled plugins are
  usually hidden).
* Added HandledException class (permit to avoid report dialog for handled exception).
* Improved RangeComponent (can now display inner RangeSlider component).
* Improved SimpleITK integration.
* Added SwingX library.


Icy 1.2.4.1 - 21/05/2012
------------------------

Minor fix in update processing.


Icy 1.2.4.0 - 21/05/2012
------------------------

Application:
* Internet connection monitor (the CPU/memory monitor panel now displays an icon when you are not connected to internet).
* Ribbon minimization state is now saved and restored after applciation restart.
* Fixed ImageJ menu disappearing on MAC OSX.
* Plugin detail window rewritten (now correctly display HTML formated description).
* Improved window tile arrangement (take previous window position in account).
* Others tweaks, fixes or cleanup...

Developer:
* Added IdConfirmDialog class: 
  A ConfirmDialog containing a checkbox to not display confirmation next time.
* Removed IcyFileUtil and IcyNetworkUtil classes.
* Moved Plugin.report(...) to IcyExceptionHandler.report(...)
* Renamed FileDrop.Listener to FileDrop.FileDropListener.


Icy 1.2.3.1 - 26/04/2012
------------------------

Minor bug fix in image saving.


Icy 1.2.3.0 - 26/04/2012
------------------------

Application:
* Improved ImageJ integration:
  - ImageJ is now patched at runtime so we can use official builds and even update them.
  - no more AWT component, less refresh problems in general.
  - basic methods to convert Icy Sequence to ImageJ ImagePlus (with ROI preservation) and vice versa.
* Added safe background processes termination check when application exit.
* Canvas:
  - fixed a bug in layers display and event dispatch ordering.
* Canvas2D:
  - removed zoom operation on double-click (already on mouse wheel).
  - added shift modifier for aligned translation / rotation / scaling operations.
  - added filtering option.
* Canvas3D:
  - pixel size is taken from sequence metadata information (no more duplicated information).
* Loader:
  - multi series image are now opened in different sequences.
* ROI:
  - implemented alignment assistance with shift drag operation.
  - modified / tweaked ROI manipulation to make it more consistent.
  - improved rendering.
* Preferences:
  - added Canvas preferences panel.
  - added startup (daemon) plugins setup panel.
* Added an option to enable/disable sequence bounds refresh on the Histogram.
* Better metadata preservation on sequence save.
* File drag and drag operation now works also in multi windows mode.
* Added a workaround for the MAC OS JVM 1.6.0_29 update which cause a memory leak.
* Fixed an error on ROI creation when VTK was missing.
* Fixed an error in image saving (regression in 1.2.2.0).
* Lot of others minors fixes, tweaks and improvements.

Developer:
* Added Parallel Colt library.
* Added Xuggler library.
* Added DataIterator interface:
  This interface provides iteration for both read and write operation on double data.
* Added ImageDataIterator and SequenceDataIterator class for easy IcyBufferedImage and Sequence data manipulation.
* Added DataIteratorMath for basic math operations on DataIterator.
* Renamed CloseTabbedPane --> CloseableTabbedPane.
* Added ConfirmFrame class (non modal ConfirmDialog).
* Added LineAnchor2D and RectAnchor2D for easy Line / Square alignment on shift drag operation.
* IcyCanvas:
  - added canvasToImageLogDelta() methods.
* IcyCanvas2D:
  - added canvasToImageLogDelta() methods.
  - added getTransform() & getInverseTransform() methods which return AffineTransform object for fast canvas <--> image Graphics context change.
* Canvas2D:
  - give access now to CanvasView and CanvasMap objects.
* Canvas3D:
  - vtkPainter are now automatically added or removed to the renderer.
* ROI:
  - added getPosition / setPosition method.
  - added ROIUtil class which provides utilities for ROI.
  - added ROI.setEditable(..) and ROI.isEditable() methods so now we can have "Read Only" ROI.
  - added setPoints() methods to ROI2DPolygon and ROI2DPolyline.  
* ROIEvent:
  - added FOCUS, SELECTION and PROPERTY change event type.
  - removed POINT_xxx event type.
  - PROPERTY_CHANGE replace the NAME_CHANGE type event.  
* IcyIcon:
  - added supports to normal color image icon (use the 'alpha' proterty).
  - added setColor(Color) method to define the icon colorization when using alpha mask type image.
* Added GraphicsUtil class which provide some Graphics facilities as drawing multi line text, calculating text bounds...
* Sequence metadata object changed to OMEXMLMetadataImpl.
* Worker thread has name so we can recognize them.
* Added PluginThreaded interface so plugin start in a separate thread (replace old PluginStartAsThread which was not fully functional).
* Added PluginDaemon interface so plugin start automatically on application initialization.
  This is useful for enhancer type plugin.
* Some refactoring.


Icy 1.2.2.0 - 14/02/2012
------------------------

Application:
* Improved / fixed sequence image ordering from filename.
* Many improvements on Chat:
  - faster desktop rendering (fix lag issue on OSX).
  - support style & coloring from IRC.
  - support multi channels chat.
  - preferences panel.
* Some others minors fixes and improvements.

Developer:
* Added CloseTabbedPane component (basically a JTabbedPane with closable tabs).
* Added IRCUtil class (IRC utilities).
* Minors changes in Pixel/Band/ImagePosition classes.


Icy 1.2.1.1 - 03/02/2012
------------------------

Minor fix in chat nickname change.


Icy 1.2.1.0 - 03/02/2012
------------------------

Application:
* Added support for "multi windows mode" ( la GIMP or ImageJ).
* Added internal chat so users can discuss together easily:)
* Canvas2D:
 - fixed zoom centering when using '+' / '-' buttons.
 - added invert mouse wheel axis option.
* Cascade and Tile windows organization now work on multi screen.
* Fixed plugin installation from private repository protected by password.
* Some others minors fixes and improvements.


Developer:
* Improved ExternalizablePanel component, it now uses an IcyFrame for its frame form.
* Added overlay support to IcyDesktopPane (easy drawing on application DesktopPane).
* Added DateUtil (Data utilities) class.
* Added ExtTabbedPane component (JTabbedPane with ExternalizablePanel support).
* More access to Viewer and IcyCanvas object.
* T and Z navigation panel moved to IcyCanvas.
  So now when you override IcyCanvas you have to take care about panels configurations.
* added authentification support for NetworkUtil.download(...) method.
* Added WeakListener abstract class for easy weak listener implementation.
* some refactoring.



Icy 1.2.0.0 - 10/01/2012
------------------------

* ImageJ integration: you can now use ImageJ directly from Icy !
  This is still in beta stage and you may experiences some problems.
  You will see some errors messages coming from the ImageJ GUI construction, this is normal, just ignore them.
  We can remove completly these messages but we want to avoid bad practices with GUI creation and modification.
* Canvas2D: added new synchronization method.
* Canvas3D: severals fixes and improvements.
* Better meta data handling (compatible with OME).
* Fixed double image loading.
* Improved colormap handling for multi channel image.
* Colormap can be disabled.
* Optimization in colormap rendering.
* Can now disable colormap channel.
* Improved GUI update in general (faster).
* Reworked online plugins loader (simpler and faster).
* many internals changes and improvements.
* added JAI ImageIO library for JPEG2000 image.
* updater improvements.


Icy 1.1.3.0 - 14/11/2011
------------------------

* fixed bug with files restoring on update processing.
* minor changes on cropper tool.


Icy 1.1.2.0 - 08/01/2011
------------------------

* fixed a bug with unsigned short data type image.
* improved update processing.
