iiV 1.181 Changed the way slice ranges are utilized creating intensity projections so the projection search can procede backwards. Added no parameter intensityProject function to allow usage with simpler script command. Added browser or BROWSER property check so unix users can specify different browsers then netscape (i.e. java -Dbrowser="firefox"). Cleaned up CNUViewer handling of CNU.help.file and CNU.help.url property checks to give priority to defined properties followed by priority for local file. Added saving known system properties "CNU.help.file", "CNU.help.url", "CNU.defaults.file", "CNU.ColorDialog.path", "CNU.CoordinateMapDialog.path", "browser", "BROWSER", "proxySet", "http.proxyHost", "http.proxyPort", "ftpProxySet", "ftpProxyHost", and "ftpProxyPort" when saving viewer settings. Added setting script_rtn in ShowPointDialog.toScript(). Modified: iiv/CNUViewer.java iiv/display/IntensityProjection.java iiv/util/BrowserControl.java iiv/dialog/ShowPointDialog.java iiV 1.18 Added NIfTI file format reading, NEUROSTAT 3D SSP dat file reading, and intensity projections. added iiv/display/IntensityProjectionImage.java added iiv/io/CNUNiftiImgFile.java added iiv/io/ThreeDSSPFile.java added iiv/io/NiftiHeader.java added iiv/data/NiftiQFormCoordinateMap.java added iiv/data/NiftiSFormCoordinateMap.java removed unused iiv/data/ThreeDSSPCoordinateMap.java Modified to add intensity projections and ThreeDSSPFile: iiv/CNUViewerActions.java iiv/CNUViewer.java iiv/CNUViewerMenuBar.java iiv/dialog/ControlDialog.java iiv/display/CNUDisplay.java Modified to add options for getting coordinate maps and colormodel specific to data: iiv/data/CNUData.java Modified to only warn if script version greater then current script reader version: iiv/script/iiVBshScript.java Modified to fix rotation error and add complete classname to scripted version: iiv/data/LinearCoordinateMap.java Modified to improve handling of orientation labels with 2D rotations and unknown coordinate maps to seperated initialization from construction to allow overrides in children to grab coordinate map from data if available to not script coordinate map if not scriptable iiv/display/SingleImg.java Modified to handle color model: iiv/io/CNUAnalyzeImgFile.java Modified to fixed read loop problem that caused byte data type to throw read beyond end of file errors also decreased number of loop checks required to read given data: iiv/io/CNUImgFile.java Modified to add static invokeObjectMethod which didn't get used because ClassCastExceptions need to be caught by most invocations anyway: iv/util/DoCommand.java iiV 1.17 Completed adding bean shell scripting. This involved changing every displayable object that implemented scriptable. Cleaned up comments for javadoc. The @see parameter was broken in a lot of code because they referred to classes in other packages without complete names. Others had improper parameters because coder got sloppy. added iiv/script/iiVBshScript.java added iiv/script/iiVBshJConsole.java Modified to change scripting functions: iiv/script/CNUDisplayScript.java iiv/script/CNUScriptObjects.java iiv/script/CNUScriptVariables.java iiv/display/CNUColorModel.java iiv/display/CNUContainer.java iiv/display/CNUDisplay.java iiv/display/ComponentGroup.java iiv/display/DisplayBox.java iiv/display/DisplayColorMap.java iiv/display/DisplayColorMapQuilt.java iiv/display/DisplayComponentDefaults.java iiv/display/DisplayComponent.java iiv/display/DisplayDraw.java iiv/display/DisplayLine.java iiv/display/DisplayOval.java iiv/display/DisplayShape.java iiv/display/DisplayText.java iiv/display/GreyColorModel.java iiv/display/ScriptableDisplayComponent.java iiv/display/ShowPointControllerInterface.java iiv/display/ShowPointController.java iiv/display/ShowPointDialogInterface.java iiv/display/ShowPointDisplay.java iiv/display/ShowPointDisplayLine.java iiv/display/ShowPointTracker.java iiv/display/SimplePolygon.java iiv/display/SingleComponentCanvas.java iiv/display/SingleImg.java iiv/dialog/SaveDialog.java iiv/dialog/StatusWindow.java Modified to fix javadoc errors: a lot of sources iiV 1.162c Adding bean shell scripting iiV 1.162b changes to CNUViewerActions.java added "Select Same Data" option. changes to CNUViewer.java settable ShowPointcontroller started to add new auto_scaling options added iiv/CNUViewerMenuBar.java added iiv/data/ThreeDSSPCoordinateMap.java - not ready yet iiv/display/CNUDisplay.java - playing with getting RGB values - added selectSameObjectComponents & getSameObjectComponents procedure iiv/display/DisplayComponent.java - working on getImageRGB values - cliping fixes - working on mode mouse selects visible not top iiv/display/DisplayImagePopupMenu.java - added select same data action iiv/io/CNUImgFile.java - changes to data conversions stuff iiV1162/iiv/io/DICOM_DataElement.java - continued dicom additions iiV1162/iiv/io/DICOM_Tag.java - changed Item tag from DICOM_VR.UN to DICOM_VR.SQ iiV 1.162 Changed CNUColorModel to not trust IndexColorModel.equals because with JDK 1.4 scripts were re-using color model scripts that weren't equivalent because IndexColorModel.equals said the objects were. Changed to run print command from its own thread which allowed printing from IE applet. And changed iiv.display.CNUDisplay.update(graphics) to re-invoke itself in into the event thread. Left print and browse actions enabled in applet because they may be available depending on applet security. Changed delete and clear to not copy components to the clipboard. Copying to the clipboard sometimes slowed these processes plus it wrote over things purposely copied to the clipboard. It seems more straight forward to copy only via the copy option. In the future I might add a cut option. Changed the applet init (CNUViewer.init()) to read given file with threadSetFile instead of setFile. This allows an applet's init to complete in a more timely manner which seems to fix some browser display problems. Reverted CNUViewer.setFile function to not force running in event thread. Not sure why this was done in the first place but it caused threadSetFile to be worthless. May come back to haunt me later. Fixed problem copying and saving shapes as script - previously forgot to make them iiVScriptable. Added alpha weighted LinearImageFilter to reduce edge artifacts near transparent pixels. Also added index interpolation to give different smoothing look with IndexColorModels. Added rotate and zoom checkboxes from cnuviewerActions to FilterDialog to indicate rotating and/or zooming new images added to the display Added crop mode, slice limit, idim limit actions to CNUViewerActions and added crop mode check box to crop dialog. Added tooltip text to CropDialog Removed "Apply to Defaults" from crop dialog. Improved tool tip text for text and slider. Modified DisplayComponent to record colormodel from image producer if not already set and DisplayComponents grabColorModel option set. Images that use CNUStdImgFile such as gif and jpeg have to retrieve their colormodel this way. Specified more complete name for getting menu and dialog objects to reduce searching when getting the class for the name. Classes Modified: iiv/CNUViewer.java iiv/CNUViewerActions.java iiv/CNUViewerMenuBar.java iiv/dialog/ControlDialog.java iiv/dialog/CropDialog.java iiv/dialog/FilterDialog.java iiv/display/CNUDisplay.java iiv/display/DisplayBox.java iiv/display/DisplayComponent.java iiv/display/DisplayLine.java iiv/display/DisplayOval.java iiv/gui/EasyAddAbstractAction.java iiv/gui/TextAndSlider.java iiv/script/CNUDisplayScript.java iiv/filter/LinearImageFilter.java iiV 1.161 Fixed problem with last scaling indices - probably introduced with version 1.154. Added data type to ScaleDialog and use it when setting to default, positive & negative to stop confusing results. Added tooltip text to scale dialog. Added goto dialog. Added zoom mouse input zoom and tooltip text to filter dialog. Added checks to verify scriptedObjects variables were non-null before using Added a warning that pops up in the status window when the save dialog is hidden without doing a save after browsing a file. Because windows file browser has a save button and file write over that might make a user think they already saved. Classes added: iiv/dialog/GotoDialog.java Classes Modified: iiv/CNUViewer.java iiv/CNUViewerActions.java iiv/dialog/FilterDialog.java iiv/dialog/FormatDialog.java iiv/dialog/SaveDialog.java iiv/dialog/ScaleDialog.java iiv/dialog/ShowPointDialog.java iiv/display/CNUDisplay.java iiv/display/ShowPointController.java iiv/display/ShowPointControllerInterface.java ----------------------------------------------------------------------------------- iiV 1.16 Major change release. Seperated pieces of iiV into jar files and made iiV runnable without menus or dialogs (i.e. without the other jar files). Java reflection tools utilized to load dialog classes so the loader doesn't have to resolve them until needed and only if available. ShowPointDialog seperated into pieces with special interfaces to allow tracking without the full dialog. Added copy/paste options. Copying/pasting images only works with Java 2 version 1.3 or greater. System clipboard not available as applet in which case a local application only clipboard is used. Added CNUIntImage.java to store images that have no associated files (i.e. pasted images) as a script. Improved image popup menus and edit menu to share more buttons and enable or disable options based on current components and selections. Added clarify/unclarify options to ColorDialog. Classes added: Quite a few. Classes modified: Almost all. ----------------------------------------------------------------------------------- iiV 1.154 Major change to storing displayed objects as scripts. Changed iiVScriptable interface to pass CNUScriptedObjects for keeping to track of all objects already scripted. Scripting now stores objects in script variables so objects don't have to be scripted again if equal to already scripted objects. The equality test still needs improvement for some objects such as CNUColorModel. Added edit options for "Select Top", "Select Bottom" and "Group Overlapping". Made groups zoomable. This added new methods to ComponentGroup that are called by the script but if these calls fail when the script is run in earlier versions of iiV the group will still be displayed properly. Therefore script version not incremented. Added ShowPointDialog routines to stop and restart all tracking for an array of components. Fixed lost of tracking when components were rearranged front/back. Classes added: Classes modified: CNUViewer.java data/CNUDimensions.java data/CNUScale.java data/CoordinateMap.java data/LinearCoordinateMap.java dialog/ColorDialog.java dialog/ShowPointDialog.java display/CNUColorModel.java display/CNUDisplay.java display/ComponentGroup.java display/DisplayBox.java display/DisplayColorMap.java display/DisplayColorMapQuilt.java display/DisplayComponent.java display/DisplayLine.java display/DisplayOval.java display/DisplayText.java display/ShowPoineDisplay.java display/SingleImg.java io/CNUDataConversions.java io/CNUEcat7ImgFile.java io/CNUFile.java io/CNURawImgFile.java io/CNUStdImgFile.java script/CNUDisplayScript.java script/CNUScriptObjects.java script/ParametersScripted.java script/iiVScriptable.java util/DisplayNumberFormat.java util/FileListElement.java ----------------------------------------------------------------------------------- iiV 1.153 Need to recall changes ----------------------------------------------------------------------------------- iiV 1.152 Need to recall changes ----------------------------------------------------------------------------------- iiV 1.151 Changed initialization of standard cursor to hopefully prevent wait cursor from becoming constant. Modified DICOM file handling to support RGB files from CMRR 3T scanner. Also had to change creation of SingleImg raw image to support integer data for RGB. Added more info to some toString commands for debugging help. Classed added: Classes Modified: CNUDisplay.java CNUImgFile.java CNUViewer.java DICOMImgFile.java DICOM_VR.java DICOM_Tag.java DICOM_DataElement.java SingleImg.java ----------------------------------------------------------------------------------- iiV 1.15 Major change release. Modified all gui interfaces to use swing components and added a menu bar with pull down options for most major functions. The old control panel is still available. Also added limited support for DICOM files. Classes added: Quite a few. Classes modified: Almost all. ----------------------------------------------------------------------------------- iiV 1.142 Classes added: CMRRSdtImgFile.java CNURowLayoutManager.java CNUContainer.java CNUEcat7Header.java CNUEcat7ImgFile.java CNUScriptVariables.java FormatTools.java ShowPointDisplayLine.java SliceNumber.java StatusWindowShowPointDisplay.java NumberFormattable.java Classes modified: CNUDisplay.java CNUDisplayScript.java CNUDimensions.java CNUStdImgFile.java CNUViewer.java ComponentGroup.java CoordinateMap.java DisplayColorMap.java DisplayColorMapQuilt.java DisplayDraw.java EditColorDialog.java GridDialog.java LinearCoordinateMap.java SaveDialog.java SingleComponentCanvas.java ShapeColorFilter.java ShowPointDisplay.java ShowPointDialog.java ShowPointImage.java SingleImg.java Classes removed: RunParseSingleLine.java Modification descriptions: Added Ecat 7 file format. Not all Ecat 7 image types supported. Added formatting control for numbers displayed in labels. Pressing the "Labels" button brings up the number format tool. This tool allows setting the number of digits left and right of the decimal point, whether commas are displayed, whether exponents are displayed, what multiples of 10 are allowed for exponents and the symbol that denotes the exponent. Added features to display point location values of multiple images simultaneously based on the mouse location over a single image with optional crosshairs, logging of location and values, tracking via mapped locations, and automatic update of slices to current point slice. Tracking via mapped locations involves mapping the point from the mouse location image via its coordinate map (usually into Talairach space) to a point on the other images via their coordinate map. With a crosshair displayed the point location over an image may also be updated by holding the alt key and pressing the left, right, down or up keys. The step amount defaults to 1 but may be updated to any integer value by typing that number before hitting an arrow key. This update amount is shared with arrow key translating of objects (holding control key instead of alt) and arrow key translating of scroll bar (no modifying key). Fixed a problem with ShapeColorFilter that occurred on some Window platforms. Text and shapes when filtered, as with zoom, rotate or crop, failed to appear but remained as displayed objects causing repaint havoc. An ArrayIndexOutOfBounds exception was thrown but hard to recognize because the type and location scrolled out of view in the DOS window. Finally installed emacs with its infinite scroll DOS shell on a machine with the problem. Problem caused by the index color model routine, getRGB, not handling byte values which became negative when cast as int. Fixed by converting the byte to int with CNUTypes.UnsignedByteToInt. Added CNUContainer and CNURowLayoutManager classes to handle some features in the ShowPointDialog window. Eventually the main display window canvas should also extend CNUContainer. Corrected CNUTypes.copyArray to correctly handle float or double input data types. Previously truncated data to int before scaling causing problems displaying float values less then 1. Fixed dragging problem with alt and cntrl keys under Java 2 caused by keys generating keypressed events which interrupted and nullified drags. Fixed handling of front and back with multiple components selected. Previously order often became confused with some components not being re-ordered. Added fromSpace method to CoordinateMap and LinearCoordinateMap. Removed synchronize calls from LinearcoordinateMap. Removed ComponentGroup.getOriginOffset() method and instead store the offset on construction with setLocation() which may be queried with getLocation() before adding to a container. Added ability to save region as a script utilizing groups. Added class CNUScriptVariables for storage, parsing and passing of script variables. Changed calls to Class.forName for known classes to use the class literal "ClassName".class. Removed arrayDuplicate functions from CNUDimensions. Instead use clone function to duplicate arrays. Known problems: Crosshairs sometimes draw outside the box when a group is cropped. Adding lines to the show point display sometimes fail inside web browsers because of security violation. The program tries to set check boxes selected in the primary line and post the event. The security manager doesn't allow access to the event queue for the post and the add line fails. A work around is to unset all check box for the primary line before adding new lines. On one known windows 98 platform with java 1.3_0_02 display objects including colorbars don't always repaint (or repaint but then get erased?) leaving blank areas. A work around is to use java 1.1.8. ----------------------------------------------------------------------------------- iiV 1.141 Classes modified: CNUDisplay.java CNUViewer.java GridDialog.java EditColorDialog.java SingleComponentCanvas.java Modification descriptions: Fixed problem with overlay that caused overlays not to appear until refreshed. Fixed problem that disabled setting grid offsets. Started playing with drag background problems. Two modes can currently be set. 1) (the default and selected with "C" over the display) updates the drag position relative to the component being dragged's current position. 2) (selected with "S" over the display) updates the drag position relative to the starting position of the component being dragged prior to dragging. The first works with Linux IBM JVM. The second works with Windows JDK 1.18. Neither work with Solaris. Note - These are not official features until I get them working completely. Removed resetting crop when cloning a component for display. Not sure why this feature was there. Maybe I'll remember someday. ----------------------------------------------------------------------------------- iiV 1.14 Classes added: CNUConversionTypes.java CNUDataConversions.java CNUDataInputStream.java ComponentGroup.java CoordinateMappable.java Croppable.java Flippable.java iiVScriptable.java Overlayable.java Rotatable.java ShowPointDisplay.java ShowPointImage.java Zoomable.java Classes modified: Almost all - at least to add Java document comments and declare classes public. Modification descriptions: Fixed a synchronization lock problem within CNUDisplay that caused lockups when trying to select or drag items while also displaying in the background. Added first attempt at dragging the display view within the scroll bar window with the middle mouse. Works ok on some platforms but not all. Upgrade to Java 2 or swing may be needed to get consistent results. Added overlay, group and ungroup features. Changed control panel to display zoom and rotate state check boxes instead of values. This allows turning on and off zoom and rotation without displaying the image filter dialog. Also added zoom off, zoom on, rotate off and rotate on features to script language. Improved input over StatusWindow to except KeyPressed and ignore KeyReleased and KeyTyped events. KeyPressed seems to be the most consistent across platforms. Still problems with enter character ('\n') being added to display line after processing not before on some platforms. This causes lines to be echoed on the same line as the original command and double enters after the line. Started converting CNUViewer from gridbaglayout to simpler row layout. This packs the buttons better. Swing will give better tools for panel layout. Fixed orientation labels to reflect CoordinateMap. Included current nonstandard fileTypes into viewer setting script. Fixed error in viewer setting script to generate the command fileType not fileTypes. Fixed error in CNUDisplayScript parsing "fileType" command when given a class name as a string not a class object. Save viewer settings will now save any nonstandard file types added to the choice list. Added ability to do byte swapping for Analyze images (detects byte swap need automaticly) and raw input images (by specifying in FileTypeDialog). This allows iiV to read files from little endian machines. Changed file lists to be initialized with spaces (" ") instead of empty strings ("") because IBM JDK 118 on Red Hat Linux 6.2 aborted when replacing these listings. Removed calls to Component getColorModel because method not found with Kaffe. May reinstall calls later. Did reinstall calls to Component.getColorModel. Gave up on Kaffe, now using IBM JDK 118 on Red Hat Linux 6.2 Corrected CNUViewer getFileObject to call getDefaultColorModel not getColorModel Known problems: Display scroll bars act up with IBM JDK 118 on Red Hat Linux 6.2. Drag background instead. Scrollbars sometimes produce error messages stating scrollbar value is less than the minimum scrollbar value. Background dragging on platforms other then IBM JDK 118 on Red Hat Linux 6.2 jumps around. Within Microsoft IE attach button and break button don't appear. Hopefully some of these AWT inconsistency will vanish when upgrading to Swing. ----------------------------------------------------------------------------------- iiV 1.132 Classes modified: AnalyzeHeader.java CNUData.java CNUDialog.java CNUDisplayConstraints.java CNUFile.java CNUImgFile.java CNURawImgFile.java ColorFilter.java ColorMapCanvas.java ColorMapQuiltCanvas.java ContinueDialog.java DisplayColorMap.java DisplayColorMapQuilt.java SingleComponentCanvas.java Modification descriptions: Declared constructors public to allow scripts to create instances of. Scripts including colormap components (DisplayColorMap and DisplayColorMapQuilt) were failing because of this. ----------------------------------------------------------------------------------- iiV 1.131 Classes modified: SingleImg.java SingleComponentCanvas.java ColorMapCanvas.java ColorMapQuiltCanvas.java CNUDisplay.java Modification descriptions: Fixed SingleImg text labels to not overlap even when font is increased or image cropped Fixed improper display of color table in color editor if created when cropping or flipping were defaults ----------------------------------------------------------------------------------- iiV 1.13 Classes added: CNUDisplayConstraints.java CNURawImgFile.java FileTypeDialog.java LineParseExecption.java LinearCoordinateMap.java ObjectConstructionException.java RunParseSingleLine.java Classes removed: CNUFilterImageSource.java CoordinateMapInterface.java RotateFilter.java ZoomFilter.java Classes modified: Almost all Modification descriptions: Improved color model editing to include alphas Added saving color models as scripts Added coordinate map editing Added new object constructions commands to script language Added variables to script language Modified CNUDisplay and DisplayComponent routines setSize(), getSize(), getPreferredSize(), validate() and invalidate() to better follow Java AWT Model Changed CNUDisplay to display object of class java.awt.Component Changed CNUDisplay to extend java.awt.Container Changed DisplayComponent to extend java.awt.Component Added file type button and choice menu to control panel Added file type dialog with class add button and raw file type settings Cleaned up synchronized statements here and there Changed CNUDisplayScript constructors to not require CNUDisplay. ----------------------------------------------------------------------------------- iiV 1.121 Classes modified: AnalyzeHeader.java CNUDisplay.java CNUDisplayScript.java CNUEcatHeader.java CNUViewer.java ColorMapQuiltCanvas.java SaveDialog.java Modification descriptions: Corrected viewing of sagittal and coronal input data from other orientations. Fixed ecat file reading problem that caused files with slice dimensions not multiples of the block size to fail. Fixed wrong size display of color edit grid when zoom set prior to invoking color edit window. Added ability to type script commands directly into the status window. Added enableStatusEdit and disableStatusEdit script commands. Changed script interpretor to treat text between square brackets "[]" as a comment. This allows repeating of script commands in the status window just by placing cursor at the end of a previous command and hitting enter. Modified command line help to support individual command queries For each script command, the status window now prints a unique identifier for each input source as well as the line number from the source when echoing the command.