[med-svn] r2919 - in trunk/packages/dicomscope/trunk/debian: . patches

malat-guest at alioth.debian.org malat-guest at alioth.debian.org
Wed Jan 7 17:27:31 UTC 2009


Author: malat-guest
Date: 2009-01-07 17:27:31 +0000 (Wed, 07 Jan 2009)
New Revision: 2919

Added:
   trunk/packages/dicomscope/trunk/debian/patches/DVPresentationState.patch
   trunk/packages/dicomscope/trunk/debian/patches/dsgui_351_360_changes.patch
Modified:
   trunk/packages/dicomscope/trunk/debian/get-orig-source
   trunk/packages/dicomscope/trunk/debian/patches/cmakelists.txt.patch
   trunk/packages/dicomscope/trunk/debian/patches/series
   trunk/packages/dicomscope/trunk/debian/rules
Log:
Update dicomscope to 3.6.0 version

Modified: trunk/packages/dicomscope/trunk/debian/get-orig-source
===================================================================
--- trunk/packages/dicomscope/trunk/debian/get-orig-source	2009-01-07 12:08:28 UTC (rev 2918)
+++ trunk/packages/dicomscope/trunk/debian/get-orig-source	2009-01-07 17:27:31 UTC (rev 2919)
@@ -26,6 +26,10 @@
 mv "$UPSTREAMDIR" "$DISTDIR"
 # How do I make tofrodos package compulsary ?
 find "$DISTDIR" -name *.java -exec dos2unix {} \;
+find "$DISTDIR" -name *.html -exec dos2unix {} \;
+find "$DISTDIR" -name *.h -exec dos2unix {} \;
+find "$DISTDIR" -name *.cpp -exec dos2unix {} \;
+find "$DISTDIR" -name *.txt -exec dos2unix {} \;
 
 GZIP=-9 tar -czf "$NAME"_"$VERSION".orig.tar.gz "$DISTDIR"
 

Added: trunk/packages/dicomscope/trunk/debian/patches/DVPresentationState.patch
===================================================================
--- trunk/packages/dicomscope/trunk/debian/patches/DVPresentationState.patch	                        (rev 0)
+++ trunk/packages/dicomscope/trunk/debian/patches/DVPresentationState.patch	2009-01-07 17:27:31 UTC (rev 2919)
@@ -0,0 +1,22 @@
+fix comp
+
+--- dsgui351/interface/libsrc/DVPresentationState.cpp	2009-01-07 17:53:32.279185000 +0100
++++ dsgui360/interface/libsrc/DVPresentationState.cpp	2009-01-07 17:53:07.074405000 +0100
+@@ -979,7 +979,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	long tx, ty, bx, by;
++	Sint32 tx, ty, bx, by;
+ 
+     OFCondition res = ps->getStandardDisplayedArea (tx, ty, bx, by);
+ 
+@@ -1014,7 +1014,7 @@
+ {
+     DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-    long tx, ty, bx, by;
++    Sint32 tx, ty, bx, by;
+ 
+     OFCondition res = ps->getImageRelativeDisplayedArea (tx, ty, bx, by);
+ 


Property changes on: trunk/packages/dicomscope/trunk/debian/patches/DVPresentationState.patch
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Modified: trunk/packages/dicomscope/trunk/debian/patches/cmakelists.txt.patch
===================================================================
--- trunk/packages/dicomscope/trunk/debian/patches/cmakelists.txt.patch	2009-01-07 12:08:28 UTC (rev 2918)
+++ trunk/packages/dicomscope/trunk/debian/patches/cmakelists.txt.patch	2009-01-07 17:27:31 UTC (rev 2919)
@@ -30,7 +30,7 @@
 +SUBDIRS(tkgui)
 --- /tmp/dicomscope/dsgui351/interface/libsrc/CMakeLists.txt	1970-01-01 01:00:00.000000000 +0100
 +++ dsgui351/interface/libsrc/CMakeLists.txt	2008-12-23 16:10:17.385621000 +0100
-@@ -0,0 +1,55 @@
+@@ -0,0 +1,60 @@
 +SET(dsgui_SRCS
 +DSRCodeValue.cpp
 +DSRCompositeValue.cpp
@@ -62,6 +62,11 @@
 +  ${DCMTK_DIR}/dcmpstat/include
 +  ${DCMTK_DIR}/include/dcmpstat
 +)
++# /usr/include/dcmtk/dcmjpeg/djdecode.h
++FIND_PATH( DCMTK_dcmjpeg_INCLUDE_DIR djdecode.h
++  ${DCMTK_DIR}/dcmjpeg/include
++  ${DCMTK_DIR}/include/dcmjpeg
++)
 +# /usr/include/dcmtk/dcmsr/dsrdoc.h
 +FIND_PATH( DCMTK_dcmsr_INCLUDE_DIR dsrdoc.h
 +  ${DCMTK_DIR}/dcmsr/include
@@ -72,7 +77,7 @@
 +INCLUDE_DIRECTORIES(
 +  ${DCMTK_INCLUDE_DIR}
 +  ${DCMTK_dcmpstat_INCLUDE_DIR}
-+  ${DCMTK_dcmsr_INCLUDE_DIR}
++  ${DCMTK_dcmsr_INCLUDE_DIR} ${DCMTK_dcmjpeg_INCLUDE_DIR}
 +)
 +
 +ADD_DEFINITIONS(-DHAVE_CONFIG_H  -DNDEBUG -DHAVE_STRSTREAM_H)
@@ -99,7 +104,7 @@
 +
 +ADD_CUSTOM_COMMAND(
 +  OUTPUT ${DICOMSCOPE_SOURCE_DIR}/DICOMscope/DICOMscope.class
-+  COMMAND ${JAVA_COMPILE} ARGS -d ../DICOMscope -classpath . DICOMscope.java
++  COMMAND ${JAVA_COMPILE} ARGS -d ../DICOMscope -classpath . dicomscope/DICOMscope.java
 +  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 +  DEPENDS ${javafiles}
 +  COMMENT "javac *.java"
@@ -107,7 +112,7 @@
 +
 +ADD_CUSTOM_COMMAND(
 +  OUTPUT ${LIBRARY_OUTPUT_PATH}/DICOMscope.jar
-+  COMMAND ${JAVA_ARCHIVE} ARGS cfm ${LIBRARY_OUTPUT_PATH}/DICOMscope.jar ${DICOMSCOPE_SOURCE_DIR}/tkgui/Manifest.txt ./
++  COMMAND ${JAVA_ARCHIVE} ARGS cfm ${LIBRARY_OUTPUT_PATH}/DICOMscope.jar ${DICOMSCOPE_SOURCE_DIR}/MANIFEST.MF ./
 +  # manifest thingy
 +  #COMMAND ${JAVA_ARCHIVE} ARGS i ${LIBRARY_OUTPUT_PATH}/DICOMscope.jar
 +  WORKING_DIRECTORY ${DICOMSCOPE_SOURCE_DIR}/DICOMscope

Added: trunk/packages/dicomscope/trunk/debian/patches/dsgui_351_360_changes.patch
===================================================================
--- trunk/packages/dicomscope/trunk/debian/patches/dsgui_351_360_changes.patch	                        (rev 0)
+++ trunk/packages/dicomscope/trunk/debian/patches/dsgui_351_360_changes.patch	2009-01-07 17:27:31 UTC (rev 2919)
@@ -0,0 +1,9219 @@
+The following patch is the actual diff in between dsgui351 and dsgui360.
+Great big thanks to Joerg Riesmeier from OFFIS DICOM Team for providing it.
+
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/dcmpsdmp.tcl dsgui360/DICOMscope/dcmpsdmp.tcl
+--- dsgui351/DICOMscope/dcmpsdmp.tcl	2001-03-28 11:10:06.000000000 +0200
++++ dsgui360/DICOMscope/dcmpsdmp.tcl	2003-10-07 18:33:58.000000000 +0200
+@@ -36,7 +36,7 @@
+             set sp1 [string first ")" $s]
+             $w insert end [string range $s 0 $sp1] tag_tag
+             set sp1 [expr int ($sp1 + 1)]
+-            set sp2 [expr int ($sp1 + 6)]
++            set sp2 [expr int ($sp1 + 3)]
+             $w insert end [string range $s $sp1 $sp2] tag_vr
+             set sp3 [string last "#" $s]
+             set sp1 [expr int ($sp2 + 1)]
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/DICOMscope.cfg dsgui360/DICOMscope/DICOMscope.cfg
+--- dsgui351/DICOMscope/DICOMscope.cfg	2001-06-21 10:29:34.000000000 +0200
++++ dsgui360/DICOMscope/DICOMscope.cfg	2003-12-18 11:51:46.000000000 +0100
+@@ -1,5 +1,5 @@
+ #
+-#  Copyright (C) 1998-2001, OFFIS
++#  Copyright (C) 1998-2003, OFFIS
+ #
+ #  This software and supporting documentation were developed by
+ #
+@@ -21,9 +21,9 @@
+ #  Purpose: Sample configuration file for DCMTK "dcmpstat" tools and the 
+ #    DICOMscope application
+ #
+-#  Last Update:      $Author: joergr $
+-#  Update Date:      $Date: 2001/02/23 13:32:09 $
+-#  CVS/RCS Revision: $Revision: 1.42 $
++#  Last Update:      $Author: meichel $
++#  Update Date:      $Date: 2003/09/05 16:30:17 $
++#  CVS/RCS Revision: $Revision: 1.48 $
+ #  Status:           $State: Exp $
+ #
+ 
+@@ -254,7 +254,7 @@
+ # Path to the DICOM query/retrieve server (Q/R SCP) to be used.
+ # The configuration filename is created from this entry by adding the file
+ # extension ".cfg".
+-#Server = imagectn
++Server = imagectn
+ 
+ # IP Port number on which the server listens for new connections.
+ # On Unix platforms, the receiver must be started with setuid root
+@@ -275,6 +275,10 @@
+ # the fork() command which is used for this purpose.
+ MaxAssociations = 16
+ 
++# Timeout (in seconds) for outgoing connection requests, must be larger 
++# than zero. Optional setting, default is Unlimited (wait for TCP/IP timeout).
++# Timeout = 5
++
+ # ----------------------------------------------------------------------------
+ # This section contains the settings for the graphical user interface (GUI).
+ [GUI]
+@@ -296,27 +300,27 @@
+ #Default: If HighResolutionGraphics, the default is 0\0\0 otherwise 255\255\255
+ #BackgroundColor = 255\255\255
+ 
+-# Sets the size of the fonts used in all GUI components.
++# Sets the size of the fonts used in all GUI components
+ # Default: If HighResolutionGraphics, the default is 30 otherwise 12
+ #FontSize = 30
+ 
+-# Sets the name of the fonts uesed in all GUI components.
++# Sets the name of the fonts uesed in all GUI components
+ # Default value: SansSerif
+ #FontName = SansSerif
+ 
+-# Sets the size of the fonts used for textual annotations.
++# Sets the size of the fonts used for textual annotations
+ # Default: If HighResolutionGraphics, the default is 48 otherwise 16
+ #FontSizeText = 16
+ 
+-# Sets the name of the fonts used for textual annotations.
++# Sets the name of the fonts used for textual annotations
+ # Default value: SansSerif
+ #FontNameText = SansSerif
+ 
+-# Sets the size of the font used for the process log.
++# Sets the size of the fonts used for the process log
+ # Default: If HighResolutionGraphics, the default is 30 otherwise 12
+ #FontSizeLog = 30
+ 
+-# Sets the name of the font used for the process log.
++# Sets the name of the fonts uesed for the process log
+ # Default value: Monospaced
+ #FontNameLog = Monospaced
+ 
+@@ -442,20 +446,10 @@
+ #
+ # ----------------------------------------------------------------------------
+ #
+-# ============================================================================
+-# The next nine settings described below are only used with entries of type 
+-# STORAGE and RECEIVER and have no meaning for PRINTER or LOCALPRINTER.
+-# ============================================================================
++# Timeout (in seconds) for outgoing connection requests, must be larger 
++# than zero. Optional setting, default is Unlimited (wait for TCP/IP timeout).
+ #
+-# Receive data in "bit preserving mode". In this mode, data is stored
+-# to file directly as read from network. Transfer syntax in file is
+-# identical to transfer syntax used for network transmission.
+-# If this mode is switched off (default), images are converted to explicit VR
+-# Little Endian format before storing in file, which makes it easier
+-# to burn images on CD-R in "General Purpose Image Exchange Profile" format.
+-# Optional entry, default is: false
+-#
+-# BitPreservingMode = false
++# Timeout = 5
+ #
+ # ----------------------------------------------------------------------------
+ #
+@@ -471,12 +465,12 @@
+ # The file should be located in the directory specified by 
+ # GENERAL/TLS/TLSDIRECTORY. 
+ #
+-# Store SCP usage: The TLS protocol requires that a TLS server
++# SCP usage: The TLS protocol requires that a TLS server
+ # must have a certificate. Therefore, this parameter is mandatory.
+ # If absent, the certificate file is loaded from "sitecert.pem" in the
+ # TLS directory.
+ #
+-# Store SCU usage: For a TLS client the certificate is optional.
++# SCU usage: For a TLS client the certificate is optional.
+ # Therefore, this setting is optional for Store SCUs.  If absent, no
+ # TLS authentication is performed for the client. Warning: Anonymous TLS
+ # may be susceptible to man-in-the-middle attacks.
+@@ -489,12 +483,12 @@
+ # to be used for TLS authentication. The file should be located in the 
+ # directory specified by GENERAL/TLS/TLSDIRECTORY. 
+ #
+-# Store SCP usage: The TLS protocol requires that a TLS server
++# SCP usage: The TLS protocol requires that a TLS server
+ # must have a certificate. Therefore, this parameter is mandatory.
+ # If absent, the certificate file is loaded from "sitekey.pem" in the
+ # TLS directory.
+ #
+-# Store SCU usage: For a TLS client the certificate is optional.
++# SCU usage: For a TLS client the certificate is optional.
+ # Therefore, this setting is optional for Store SCUs.  If absent, no
+ # TLS authentication is performed for the client. Warning: Anonymous TLS
+ # may be susceptible to man-in-the-middle attacks.
+@@ -569,8 +563,30 @@
+ #
+ # RandomSeed = random.dat
+ #
++#
++# ============================================================================
++# The next two settings described below are only used with entries of type 
++# STORAGE and RECEIVER and have no meaning for PRINTER or LOCALPRINTER.
++# ============================================================================
++#
++# Receive data in "bit preserving mode". In this mode, data is stored
++# to file directly as read from network. Transfer syntax in file is
++# identical to transfer syntax used for network transmission.
++# If this mode is switched off (default), images are converted to explicit VR
++# Little Endian format before storing in file, which makes it easier
++# to burn images on CD-R in "General Purpose Image Exchange Profile" format.
++# Optional entry, default is: false
++#
++# BitPreservingMode = false
++#
+ # ----------------------------------------------------------------------------
+ #
++# Silently ignore space padded SOP Class and SOP Instance UIDs in incoming
++# images. Optional setting, default is: false.
++#
++# CorrectUIDPadding = false
++#
++#
+ # ============================================================================
+ # The remaining settings described below are only used with entries of type 
+ # PRINTER and LOCALPRINTER and have no meaning for STORAGE or RECEIVER.
+@@ -996,15 +1012,56 @@
+ Certificate = sitecert.pem
+ PrivateKey = sitekey.pem
+ 
++# ----------------------------------------------------------------------------
++# Print SCP that supports most options of the DICOM Print protocol and
++# the IHE technical framework requirements for Print Server actors:
++#   - supports Presentation LUT and 12-bit image transmission
++#   - layouts: 1x1, 1x2, 2x2, 2x3, 3x3, 3x4, 3x5, 4x4, 4x5
++#   - supports typical defined terms for empty image density, film 
++#     destination, film size ID, magnification type, medium type, resolution
++#     ID, requested decimate/crop behaviour, image size and trim.
++# ----------------------------------------------------------------------------
++
++[IHEFULL]
++Aetitle = IHEFULL
++Description = IHE Full Print SCP
++Hostname = localhost
++Port = 10005
++Type = LOCALPRINTER
++
++BorderDensity = 150\20\BLACK\WHITE
++DisableNewVRs = false
++DisplayFormat=1,1\1,2\2,2\2,3\3,3\3,4\3,5\4,4\4,5
++EmptyImageDensity = 20\BLACK\WHITE
++FilmDestination = MAGAZINE\PROCESSOR\BIN_1\BIN_2
++FilmSizeID = 8INX10IN\10INX12IN\10INX14IN\11INX14IN\14INX14IN\14INX17IN\24CMX24CM\24CMX30CM
++ImplicitOnly  = false
++MagnificationType = REPLICATE\BILINEAR\CUBIC\NONE
++MaxDensity = 320
++MaxPDU = 32768
++MediumType = PAPER\CLEAR FILM\BLUE FILM
++MinDensity = 20
++OmitSOPClassUIDFromCreateResponse = false
++PresentationLUTMatchRequired = false
++PresentationLUTinFilmSession = false
++ResolutionID = STANDARD\HIGH
++SmoothingType = NONE
++Supports12Bit = true
++SupportsDecimateCrop = true
++SupportsImageSize = true
++SupportsPresentationLUT = true
++SupportsTrim = true
+ 
+ # ----------------------------------------------------------------------------
+-# this is a Print SCP running on the same machine as DICOMscope, accepting
+-# associations on port 10006.
++# Print SCP that only supports the absolute minimum that is required by
++# the IHE technical framework for Print Server actors:
++#   - supports Presentation LUT and 12-bit image transmission
++#   - supports STANDARD\1,1 layout only
+ # ----------------------------------------------------------------------------
+ 
+-[PRINTSCP]
+-Aetitle = PRINTSCP
+-Description = IHE Print SCP
++[IHERESTRICTED]
++Aetitle = IHERESTRICTED
++Description = IHE Restricted Print SCP
+ Hostname = localhost
+ Port = 10006
+ Type = LOCALPRINTER
+@@ -1019,11 +1077,101 @@
+ MediumType = STOREDPRINT
+ OmitSOPClassUIDFromCreateResponse = true
+ PresentationLUTMatchRequired = true
+-PresentationLUTPreferSCPRendering = true
+ PresentationLUTinFilmSession = false
+ Supports12Bit = true
+ SupportsPresentationLUT = true
+ 
++
++# ----------------------------------------------------------------------------
++# Print SCP that supports most options of the DICOM Print protocol and
++# the IHE technical framework requirements for Print Server actors:
++#   - supports Presentation LUT and 12-bit image transmission
++#   - layouts: 1x1, 1x2, 2x2, 2x3, 3x3, 3x4, 3x5, 4x4, 4x5
++#   - supports typical defined terms for empty image density, film 
++#     destination, film size ID, magnification type, medium type, resolution
++#     ID, requested decimate/crop behaviour, image size and trim.
++# This Print SCP communicates over TLS and requires peer authentication.
++# ----------------------------------------------------------------------------
++
++[IHEFULL_TLS]
++Aetitle = IHEFULL_TLS
++Description = IHE Full Print SCP
++Hostname = localhost
++# in the IHE Year 2 MESA release, this printer listened on port 10005
++Port = 10012
++Type = LOCALPRINTER
++
++BorderDensity = 150\20\BLACK\WHITE
++DisableNewVRs = false
++DisplayFormat=1,1\1,2\2,2\2,3\3,3\3,4\3,5\4,4\4,5
++EmptyImageDensity = 20\BLACK\WHITE
++FilmDestination = MAGAZINE\PROCESSOR\BIN_1\BIN_2
++FilmSizeID = 8INX10IN\10INX12IN\10INX14IN\11INX14IN\14INX14IN\14INX17IN\24CMX24CM\24CMX30CM
++ImplicitOnly  = false
++MagnificationType = REPLICATE\BILINEAR\CUBIC\NONE
++MaxDensity = 320
++MaxPDU = 32768
++MediumType = PAPER\CLEAR FILM\BLUE FILM
++MinDensity = 20
++OmitSOPClassUIDFromCreateResponse = false
++PresentationLUTMatchRequired = false
++PresentationLUTinFilmSession = false
++ResolutionID = STANDARD\HIGH
++SmoothingType = NONE
++Supports12Bit = true
++SupportsDecimateCrop = true
++SupportsImageSize = true
++SupportsPresentationLUT = true
++SupportsTrim = true
++
++# TLS settings
++UseTLS = true
++CipherSuites = TLS_RSA_WITH_3DES_EDE_CBC_SHA\TLS_RSA_WITH_NULL_SHA
++RandomSeed = iheprt1.rnd
++PeerAuthentication = REQUIRE
++Certificate = sitecert.pem
++PrivateKey = sitekey.pem
++
++
++# ----------------------------------------------------------------------------
++# Print SCP that only supports the absolute minimum that is required by
++# the IHE technical framework for Print Server actors:
++#   - supports Presentation LUT and 12-bit image transmission
++#   - supports STANDARD\1,1 layout only
++# This Print SCP communicates over TLS and requires peer authentication.
++# ----------------------------------------------------------------------------
++
++[IHERESTRICT_TLS]
++Aetitle = IHERESTRICT_TLS
++Description = IHE Restricted Print SCP
++Hostname = localhost
++Port = 10013
++Type = LOCALPRINTER
++
++DisableNewVRs = true
++DisplayFormat=1,1
++FilmDestination = STOREDPRINT
++FilmSizeID = 8INX10IN\11INX14IN\14INX17IN
++ImplicitOnly = true
++MagnificationType = REPLICATE\BILINEAR\CUBIC\NONE
++MaxDensity = 320
++MaxPDU = 16384
++MediumType = STOREDPRINT
++OmitSOPClassUIDFromCreateResponse = true
++PresentationLUTMatchRequired = true
++PresentationLUTinFilmSession = false
++Supports12Bit = true
++SupportsPresentationLUT = true
++
++# TLS settings
++UseTLS = true
++CipherSuites = TLS_RSA_WITH_3DES_EDE_CBC_SHA\TLS_RSA_WITH_NULL_SHA
++RandomSeed = iheprt2.rnd
++PeerAuthentication = REQUIRE
++Certificate = sitecert.pem
++PrivateKey = sitekey.pem
++
++
+ # ============================================================================
+ # Logins and Certificates for Digital Signature purposes 
+ # are defined in the following section.
+@@ -1112,9 +1260,9 @@
+ Name = Default User
+ DicomName = User^Default^^^
+ Organization = Kuratorium OFFIS e.V.
+-Code = 99_OFFIS_DCMTK\\USR.000001\DICOMscope 3.5 Default User
+-Certificate = dsuscert.pem
+-PrivateKey = dsuskey.pem
++Code = 99_OFFIS_DCMTK\\USR.000001\DICOMscope 3.6.0 Default User
++Certificate = usercert.pem
++PrivateKey = userkey.pem
+ 
+ # ============================================================================
+ # Print Presentation LUT files are defined in the following section.
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/icons/about.html dsgui360/DICOMscope/icons/about.html
+--- dsgui351/DICOMscope/icons/about.html	2009-01-07 17:53:29.208297000 +0100
++++ dsgui360/DICOMscope/icons/about.html	2009-01-07 17:53:10.040397000 +0100
+@@ -54,7 +54,7 @@
+                 Institute for Microtherapy<br>
+                 Universitaetsstr. 142<br>
+                 D-44799 Bochum; Germany<br>
+-                <a href="http://www.microtherapy.de/go/cs/">http://www.microtherapy.de/go/cs/</a><br>
++                <a href="http://www.microtherapy.de/">http://www.microtherapy.de/</a><br>
+                 - Graphical User Interface -<br>
+             </td>
+         </tr>
+@@ -63,8 +63,7 @@
+             <b>Feel free and have a look at our web pages:</b>
+                 
+                 <br>
+-                &nbsp;<a href="http://www.microtherapy.de/go/dicomscope/">http://www.microtherapy.de/go/dicomscope/</a> 
+-                and <a href="http://www.offis.de/projekte/dicom/">http://www.offis.de/projekte/dicom/</a>
++                &nbsp;<a href="http://dicom.offis.de/dscope">http://dicom.offis.de/dscope</a>
+                 
+             </td>
+        
+Binary files dsgui351/DICOMscope/tls/iheprt1.rnd and dsgui360/DICOMscope/tls/iheprt1.rnd differ
+Binary files dsgui351/DICOMscope/tls/iheprt2.rnd and dsgui360/DICOMscope/tls/iheprt2.rnd differ
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/tls/sitecert.pem dsgui360/DICOMscope/tls/sitecert.pem
+--- dsgui351/DICOMscope/tls/sitecert.pem	2001-06-01 18:47:40.000000000 +0200
++++ dsgui360/DICOMscope/tls/sitecert.pem	2003-12-18 12:19:52.000000000 +0100
+@@ -1,35 +1,26 @@
+ Certificate:
+     Data:
+         Version: 3 (0x2)
+-        Serial Number: 1 (0x1)
++        Serial Number: 8 (0x8)
+         Signature Algorithm: md5WithRSAEncryption
+         Issuer: C=DE, ST=Niedersachsen, L=Oldenburg, O=OFFIS, OU=Healthcare Information and Communication Systems, CN=DCMTK Certification Authority/Email=dicom at offis.de
+         Validity
+-            Not Before: Jun  1 16:29:40 2001 GMT
+-            Not After : Jun  1 16:29:40 2003 GMT
+-        Subject: C=DE, ST=Niedersachsen, L=Oldenburg, O=OFFIS, OU=Healthcare Information and Communication Systems, CN=DICOMscope 3.5 Default Site Certificate/Email=dicom at offis.de
++            Not Before: Sep  5 10:18:54 2003 GMT
++            Not After : Sep  5 10:18:54 2006 GMT
++        Subject: C=DE, ST=Niedersachsen, L=Oldenburg, O=OFFIS, OU=Healthcare Information and Communication Systems, CN=DICOMscope 3.6.0 Default Site Certificate/Email=dicom at offis.de
+         Subject Public Key Info:
+             Public Key Algorithm: rsaEncryption
+-            RSA Public Key: (2048 bit)
+-                Modulus (2048 bit):
+-                    00:cf:70:7d:33:a1:6e:69:74:76:a3:2d:ce:d8:4f:
+-                    16:b9:6d:6b:c6:ac:62:fa:e2:4a:b4:37:78:c7:76:
+-                    0d:66:ee:b3:a5:1c:25:37:8d:a2:48:80:60:97:36:
+-                    00:37:85:60:9f:5b:9e:0d:0e:02:29:21:31:26:9d:
+-                    92:bc:5c:7c:b6:63:17:e9:c6:5f:37:8b:0f:a6:c6:
+-                    73:18:30:5b:24:65:cc:2c:d6:3c:41:47:e9:65:97:
+-                    c0:1c:32:4f:1f:2f:1b:47:a9:9c:02:7c:70:66:ff:
+-                    c2:6a:28:c9:7d:8c:94:cd:06:95:58:f5:d1:d2:83:
+-                    f1:d2:89:8a:0c:97:04:2b:49:07:d8:1e:ba:16:7b:
+-                    a6:95:a8:86:cc:d5:bc:1c:cc:38:fb:54:0f:00:ad:
+-                    6f:d7:4f:2c:f8:f5:70:99:73:68:a0:bb:de:fc:d2:
+-                    71:60:7e:eb:fe:c7:b9:2d:4a:19:51:c7:77:24:a7:
+-                    46:ba:c6:6e:56:c5:89:2c:eb:4d:59:9a:cd:71:b0:
+-                    a3:85:00:d1:3d:55:26:47:34:c9:34:42:6a:82:09:
+-                    0e:eb:00:1d:d6:39:49:cf:4d:29:97:d8:8d:8d:84:
+-                    be:f7:7f:ba:83:9b:eb:0b:b7:a8:66:96:f3:99:df:
+-                    e5:53:73:4b:71:47:b3:d3:17:99:21:d5:47:26:14:
+-                    8a:1f
++            RSA Public Key: (1024 bit)
++                Modulus (1024 bit):
++                    00:b0:49:ff:02:09:58:00:a3:b9:9a:ea:ff:b8:ac:
++                    a5:a4:2c:c0:3f:c1:dc:95:3b:ad:48:fa:bb:1b:12:
++                    16:de:18:2d:c5:62:85:38:13:88:81:ba:b9:9c:9e:
++                    60:e1:1f:5f:da:5f:4f:e4:32:d2:12:40:ee:e7:12:
++                    3c:69:1f:d4:aa:08:cf:d4:07:14:9a:e2:3c:58:5d:
++                    b7:69:71:d4:25:bd:e1:cb:81:b8:d1:56:80:94:ec:
++                    ad:b3:29:8f:67:b3:c4:c7:3a:34:c9:6c:d0:4e:45:
++                    e3:0a:fa:75:dd:e6:41:91:26:c8:0d:53:9c:6b:28:
++                    25:32:84:e8:4e:9d:97:aa:67
+                 Exponent: 65537 (0x10001)
+         X509v3 extensions:
+             X509v3 Basic Constraints: 
+@@ -37,76 +28,73 @@
+             Netscape Comment: 
+                 OpenSSL Generated Certificate
+             X509v3 Subject Key Identifier: 
+-                3B:C7:89:7D:D9:5B:FD:13:44:0E:D5:2E:79:E2:F8:57:5E:1A:FE:FE
++                BA:3D:8D:37:AB:83:45:3A:2B:E5:01:3A:2A:7D:7E:CA:C9:41:87:A7
+             X509v3 Authority Key Identifier: 
+                 keyid:0B:78:42:72:95:51:24:6D:D0:E5:16:78:B1:71:88:BB:3F:A3:DF:D5
+                 DirName:/C=DE/ST=Niedersachsen/L=Oldenburg/O=OFFIS/OU=Healthcare Information and Communication Systems/CN=DCMTK Certification Authority/Email=dicom at offis.de
+                 serial:00
+ 
+     Signature Algorithm: md5WithRSAEncryption
+-        5c:3d:86:88:37:aa:a1:8e:2e:fa:e2:bc:35:c5:01:40:12:11:
+-        a8:2d:d5:3d:3f:36:47:36:75:d5:c0:ae:93:d3:69:77:a5:07:
+-        a3:5a:8c:a2:6f:a1:9f:9d:5a:72:e8:fc:a2:d3:b0:87:fd:71:
+-        25:2c:80:ef:05:14:54:6b:c2:82:ff:a2:01:fe:ce:93:7e:e9:
+-        d5:85:96:21:95:25:fe:15:11:c4:ab:25:c2:de:5f:29:52:6f:
+-        8e:ea:ed:4d:12:76:60:af:97:dc:aa:ed:d1:7d:f4:bc:eb:04:
+-        25:f6:2c:6d:e2:a4:0e:a0:f0:e3:2b:78:41:21:5a:3f:b5:81:
+-        de:dd:68:52:f6:2c:51:ff:80:2f:44:89:68:53:43:18:e3:fe:
+-        88:f4:5d:38:ea:df:e2:a8:f6:36:66:cc:5a:ee:fa:fe:dc:13:
+-        c6:af:df:e0:48:b2:ad:7d:2d:83:e5:5f:24:f7:17:d7:96:db:
+-        92:22:ca:ab:23:85:bc:5a:a3:b2:a2:fe:fc:97:7c:96:59:ec:
+-        cf:1a:1e:32:0b:4d:d2:95:1d:f7:9a:10:47:02:ee:66:27:13:
+-        7a:8f:67:1a:69:19:f4:ad:c8:3e:cd:1d:44:a5:26:f6:a6:db:
+-        20:5b:44:ac:b8:55:13:44:f1:dd:2d:6c:ab:41:22:78:63:6e:
+-        28:49:a9:8a:eb:f3:c3:ec:20:50:06:28:aa:d1:1c:2c:a9:f3:
+-        32:e6:e3:10:8a:3f:f1:84:0f:d7:61:c0:9c:21:f9:e9:02:33:
+-        d1:74:e9:c4:4f:69:48:a8:7d:72:2f:06:26:c5:1c:f6:4f:d2:
+-        29:f8:60:56:65:db:84:bc:6b:b7:fa:a4:88:0b:1c:33:7f:42:
+-        22:37:43:d0:e5:49:d3:19:50:5d:0c:2d:2f:a9:02:76:07:bd:
+-        d4:82:cf:15:37:d0:10:ed:62:d6:4c:67:82:69:bc:e2:67:fd:
+-        c7:c8:05:ef:78:c9:a2:29:e2:07:27:07:2d:71:d0:e0:b9:fa:
+-        ea:03:00:74:bd:b7:c6:9e:07:6c:dd:45:94:80:4c:9f:d8:35:
+-        78:08:4c:73:93:6a:3d:34:8e:ad:86:bf:9a:a8:fe:37:dd:d6:
+-        8a:65:42:9b:56:cf:7a:bf:92:82:27:0b:d2:12:0e:37:7f:df:
+-        af:98:e1:15:fd:ad:4c:2a:21:2e:57:77:35:aa:38:c6:6b:b2:
+-        b3:bf:f0:aa:dc:66:81:b6:11:8e:c9:f9:a0:9d:38:51:85:42:
+-        34:db:eb:96:49:09:97:61:dc:78:3b:a6:cb:25:a7:c6:c0:1b:
+-        cd:b6:3b:d3:04:a2:a4:c1:a2:b7:cf:4e:06:a8:23:8c:85:ad:
+-        39:3c:5d:a1:8a:26:f1:b6
++        9c:22:35:9f:bb:70:a4:6f:f0:28:7e:d0:a9:2f:24:eb:27:c3:
++        ed:44:c2:49:19:c2:68:c6:c0:ca:83:a8:ce:55:a6:b8:cb:e9:
++        fa:44:1e:18:a8:b3:47:0d:c4:8b:90:13:ca:39:69:1c:1b:1b:
++        b3:87:e9:8d:bf:75:27:c6:5b:17:3e:6f:20:ec:0d:fb:5d:11:
++        b4:9d:a5:87:39:15:43:f6:8f:e1:fd:06:05:f3:6e:b0:66:5e:
++        66:27:75:15:63:d6:17:ba:9d:a3:9e:97:fc:03:c6:06:a1:15:
++        16:f0:6f:5a:8f:66:05:6c:fb:78:20:15:24:a3:0a:9d:77:f7:
++        76:1a:33:61:05:49:a9:82:77:0b:50:57:e6:7f:c4:12:74:57:
++        3a:70:a9:08:9e:d6:1d:2f:d2:a9:a8:fd:ba:6f:78:74:16:cd:
++        76:05:fd:56:05:4e:19:25:75:90:fb:97:23:9f:1c:a7:05:d5:
++        ce:e5:0b:33:80:cf:82:9c:be:d1:50:9f:1e:13:cc:62:c2:13:
++        20:ff:02:1d:8e:05:df:e2:e0:e5:3b:99:0e:48:53:61:d2:5b:
++        ea:be:fe:bf:82:bb:97:be:ac:e0:32:ab:d5:bd:10:00:f7:f2:
++        bb:7f:61:d9:b6:6f:b1:db:d8:96:a3:1f:46:9e:29:e9:43:b9:
++        76:cc:04:90:50:67:ab:11:59:0d:6d:44:1f:ff:21:15:9f:3f:
++        cb:f6:f2:dc:64:47:88:fc:68:c4:60:20:00:d1:b1:8d:f6:d0:
++        2a:1f:e8:b7:36:eb:fd:48:d6:c0:90:af:0a:93:7c:fc:b6:4b:
++        39:3b:87:7d:e3:10:d9:b9:c4:bb:33:f2:a2:8e:05:81:ec:25:
++        2c:cf:73:65:76:04:d5:67:e0:c0:de:a9:a1:16:eb:96:f3:de:
++        1d:db:df:cc:63:0a:38:96:d6:eb:d9:86:c6:b7:82:ff:d1:48:
++        b8:f9:81:c4:f0:43:a2:39:54:c7:ad:8c:36:e9:8d:72:cc:c2:
++        60:ec:29:94:04:35:ff:58:14:02:65:63:89:a6:b9:ff:96:84:
++        04:f6:56:7f:7e:39:18:8c:44:95:b7:25:2a:2f:96:34:bb:cb:
++        f3:b8:f7:db:eb:87:e6:74:a9:45:88:97:8f:32:07:a8:11:d3:
++        e9:77:52:21:48:cc:43:e7:e5:c3:c3:06:53:7a:df:c1:1d:41:
++        2b:b5:57:b2:2b:35:52:0f:a1:e9:50:7f:73:98:aa:02:9c:b5:
++        91:89:69:94:c4:48:5c:ff:a3:6d:2e:f2:b8:9e:10:73:ca:73:
++        6d:d4:2f:54:6d:a2:4f:1b:a8:46:d6:50:c1:ed:94:3e:c1:c2:
++        ea:52:c3:5e:11:11:bc:0b
+ -----BEGIN CERTIFICATE-----
+-MIIGdjCCBF6gAwIBAgIBATANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCREUx
++MIIF9DCCA9ygAwIBAgIBCDANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCREUx
+ FjAUBgNVBAgTDU5pZWRlcnNhY2hzZW4xEjAQBgNVBAcTCU9sZGVuYnVyZzEOMAwG
+ A1UEChMFT0ZGSVMxOTA3BgNVBAsTMEhlYWx0aGNhcmUgSW5mb3JtYXRpb24gYW5k
+ IENvbW11bmljYXRpb24gU3lzdGVtczEmMCQGA1UEAxMdRENNVEsgQ2VydGlmaWNh
+ dGlvbiBBdXRob3JpdHkxHTAbBgkqhkiG9w0BCQEWDmRpY29tQG9mZmlzLmRlMB4X
+-DTAxMDYwMTE2Mjk0MFoXDTAzMDYwMTE2Mjk0MFowgdUxCzAJBgNVBAYTAkRFMRYw
++DTAzMDkwNTEwMTg1NFoXDTA2MDkwNTEwMTg1NFowgdcxCzAJBgNVBAYTAkRFMRYw
+ FAYDVQQIEw1OaWVkZXJzYWNoc2VuMRIwEAYDVQQHEwlPbGRlbmJ1cmcxDjAMBgNV
+ BAoTBU9GRklTMTkwNwYDVQQLEzBIZWFsdGhjYXJlIEluZm9ybWF0aW9uIGFuZCBD
+-b21tdW5pY2F0aW9uIFN5c3RlbXMxMDAuBgNVBAMTJ0RJQ09Nc2NvcGUgMy41IERl
+-ZmF1bHQgU2l0ZSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOZGljb21Ab2Zm
+-aXMuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPcH0zoW5pdHaj
+-Lc7YTxa5bWvGrGL64kq0N3jHdg1m7rOlHCU3jaJIgGCXNgA3hWCfW54NDgIpITEm
+-nZK8XHy2Yxfpxl83iw+mxnMYMFskZcws1jxBR+lll8AcMk8fLxtHqZwCfHBm/8Jq
+-KMl9jJTNBpVY9dHSg/HSiYoMlwQrSQfYHroWe6aVqIbM1bwczDj7VA8ArW/XTyz4
+-9XCZc2igu9780nFgfuv+x7ktShlRx3ckp0a6xm5WxYks601Zms1xsKOFANE9VSZH
+-NMk0QmqCCQ7rAB3WOUnPTSmX2I2NhL73f7qDm+sLt6hmlvOZ3+VTc0txR7PTF5kh
+-1UcmFIofAgMBAAGjggFXMIIBUzAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
+-cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUO8eJfdlb/RNE
+-DtUueeL4V14a/v4wgfgGA1UdIwSB8DCB7YAUC3hCcpVRJG3Q5RZ4sXGIuz+j39Wh
+-gdGkgc4wgcsxCzAJBgNVBAYTAkRFMRYwFAYDVQQIEw1OaWVkZXJzYWNoc2VuMRIw
+-EAYDVQQHEwlPbGRlbmJ1cmcxDjAMBgNVBAoTBU9GRklTMTkwNwYDVQQLEzBIZWFs
+-dGhjYXJlIEluZm9ybWF0aW9uIGFuZCBDb21tdW5pY2F0aW9uIFN5c3RlbXMxJjAk
+-BgNVBAMTHURDTVRLIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR0wGwYJKoZIhvcN
+-AQkBFg5kaWNvbUBvZmZpcy5kZYIBADANBgkqhkiG9w0BAQQFAAOCAgEAXD2GiDeq
+-oY4u+uK8NcUBQBIRqC3VPT82RzZ11cCuk9Npd6UHo1qMom+hn51acuj8otOwh/1x
+-JSyA7wUUVGvCgv+iAf7Ok37p1YWWIZUl/hURxKslwt5fKVJvjurtTRJ2YK+X3Krt
+-0X30vOsEJfYsbeKkDqDw4yt4QSFaP7WB3t1oUvYsUf+AL0SJaFNDGOP+iPRdOOrf
+-4qj2NmbMWu76/twTxq/f4EiyrX0tg+VfJPcX15bbkiLKqyOFvFqjsqL+/Jd8llns
+-zxoeMgtN0pUd95oQRwLuZicTeo9nGmkZ9K3IPs0dRKUm9qbbIFtErLhVE0Tx3S1s
+-q0EieGNuKEmpiuvzw+wgUAYoqtEcLKnzMubjEIo/8YQP12HAnCH56QIz0XTpxE9p
+-SKh9ci8GJsUc9k/SKfhgVmXbhLxrt/qkiAscM39CIjdD0OVJ0xlQXQwtL6kCdge9
+-1ILPFTfQEO1i1kxngmm84mf9x8gF73jJoiniBycHLXHQ4Ln66gMAdL23xp4HbN1F
+-lIBMn9g1eAhMc5NqPTSOrYa/mqj+N93WimVCm1bPer+SgicL0hION3/fr5jhFf2t
+-TCohLld3Nao4xmuys7/wqtxmgbYRjsn5oJ04UYVCNNvrlkkJl2HceDumyyWnxsAb
+-zbY70wSipMGit89OBqgjjIWtOTxdoYom8bY=
++b21tdW5pY2F0aW9uIFN5c3RlbXMxMjAwBgNVBAMTKURJQ09Nc2NvcGUgMy42LjAg
++RGVmYXVsdCBTaXRlIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5kaWNvbUBv
++ZmZpcy5kZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsEn/AglYAKO5mur/
++uKylpCzAP8HclTutSPq7GxIW3hgtxWKFOBOIgbq5nJ5g4R9f2l9P5DLSEkDu5xI8
++aR/UqgjP1AcUmuI8WF23aXHUJb3hy4G40VaAlOytsymPZ7PExzo0yWzQTkXjCvp1
++3eZBkSbIDVOcayglMoToTp2XqmcCAwEAAaOCAVcwggFTMAkGA1UdEwQCMAAwLAYJ
++YIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1Ud
++DgQWBBS6PY03q4NFOivlAToqfX7KyUGHpzCB+AYDVR0jBIHwMIHtgBQLeEJylVEk
++bdDlFnixcYi7P6Pf1aGB0aSBzjCByzELMAkGA1UEBhMCREUxFjAUBgNVBAgTDU5p
++ZWRlcnNhY2hzZW4xEjAQBgNVBAcTCU9sZGVuYnVyZzEOMAwGA1UEChMFT0ZGSVMx
++OTA3BgNVBAsTMEhlYWx0aGNhcmUgSW5mb3JtYXRpb24gYW5kIENvbW11bmljYXRp
++b24gU3lzdGVtczEmMCQGA1UEAxMdRENNVEsgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
++dHkxHTAbBgkqhkiG9w0BCQEWDmRpY29tQG9mZmlzLmRlggEAMA0GCSqGSIb3DQEB
++BAUAA4ICAQCcIjWfu3Ckb/AoftCpLyTrJ8PtRMJJGcJoxsDKg6jOVaa4y+n6RB4Y
++qLNHDcSLkBPKOWkcGxuzh+mNv3UnxlsXPm8g7A37XRG0naWHORVD9o/h/QYF826w
++Zl5mJ3UVY9YXup2jnpf8A8YGoRUW8G9aj2YFbPt4IBUkowqdd/d2GjNhBUmpgncL
++UFfmf8QSdFc6cKkIntYdL9KpqP26b3h0Fs12Bf1WBU4ZJXWQ+5cjnxynBdXO5Qsz
++gM+CnL7RUJ8eE8xiwhMg/wIdjgXf4uDlO5kOSFNh0lvqvv6/gruXvqzgMqvVvRAA
++9/K7f2HZtm+x29iWox9GninpQ7l2zASQUGerEVkNbUQf/yEVnz/L9vLcZEeI/GjE
++YCAA0bGN9tAqH+i3Nuv9SNbAkK8Kk3z8tks5O4d94xDZucS7M/KijgWB7CUsz3Nl
++dgTVZ+DA3qmhFuuW894d29/MYwo4ltbr2YbGt4L/0Ui4+YHE8EOiOVTHrYw26Y1y
++zMJg7CmUBDX/WBQCZWOJprn/loQE9lZ/fjkYjESVtyUqL5Y0u8vzuPfb64fmdKlF
++iJePMgeoEdPpd1IhSMxD5+XDwwZTet/BHUErtVeyKzVSD6HpUH9zmKoCnLWRiWmU
++xEhc/6NtLvK4nhBzynNt1C9UbaJPG6hG1lDB7ZQ+wcLqUsNeERG8Cw==
+ -----END CERTIFICATE-----
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/tls/sitekey.pem dsgui360/DICOMscope/tls/sitekey.pem
+--- dsgui351/DICOMscope/tls/sitekey.pem	2001-06-01 18:47:40.000000000 +0200
++++ dsgui360/DICOMscope/tls/sitekey.pem	2003-12-18 12:19:52.000000000 +0100
+@@ -1,27 +1,15 @@
+ -----BEGIN RSA PRIVATE KEY-----
+-MIIEogIBAAKCAQEAz3B9M6FuaXR2oy3O2E8WuW1rxqxi+uJKtDd4x3YNZu6zpRwl
+-N42iSIBglzYAN4Vgn1ueDQ4CKSExJp2SvFx8tmMX6cZfN4sPpsZzGDBbJGXMLNY8
+-QUfpZZfAHDJPHy8bR6mcAnxwZv/CaijJfYyUzQaVWPXR0oPx0omKDJcEK0kH2B66
+-FnumlaiGzNW8HMw4+1QPAK1v108s+PVwmXNooLve/NJxYH7r/se5LUoZUcd3JKdG
+-usZuVsWJLOtNWZrNcbCjhQDRPVUmRzTJNEJqggkO6wAd1jlJz00pl9iNjYS+93+6
+-g5vrC7eoZpbzmd/lU3NLcUez0xeZIdVHJhSKHwIDAQABAoIBACW/nKkGmWcLUIOF
+-VHy8d7Aqn1A6EpEBGQMOjSYO74Vprrs/Ee64EW4MHoelxghUdy7Ip0xM3kvJxH34
+-crlgQzmVcsaR2MXswl5hApTGR++prqwCGFjw0yIvqT/4T7mnAtnZnZA+QN4dcK2M
+-2o3ERVfB+O+FXDdo11quuLZtzM5rWbQnngA3AKS9L6lM9LEf++Fczy31453krq5n
+-J8A5J2GJ+pxk+wXvY2P+2CjPqWZQSOLRorHSWY6rOjLHkh0fiI+QjjrzfPVHvDoe
+-DQkI5vX/W70T+/4nURsghGtG/WVRglgj5u+s5aEN28zNGoQyamoj9eTVJnK5A6MX
+-VgT4AJECgYEA9zeWsK4Lm1nR2ral4PIHHKVAexpBfUkKPTOvCXgVZB3SK3p7ghVg
+-gINWGiVNqJTaWbrOVvSHABW6Jv5MBE0SvVbv6ra9PlJEpXMzXFqryR+UgvQkkh+2
+-ETfPjokFwsMcJlLyInEYxydSVrLdXon9Fin3oEIr6V1DLDmVIfm29MsCgYEA1s8g
+-ZaDT+EN76BgmBmWzRcdxiv8rjzeVl6btDy1eXpwKoFqNCnMJROZsglFGGy0c3y6i
+-QKA7Jp9kD6r03xRPRXzTvrKqRI1JkdUHqx7AkxGxxciVX3KcIx3UxCXN7SwO4Hl8
+-0+KEvlxFchnh3diHAj0NP5S0bW4+EmfSY4DPqX0CgYAUTzTJ/wJlGNPsq+Skvj1n
+-VQwfEOEgccetj3lpxbu8JdcGS2GqJidvZ1rDex0OJGxrwrUA38XXc/F/EpUcJVjM
+-xT+ggLK7U/bfwL8Pb0N9mmKQ/42hk4lZkMQ0aX1Xqr+9RkMuISxv8AMLrFYTVjK8
+-h2YYfFcvLMI/99sQl3s4UQKBgCEbmX2wdRs9o3pZRnsT77agj9KBk8AmLAtMshr1
+-vibM3CJs8nIa2uHgtfa7+hc0M8/+Swm06IkCZhS4H7fGVJV8MNKijPW15RHyCJWK
+-TtocDw9R5Bvq+T+8WE/HF98nPD/C2cd6kUUZyaZVcOeVePGSYVlcXRbEuBJ0KAwo
+-DVmtAoGAecjcPqbLXpzxxxYb40tOmLfildwwqg5vLddFH8i6AMU2KvqjUdaHktEv
+-N8/wdUmWpe2C3FWDEltd4MNVYD/HHWcqUy3q6+Ep42zQM20G0mZXGiMItJ373tyL
+-rflVfa4RY6Zbb6KMzQXq0UuHYFvusgOcXnc4jirvT0zqi9CrlZQ=
++MIICXAIBAAKBgQCwSf8CCVgAo7ma6v+4rKWkLMA/wdyVO61I+rsbEhbeGC3FYoU4
++E4iBurmcnmDhH1/aX0/kMtISQO7nEjxpH9SqCM/UBxSa4jxYXbdpcdQlveHLgbjR
++VoCU7K2zKY9ns8THOjTJbNBOReMK+nXd5kGRJsgNU5xrKCUyhOhOnZeqZwIDAQAB
++AoGADRuja3pYYcvKvDsnAotL0bZGITd/+FS0oM2L5gplSuRPWvLlZvME3miM7plU
++KMkVbn5RyW0B87uCSAoyFbr5K//FyqcoWA7PR4RYRq63MiqLzWVVfuExX+Ju2sY/
++BFo8Um6DTDvJ0olvE8/yDI0rdyLqxvX3JMM9RtRvqmvbDhkCQQDlk6p/dGJyxgdd
++yvIEocIF//R5JER0Cd0DY6x8lD5a6vaCz8d1PvSeM0arQ14KAdVa0uT+CSkwzp7L
++pJP6sggjAkEAxJQ9cWdrYrsr+5L/wPFpJJPUWNvGlW9cCe09TmCt01NYQ4SYGxP8
++chG7AnOrIx3wGdFwyu54vUkf5oXuCkJ27QJBAI7TI0tP2L+Wu5Z6X77J869P4YRM
++L9oRGNK2++Q1ReXCL8KKCYjDteOF+v0pWCPZqCZs9dGlWV7n7Jq8tONORwkCQHkZ
++bWSQNmpDLgwz+ZQt4/zhiN4YvhRO3t9KpArFqi/WVzh41Y9Q16KZ45/WC+Z9Se1N
++xfNtxzmsc5d6iDMP0N0CQHOiZs/nT5GYSFETaCAFg26OsGvgQicB+QvbGBYubbuL
++Sh3Mp4wX3Poa+Xs31q7YqS3WLt+TIXziOYT3plAYVr0=
+ -----END RSA PRIVATE KEY-----
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/usrcerts/dsuscert.pem dsgui360/DICOMscope/usrcerts/dsuscert.pem
+--- dsgui351/DICOMscope/usrcerts/dsuscert.pem	2001-06-01 18:53:26.000000000 +0200
++++ dsgui360/DICOMscope/usrcerts/dsuscert.pem	1970-01-01 01:00:00.000000000 +0100
+@@ -1,112 +0,0 @@
+-Certificate:
+-    Data:
+-        Version: 3 (0x2)
+-        Serial Number: 2 (0x2)
+-        Signature Algorithm: md5WithRSAEncryption
+-        Issuer: C=DE, ST=Niedersachsen, L=Oldenburg, O=OFFIS, OU=Healthcare Information and Communication Systems, CN=DCMTK Certification Authority/Email=dicom at offis.de
+-        Validity
+-            Not Before: Jun  1 16:38:08 2001 GMT
+-            Not After : Jun  1 16:38:08 2003 GMT
+-        Subject: C=DE, ST=Niedersachsen, L=Oldenburg, O=OFFIS, OU=Healthcare Information and Communication Systems, CN=DICOMscope 3.5 Default User/Email=dicom at offis.de
+-        Subject Public Key Info:
+-            Public Key Algorithm: rsaEncryption
+-            RSA Public Key: (2048 bit)
+-                Modulus (2048 bit):
+-                    00:c9:b5:e3:8e:90:36:3e:a0:dc:12:eb:30:0e:7b:
+-                    df:fb:54:5e:df:dc:b9:bf:46:d0:19:98:b5:25:d2:
+-                    f6:c6:87:2c:3e:14:3f:5f:e2:e0:d5:32:bc:6e:27:
+-                    9a:34:f0:2f:8a:0c:c9:e3:1c:2e:36:e3:b0:0b:20:
+-                    0d:6e:6f:bf:db:22:18:aa:2c:af:66:85:d2:3b:95:
+-                    07:9e:38:ac:af:2b:0b:a8:e8:52:10:93:d5:a1:7c:
+-                    7b:a2:41:ff:c5:5d:0e:1f:c7:6b:7e:c3:0e:f3:cd:
+-                    b9:89:b1:3c:95:f8:30:d4:cc:2f:d2:d9:d6:d6:dc:
+-                    e3:01:1a:50:70:c4:83:0e:d1:97:2f:74:7e:57:f3:
+-                    87:fc:9b:37:eb:a7:94:e5:0b:bc:b7:83:90:0c:a0:
+-                    06:4d:eb:b3:02:36:5f:5e:db:4e:0f:60:33:63:9e:
+-                    f3:e4:f0:91:a2:08:07:f2:50:3a:95:63:4d:7d:a5:
+-                    f6:87:aa:2f:e8:04:76:40:6c:a5:83:f0:2f:55:c5:
+-                    c6:aa:ba:87:1a:dc:02:f7:61:5a:67:bc:b3:d1:a9:
+-                    f3:2a:81:bb:b2:44:d9:ca:2e:46:3d:d9:60:68:e1:
+-                    d4:91:f4:18:f7:a1:05:a2:cc:59:12:f6:a8:df:15:
+-                    7d:f8:29:6c:3b:1c:c0:ee:75:4d:f1:d8:de:2f:d5:
+-                    7a:cb
+-                Exponent: 65537 (0x10001)
+-        X509v3 extensions:
+-            X509v3 Basic Constraints: 
+-                CA:FALSE
+-            Netscape Comment: 
+-                OpenSSL Generated Certificate
+-            X509v3 Subject Key Identifier: 
+-                69:41:2B:34:A0:CE:55:50:CF:82:2F:60:F6:88:4A:7B:C6:3E:90:13
+-            X509v3 Authority Key Identifier: 
+-                keyid:0B:78:42:72:95:51:24:6D:D0:E5:16:78:B1:71:88:BB:3F:A3:DF:D5
+-                DirName:/C=DE/ST=Niedersachsen/L=Oldenburg/O=OFFIS/OU=Healthcare Information and Communication Systems/CN=DCMTK Certification Authority/Email=dicom at offis.de
+-                serial:00
+-
+-    Signature Algorithm: md5WithRSAEncryption
+-        36:ec:a3:5b:fa:11:6b:83:fa:89:69:d6:40:ea:05:8c:b9:c6:
+-        fc:b6:97:53:02:3a:64:b3:49:e5:32:5b:f1:49:c7:0d:c8:c0:
+-        c7:ef:95:7a:83:da:cd:53:23:2a:d2:c2:37:31:76:c0:52:dc:
+-        e4:b2:80:3a:79:e8:fd:f1:71:54:01:db:99:df:38:19:6f:14:
+-        ad:fd:b1:f0:20:0c:bd:5f:55:40:4c:ca:58:74:8f:81:4c:53:
+-        eb:c0:61:c4:5c:00:37:39:9b:f2:08:e7:de:73:c3:ac:46:bf:
+-        d5:77:19:a2:42:1c:0e:e3:ec:2a:4a:c3:99:21:ed:50:d2:c0:
+-        ac:fb:44:0e:0d:e2:0f:55:10:b7:d2:6a:73:33:ee:c3:c8:8e:
+-        19:4e:1f:bd:be:a2:23:a9:db:8c:ae:37:31:d5:c0:49:a3:83:
+-        f9:74:00:35:6a:35:03:cb:20:19:3c:52:2a:17:cd:dd:d0:dd:
+-        06:72:75:5c:9f:ee:6e:cb:a0:c3:54:79:29:2f:0e:44:24:3b:
+-        6f:a5:d1:73:3f:c6:1c:01:13:49:17:84:f8:a5:7c:6d:34:1c:
+-        d9:c5:c2:7a:ab:a0:fc:3e:76:58:87:b0:2f:43:4e:b8:63:7c:
+-        8c:28:8b:a1:46:ec:0e:99:eb:f4:7a:db:75:b6:37:4d:5a:34:
+-        b2:e0:53:ad:12:68:c8:27:4f:72:53:38:fb:ab:03:1e:26:f1:
+-        59:12:9e:0e:42:94:6f:cb:fc:7d:dd:5e:e1:82:24:5f:02:e8:
+-        40:f5:7b:81:59:8f:1a:e9:e6:b9:f0:c5:81:e7:68:f3:32:1e:
+-        fa:6a:38:77:8f:5b:5e:94:de:4c:38:ae:7a:75:1e:00:94:69:
+-        ee:71:f2:db:61:da:98:0b:6f:43:6b:3c:a5:cd:5f:23:a9:ad:
+-        5c:2d:3c:5c:92:c8:5c:cf:9d:a0:27:a2:7a:1c:9f:30:aa:a2:
+-        16:8d:38:ef:06:af:27:0f:8e:c0:61:cf:b2:76:b0:96:1c:ae:
+-        d8:da:b0:9b:cd:0d:5c:5a:53:42:fd:41:f7:d9:5c:b7:72:cc:
+-        0c:7d:6a:e8:64:2b:cf:dd:9f:8e:e1:a3:bc:45:7c:f7:75:a1:
+-        22:13:f5:fe:7b:3f:a5:c9:bb:fb:01:d5:28:04:1f:cd:e2:9c:
+-        3d:2f:a1:b9:24:3d:a4:e4:0a:25:f1:2d:72:eb:e3:bc:4b:8e:
+-        39:18:29:3e:2f:a2:c3:40:d9:6c:63:74:f6:e7:9d:2f:2b:77:
+-        22:cd:c5:47:18:70:5d:91:d9:82:80:b7:b1:67:a6:f4:b7:33:
+-        d2:fb:d2:37:6b:e5:9e:1c:24:9e:3f:37:94:ac:7a:8d:40:ff:
+-        ae:05:68:60:6f:4c:97:72
+------BEGIN CERTIFICATE-----
+-MIIGajCCBFKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCREUx
+-FjAUBgNVBAgTDU5pZWRlcnNhY2hzZW4xEjAQBgNVBAcTCU9sZGVuYnVyZzEOMAwG
+-A1UEChMFT0ZGSVMxOTA3BgNVBAsTMEhlYWx0aGNhcmUgSW5mb3JtYXRpb24gYW5k
+-IENvbW11bmljYXRpb24gU3lzdGVtczEmMCQGA1UEAxMdRENNVEsgQ2VydGlmaWNh
+-dGlvbiBBdXRob3JpdHkxHTAbBgkqhkiG9w0BCQEWDmRpY29tQG9mZmlzLmRlMB4X
+-DTAxMDYwMTE2MzgwOFoXDTAzMDYwMTE2MzgwOFowgckxCzAJBgNVBAYTAkRFMRYw
+-FAYDVQQIEw1OaWVkZXJzYWNoc2VuMRIwEAYDVQQHEwlPbGRlbmJ1cmcxDjAMBgNV
+-BAoTBU9GRklTMTkwNwYDVQQLEzBIZWFsdGhjYXJlIEluZm9ybWF0aW9uIGFuZCBD
+-b21tdW5pY2F0aW9uIFN5c3RlbXMxJDAiBgNVBAMTG0RJQ09Nc2NvcGUgMy41IERl
+-ZmF1bHQgVXNlcjEdMBsGCSqGSIb3DQEJARYOZGljb21Ab2ZmaXMuZGUwggEiMA0G
+-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJteOOkDY+oNwS6zAOe9/7VF7f3Lm/
+-RtAZmLUl0vbGhyw+FD9f4uDVMrxuJ5o08C+KDMnjHC4247ALIA1ub7/bIhiqLK9m
+-hdI7lQeeOKyvKwuo6FIQk9WhfHuiQf/FXQ4fx2t+ww7zzbmJsTyV+DDUzC/S2dbW
+-3OMBGlBwxIMO0ZcvdH5X84f8mzfrp5TlC7y3g5AMoAZN67MCNl9e204PYDNjnvPk
+-8JGiCAfyUDqVY019pfaHqi/oBHZAbKWD8C9Vxcaquoca3AL3YVpnvLPRqfMqgbuy
+-RNnKLkY92WBo4dSR9Bj3oQWizFkS9qjfFX34KWw7HMDudU3x2N4v1XrLAgMBAAGj
+-ggFXMIIBUzAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy
+-YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUaUErNKDOVVDPgi9g9ohKe8Y+kBMw
+-gfgGA1UdIwSB8DCB7YAUC3hCcpVRJG3Q5RZ4sXGIuz+j39WhgdGkgc4wgcsxCzAJ
+-BgNVBAYTAkRFMRYwFAYDVQQIEw1OaWVkZXJzYWNoc2VuMRIwEAYDVQQHEwlPbGRl
+-bmJ1cmcxDjAMBgNVBAoTBU9GRklTMTkwNwYDVQQLEzBIZWFsdGhjYXJlIEluZm9y
+-bWF0aW9uIGFuZCBDb21tdW5pY2F0aW9uIFN5c3RlbXMxJjAkBgNVBAMTHURDTVRL
+-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR0wGwYJKoZIhvcNAQkBFg5kaWNvbUBv
+-ZmZpcy5kZYIBADANBgkqhkiG9w0BAQQFAAOCAgEANuyjW/oRa4P6iWnWQOoFjLnG
+-/LaXUwI6ZLNJ5TJb8UnHDcjAx++VeoPazVMjKtLCNzF2wFLc5LKAOnno/fFxVAHb
+-md84GW8Urf2x8CAMvV9VQEzKWHSPgUxT68BhxFwANzmb8gjn3nPDrEa/1XcZokIc
+-DuPsKkrDmSHtUNLArPtEDg3iD1UQt9JqczPuw8iOGU4fvb6iI6nbjK43MdXASaOD
+-+XQANWo1A8sgGTxSKhfN3dDdBnJ1XJ/ubsugw1R5KS8ORCQ7b6XRcz/GHAETSReE
+-+KV8bTQc2cXCequg/D52WIewL0NOuGN8jCiLoUbsDpnr9HrbdbY3TVo0suBTrRJo
+-yCdPclM4+6sDHibxWRKeDkKUb8v8fd1e4YIkXwLoQPV7gVmPGunmufDFgedo8zIe
+-+mo4d49bXpTeTDiuenUeAJRp7nHy22HamAtvQ2s8pc1fI6mtXC08XJLIXM+doCei
+-ehyfMKqiFo047wavJw+OwGHPsnawlhyu2Nqwm80NXFpTQv1B99lct3LMDH1q6GQr
+-z92fjuGjvEV893WhIhP1/ns/pcm7+wHVKAQfzeKcPS+huSQ9pOQKJfEtcuvjvEuO
+-ORgpPi+iw0DZbGN09uedLyt3Is3FRxhwXZHZgoC3sWem9Lcz0vvSN2vlnhwknj83
+-lKx6jUD/rgVoYG9Ml3I=
+------END CERTIFICATE-----
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/usrcerts/dsuskey.pem dsgui360/DICOMscope/usrcerts/dsuskey.pem
+--- dsgui351/DICOMscope/usrcerts/dsuskey.pem	2001-06-01 18:53:26.000000000 +0200
++++ dsgui360/DICOMscope/usrcerts/dsuskey.pem	1970-01-01 01:00:00.000000000 +0100
+@@ -1,27 +0,0 @@
+------BEGIN RSA PRIVATE KEY-----
+-MIIEpAIBAAKCAQEAybXjjpA2PqDcEuswDnvf+1Re39y5v0bQGZi1JdL2xocsPhQ/
+-X+Lg1TK8bieaNPAvigzJ4xwuNuOwCyANbm+/2yIYqiyvZoXSO5UHnjisrysLqOhS
+-EJPVoXx7okH/xV0OH8drfsMO8825ibE8lfgw1Mwv0tnW1tzjARpQcMSDDtGXL3R+
+-V/OH/Js366eU5Qu8t4OQDKAGTeuzAjZfXttOD2AzY57z5PCRoggH8lA6lWNNfaX2
+-h6ov6AR2QGylg/AvVcXGqrqHGtwC92FaZ7yz0anzKoG7skTZyi5GPdlgaOHUkfQY
+-96EFosxZEvao3xV9+ClsOxzA7nVN8djeL9V6ywIDAQABAoIBAQCRGBt2I1pBtqhX
+-m4HYCVdWjJwqX7XlV2S95ND5QkVtDTLP/PSRXrvn4DUW77nHNrabkRNwIIdFyIaL
+-miTPOedCE8a2MqqBDuXpIgx2zcG5xzb96w+NCSp0nPy5/MulBojwZxx19I2+5k7+
+-MtWn8v39NFt6SmR17jIESw9t7o1vjCDnsxYuqypjllWFV7cGCfUaoW2qGNQq7jSo
+-ntzfJC+IjlxIThAm+ezrQLPejzAK3PCqK6jQ2jkpQSCOSA8ngLRbQT3kxzKXukBO
+-uJxm8R2y3PneFR5udg1buWNAbpkUmRq5OLj1n5P9zM3gaV9QKE7qj3sy+K4AGp5D
+-U5GOJapBAoGBAO7Mos1OSKPomlh1LLgDvnPlCwr6ux33xbFI/GrC8HMU4NzH+soN
+-HQWAUkbUgJ9dK3Qr/WxzT/3qORJiIl3FdiXqAOTwMPc54ayt0HMpu6LDphhk4zkc
+-bnwoiwFhU/S9PK8ipf04OjQOZfhuX1gNyTU1su7GOF39EnvCmLuDEmzxAoGBANg9
+-WXD+MPNxLKAECG5wGvMEw6c6zdwIVCrZUpn2+sB+70PkJWePMyJGoL5USHODIXIU
+-vQR6XLnMNp6uyuLWtTqcGhFSEnzS7iarF098k2xfW9sPN61eSB9uy1cN4mRHVW5+
+-Xz7pvredaPmZkknkFBAYFlc2mGCXvNKQo+irOVN7AoGABercPeoqsqUY7gg5S3YM
+-SiLq2yLLcDqrk3ETkDG0c6WYzN/HvyoEBhbf8xFg/pH4ebB9XyqcWNZtA5+a6mfy
+-PY5G52VsUTQF+5lzCOeH1siyXPhjCQ9DTaBTkX0v72ihEFXzdwrlplSVAkr54dy1
+-l7P08yXGT83tn1N7JWpiEoECgYAIKOB8JAti1E1zyFMtH6vUqcRcRhrIh8PtTgAQ
+-8UHrC58pt601qDCsxW+BXxrQyQz1ChVL2vYuyKby+/OJ9cIm8QcGyksKTMdRzDj3
+-9eJ2P27u6DcYoqskDIE9yrdVQ1/U6I3diOJ6eUUhzgq4IRQku1P0fInpczBb3bth
+-pzxliwKBgQC4gDQJ9NsjkaQ+HEoXxZLVPkAK6rB+yfLT7KAOhZZZDG++JQCGITKO
+-XvgInzMXGmVdIN/EDSSPIhI/6bsLsO+WMmuIoOpvjTKaxnvJsF62TmxJTHNJkd7z
+-aH6ZSryOQtOsaewNvA54m8M3Hk9od0Q3WeqByTbcYjmLHHB5fIXF2g==
+------END RSA PRIVATE KEY-----
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/usrcerts/usercert.pem dsgui360/DICOMscope/usrcerts/usercert.pem
+--- dsgui351/DICOMscope/usrcerts/usercert.pem	1970-01-01 01:00:00.000000000 +0100
++++ dsgui360/DICOMscope/usrcerts/usercert.pem	2003-12-18 12:19:46.000000000 +0100
+@@ -0,0 +1,100 @@
++Certificate:
++    Data:
++        Version: 3 (0x2)
++        Serial Number: 9 (0x9)
++        Signature Algorithm: md5WithRSAEncryption
++        Issuer: C=DE, ST=Niedersachsen, L=Oldenburg, O=OFFIS, OU=Healthcare Information and Communication Systems, CN=DCMTK Certification Authority/Email=dicom at offis.de
++        Validity
++            Not Before: Sep  5 10:20:16 2003 GMT
++            Not After : Sep  5 10:20:16 2006 GMT
++        Subject: C=DE, ST=Niedersachsen, L=Oldenburg, O=OFFIS, OU=Healthcare Information and Communication Systems, CN=DICOMscope 3.6.0 Default User Certificate/Email=dicom at offis.de
++        Subject Public Key Info:
++            Public Key Algorithm: rsaEncryption
++            RSA Public Key: (1024 bit)
++                Modulus (1024 bit):
++                    00:d5:19:d8:d9:bf:a0:61:48:29:37:ee:0f:d1:45:
++                    28:42:10:bd:41:b7:04:50:46:11:bd:f0:8d:1f:3c:
++                    c1:50:77:51:5d:5c:f1:0a:bd:50:49:00:2e:22:19:
++                    e4:a6:14:6a:24:31:67:6d:b1:28:ae:76:60:37:c4:
++                    9a:0f:5d:2f:9f:c0:99:f1:c5:31:9e:1a:0a:a3:18:
++                    0e:8b:01:fc:ef:94:d5:7c:0b:26:28:3b:28:e1:69:
++                    2e:62:f0:19:35:13:7a:f1:16:df:ae:0d:60:e4:99:
++                    4b:dd:bc:ee:64:c1:5a:02:68:27:c8:64:98:03:b7:
++                    4e:f8:99:97:3c:d8:d0:d5:c1
++                Exponent: 65537 (0x10001)
++        X509v3 extensions:
++            X509v3 Basic Constraints: 
++                CA:FALSE
++            Netscape Comment: 
++                OpenSSL Generated Certificate
++            X509v3 Subject Key Identifier: 
++                7C:15:D6:6A:A2:EC:0F:56:BD:55:D2:82:16:B6:07:37:83:C2:5D:3A
++            X509v3 Authority Key Identifier: 
++                keyid:0B:78:42:72:95:51:24:6D:D0:E5:16:78:B1:71:88:BB:3F:A3:DF:D5
++                DirName:/C=DE/ST=Niedersachsen/L=Oldenburg/O=OFFIS/OU=Healthcare Information and Communication Systems/CN=DCMTK Certification Authority/Email=dicom at offis.de
++                serial:00
++
++    Signature Algorithm: md5WithRSAEncryption
++        75:ea:21:18:77:58:8a:5f:40:9c:88:e8:29:ae:57:5b:77:f1:
++        1b:d7:26:05:3d:03:14:0d:32:6c:ee:3a:ed:12:29:01:32:87:
++        ac:36:43:3e:e2:05:c2:f3:d0:1b:fc:f5:5c:cf:0c:7f:56:64:
++        64:ee:f2:7d:37:3e:62:7d:57:f0:ea:91:7c:44:f9:55:46:6c:
++        31:5c:01:7c:2f:3d:e4:d7:9d:fe:7c:09:50:a4:42:9b:d7:cd:
++        f1:07:9e:87:19:40:b2:d4:7e:ba:2e:f3:54:15:0b:ec:96:cb:
++        97:62:95:65:9d:28:e9:58:d3:8f:d2:0a:8b:94:a9:3a:56:c5:
++        33:2d:f7:91:f1:44:ce:0a:d1:95:5c:d5:52:b6:c6:1b:77:bc:
++        43:99:a3:b8:92:01:b0:76:b5:b2:4d:07:6d:36:e5:6d:a7:6a:
++        c8:93:d4:70:66:2e:ad:41:7a:da:0a:1d:38:61:a8:60:c8:7e:
++        a4:32:62:f2:a6:82:3d:e7:14:b4:f3:8e:13:71:a4:df:90:76:
++        21:69:50:ea:41:c3:16:7b:a5:90:a0:94:f9:5b:82:0e:ce:a2:
++        ef:30:3e:1d:b6:50:97:db:37:b0:02:3a:cf:de:ca:35:2a:8c:
++        ae:68:92:14:f7:e5:8c:b7:e1:7b:1f:5a:15:a8:62:02:e1:1c:
++        55:7a:7a:fb:a7:75:e0:4d:32:70:7c:ee:a8:3f:26:be:0c:3f:
++        c3:5d:5c:bf:f3:d7:91:8b:ec:4e:d7:90:06:22:28:58:fb:4f:
++        cd:ae:78:cd:36:e1:87:c1:3f:a9:47:57:e3:51:1a:10:bd:6f:
++        7f:33:52:ab:7b:44:10:a7:02:d3:e5:a7:99:e6:ff:20:62:e9:
++        d8:52:4a:8a:7a:40:22:b3:a4:af:3f:36:49:97:bd:2d:74:4d:
++        7a:32:5d:b8:cf:6c:49:03:11:e1:b9:21:7a:ee:70:bb:cf:5c:
++        4a:bf:32:f0:bf:b9:61:84:ba:f9:a9:39:b2:7a:ac:e5:84:bd:
++        fc:97:5e:06:f8:d2:40:0f:f6:02:3a:f4:80:82:08:78:7e:46:
++        bb:f7:7b:5a:bb:e0:31:3b:c1:1e:43:c5:0c:e6:14:98:a8:e0:
++        89:8e:84:de:36:39:f8:dc:b1:be:07:3f:07:fb:e0:b5:45:64:
++        5e:a2:39:9a:66:19:9f:3b:46:44:51:b1:df:bf:1c:df:84:63:
++        fe:c3:85:f1:ee:a4:9c:65:ee:04:72:c4:3c:14:3f:dd:ea:18:
++        3e:e7:ff:4b:d5:53:a8:5a:33:b5:ca:55:14:3a:f3:94:18:0a:
++        ab:80:57:5c:25:4e:e1:47:f2:c3:e7:35:cd:1f:1a:b9:4a:b9:
++        50:d6:8a:5f:c8:2f:b4:96
++-----BEGIN CERTIFICATE-----
++MIIF9DCCA9ygAwIBAgIBCTANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCREUx
++FjAUBgNVBAgTDU5pZWRlcnNhY2hzZW4xEjAQBgNVBAcTCU9sZGVuYnVyZzEOMAwG
++A1UEChMFT0ZGSVMxOTA3BgNVBAsTMEhlYWx0aGNhcmUgSW5mb3JtYXRpb24gYW5k
++IENvbW11bmljYXRpb24gU3lzdGVtczEmMCQGA1UEAxMdRENNVEsgQ2VydGlmaWNh
++dGlvbiBBdXRob3JpdHkxHTAbBgkqhkiG9w0BCQEWDmRpY29tQG9mZmlzLmRlMB4X
++DTAzMDkwNTEwMjAxNloXDTA2MDkwNTEwMjAxNlowgdcxCzAJBgNVBAYTAkRFMRYw
++FAYDVQQIEw1OaWVkZXJzYWNoc2VuMRIwEAYDVQQHEwlPbGRlbmJ1cmcxDjAMBgNV
++BAoTBU9GRklTMTkwNwYDVQQLEzBIZWFsdGhjYXJlIEluZm9ybWF0aW9uIGFuZCBD
++b21tdW5pY2F0aW9uIFN5c3RlbXMxMjAwBgNVBAMTKURJQ09Nc2NvcGUgMy42LjAg
++RGVmYXVsdCBVc2VyIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5kaWNvbUBv
++ZmZpcy5kZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1RnY2b+gYUgpN+4P
++0UUoQhC9QbcEUEYRvfCNHzzBUHdRXVzxCr1QSQAuIhnkphRqJDFnbbEornZgN8Sa
++D10vn8CZ8cUxnhoKoxgOiwH875TVfAsmKDso4WkuYvAZNRN68Rbfrg1g5JlL3bzu
++ZMFaAmgnyGSYA7dO+JmXPNjQ1cECAwEAAaOCAVcwggFTMAkGA1UdEwQCMAAwLAYJ
++YIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1Ud
++DgQWBBR8FdZqouwPVr1V0oIWtgc3g8JdOjCB+AYDVR0jBIHwMIHtgBQLeEJylVEk
++bdDlFnixcYi7P6Pf1aGB0aSBzjCByzELMAkGA1UEBhMCREUxFjAUBgNVBAgTDU5p
++ZWRlcnNhY2hzZW4xEjAQBgNVBAcTCU9sZGVuYnVyZzEOMAwGA1UEChMFT0ZGSVMx
++OTA3BgNVBAsTMEhlYWx0aGNhcmUgSW5mb3JtYXRpb24gYW5kIENvbW11bmljYXRp
++b24gU3lzdGVtczEmMCQGA1UEAxMdRENNVEsgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
++dHkxHTAbBgkqhkiG9w0BCQEWDmRpY29tQG9mZmlzLmRlggEAMA0GCSqGSIb3DQEB
++BAUAA4ICAQB16iEYd1iKX0CciOgprldbd/Eb1yYFPQMUDTJs7jrtEikBMoesNkM+
++4gXC89Ab/PVczwx/VmRk7vJ9Nz5ifVfw6pF8RPlVRmwxXAF8Lz3k153+fAlQpEKb
++183xB56HGUCy1H66LvNUFQvslsuXYpVlnSjpWNOP0gqLlKk6VsUzLfeR8UTOCtGV
++XNVStsYbd7xDmaO4kgGwdrWyTQdtNuVtp2rIk9RwZi6tQXraCh04YahgyH6kMmLy
++poI95xS0844TcaTfkHYhaVDqQcMWe6WQoJT5W4IOzqLvMD4dtlCX2zewAjrP3so1
++KoyuaJIU9+WMt+F7H1oVqGIC4RxVenr7p3XgTTJwfO6oPya+DD/DXVy/89eRi+xO
++15AGIihY+0/NrnjNNuGHwT+pR1fjURoQvW9/M1Kre0QQpwLT5aeZ5v8gYunYUkqK
++ekAis6SvPzZJl70tdE16Ml24z2xJAxHhuSF67nC7z1xKvzLwv7lhhLr5qTmyeqzl
++hL38l14G+NJAD/YCOvSAggh4fka793tau+AxO8EeQ8UM5hSYqOCJjoTeNjn43LG+
++Bz8H++C1RWReojmaZhmfO0ZEUbHfvxzfhGP+w4Xx7qScZe4EcsQ8FD/d6hg+5/9L
++1VOoWjO1ylUUOvOUGAqrgFdcJU7hR/LD5zXNHxq5SrlQ1opfyC+0lg==
++-----END CERTIFICATE-----
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/DICOMscope/usrcerts/userkey.pem dsgui360/DICOMscope/usrcerts/userkey.pem
+--- dsgui351/DICOMscope/usrcerts/userkey.pem	1970-01-01 01:00:00.000000000 +0100
++++ dsgui360/DICOMscope/usrcerts/userkey.pem	2003-12-18 12:19:46.000000000 +0100
+@@ -0,0 +1,15 @@
++-----BEGIN RSA PRIVATE KEY-----
++MIICXQIBAAKBgQDVGdjZv6BhSCk37g/RRShCEL1BtwRQRhG98I0fPMFQd1FdXPEK
++vVBJAC4iGeSmFGokMWdtsSiudmA3xJoPXS+fwJnxxTGeGgqjGA6LAfzvlNV8CyYo
++OyjhaS5i8Bk1E3rxFt+uDWDkmUvdvO5kwVoCaCfIZJgDt074mZc82NDVwQIDAQAB
++AoGBAJv0MIka/mpzfwbZiGXksNO4oGjpYZTF0tIoq37C3c7fo4IqNJVhetIR+bEn
++Nfh9VDhsl37lehpDs6LclMrNrb1sOVWMRJoj1shwfZapx1HyJg6oig/YuRXZz7DG
++ZNhp9LHMQFLJE1XByvU70PI6+yZLdiAWuJYzClxqdRfWJAppAkEA7Avyx/P7iexe
++sKJHjTglTKRQqb+qZqIZTdc4NW04aeeR0c9i0aoJGN75uuFUho6JRC3bxYm+ZWYi
++dsS/kZDPLwJBAOcdWnojivf1+lKTAg2VRtTY72++bluVRoGOpHJJLzcqHeam+nJ6
++HI977+Vds/cLDCI2burS+exwhSZ0UpT57g8CQDanFZFiVk064zm2eSajZ091hA+p
++hwS4Z290c1k7bqJmsYaIo/KzkeOmTOAOKAn3mqSkkYwNNn43xacGKuzDQJUCQGsI
++NhGgikhhm2dIe8fsnRwPx3t5tsQlMrznYZMn/3zNvYFHTW9czANLQ4N2zNSZQipK
++CT4pLONqDNANSP2DbdMCQQDMRRYaC02Ab+ZXp/SoMOkO1gEEX5rw8xFDWcV2Bof+
++CeVF0MMFMNCuQ3W3VSVvnWM3ffisWP4kk4nzaPmbFMQ0
++-----END RSA PRIVATE KEY-----
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/include/J2Ci_jDSRCodeValue.h dsgui360/interface/include/J2Ci_jDSRCodeValue.h
+--- dsgui351/interface/include/J2Ci_jDSRCodeValue.h	2009-01-07 17:53:35.307114000 +0100
++++ dsgui360/interface/include/J2Ci_jDSRCodeValue.h	2009-01-07 17:53:04.148375000 +0100
+@@ -33,14 +33,6 @@
+ 
+ /*
+  * Class:     J2Ci_jDSRCodeValue
+- * Method:    isPrivateDcmtkCodingScheme
+- * Signature: ()Z
+- */
+-JNIEXPORT jboolean JNICALL Java_J2Ci_jDSRCodeValue_isPrivateDcmtkCodingScheme
+-  (JNIEnv *, jobject);
+-
+-/*
+- * Class:     J2Ci_jDSRCodeValue
+  * Method:    getCodeValue
+  * Signature: ()Ljava/lang/String;
+  */
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/include/J2Ci_jDSRDocument.h dsgui360/interface/include/J2Ci_jDSRDocument.h
+--- dsgui351/interface/include/J2Ci_jDSRDocument.h	2009-01-07 17:53:35.315105000 +0100
++++ dsgui360/interface/include/J2Ci_jDSRDocument.h	2009-01-07 17:53:04.213308000 +0100
+@@ -121,14 +121,6 @@
+ 
+ /*
+  * Class:     J2Ci_jDSRDocument
+- * Method:    getPredecessorDocument
+- * Signature: (ILJ2Ci/jStringByRef;LJ2Ci/jStringByRef;)I
+- */
+-JNIEXPORT jint JNICALL Java_J2Ci_jDSRDocument_getPredecessorDocument
+-  (JNIEnv *, jobject, jint, jobject, jobject);
+-
+-/*
+- * Class:     J2Ci_jDSRDocument
+  * Method:    getModality
+  * Signature: ()Ljava/lang/String;
+  */
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/include/J2Ci_jDVPresentationState.h dsgui360/interface/include/J2Ci_jDVPresentationState.h
+--- dsgui351/interface/include/J2Ci_jDVPresentationState.h	2009-01-07 17:53:35.350070000 +0100
++++ dsgui360/interface/include/J2Ci_jDVPresentationState.h	2009-01-07 17:53:04.188332000 +0100
+@@ -225,10 +225,18 @@
+ 
+ /*
+  * Class:     J2Ci_jDVPresentationState
+- * Method:    getDisplayedArea
++ * Method:    getStandardDisplayedArea
+  * Signature: (LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;)I
+  */
+-JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_getDisplayedArea
++JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_getStandardDisplayedArea
++  (JNIEnv *, jobject, jobject, jobject, jobject, jobject);
++
++/*
++ * Class:     J2Ci_jDVPresentationState
++ * Method:    getImageRelativeDisplayedArea
++ * Signature: (LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;)I
++ */
++JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_getImageRelativeDisplayedArea
+   (JNIEnv *, jobject, jobject, jobject, jobject, jobject);
+ 
+ /*
+@@ -257,10 +265,18 @@
+ 
+ /*
+  * Class:     J2Ci_jDVPresentationState
+- * Method:    setDisplayedArea
++ * Method:    setStandardDisplayedArea
++ * Signature: (IIIIIDI)I
++ */
++JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_setStandardDisplayedArea
++  (JNIEnv *, jobject, jint, jint, jint, jint, jint, jdouble, jint);
++
++/*
++ * Class:     J2Ci_jDVPresentationState
++ * Method:    setImageRelativeDisplayedArea
+  * Signature: (IIIIIDI)I
+  */
+-JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_setDisplayedArea
++JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_setImageRelativeDisplayedArea
+   (JNIEnv *, jobject, jint, jint, jint, jint, jint, jdouble, jint);
+ 
+ /*
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRCodeValue.cpp dsgui360/interface/libsrc/DSRCodeValue.cpp
+--- dsgui351/interface/libsrc/DSRCodeValue.cpp	2009-01-07 17:53:32.229233000 +0100
++++ dsgui360/interface/libsrc/DSRCodeValue.cpp	2009-01-07 17:53:07.051428000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -108,20 +108,6 @@
+ 
+ /*
+  * Class:     J2Ci_jDSRCodeValue
+- * Method:    isPrivateDcmtkCodingScheme
+- * Signature: ()Z
+- */
+-JNIEXPORT jboolean JNICALL Java_J2Ci_jDSRCodeValue_isPrivateDcmtkCodingScheme
+-  (JNIEnv *env, jobject obj)
+-{
+-    DSRCodedEntryValue *cod = getAddressOfDSRCodedEntryValue (env, obj);
+-
+-	return (jboolean) cod->isPrivateDcmtkCodingScheme();
+-}
+-
+-
+-/*
+- * Class:     J2Ci_jDSRCodeValue
+  * Method:    getCodeValue
+  * Signature: ()Ljava/lang/String;
+  */
+@@ -198,7 +184,7 @@
+ {
+     DSRCodedEntryValue *cod = getAddressOfDSRCodedEntryValue (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -229,7 +215,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRCompositeValue.cpp dsgui360/interface/libsrc/DSRCompositeValue.cpp
+--- dsgui351/interface/libsrc/DSRCompositeValue.cpp	2009-01-07 17:53:32.233231000 +0100
++++ dsgui360/interface/libsrc/DSRCompositeValue.cpp	2009-01-07 17:53:07.043436000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -142,12 +142,12 @@
+ 	char *string1 = (sopClassUID) ? (char *) env->GetStringUTFChars (sopClassUID, 0) : NULL;
+ 	char *string2 = (sopInstanceUID) ? (char *) env->GetStringUTFChars (sopInstanceUID, 0) : NULL;
+ 
+-	E_Condition res = ref->setReference(string1, string2);
++    OFCondition res = ref->setReference(string1, string2);
+ 
+ 	env->ReleaseStringUTFChars (sopClassUID, string1);
+ 	env->ReleaseStringUTFChars (sopInstanceUID, string2);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRDocument.cpp dsgui360/interface/libsrc/DSRDocument.cpp
+--- dsgui351/interface/libsrc/DSRDocument.cpp	2009-01-07 17:53:32.239223000 +0100
++++ dsgui360/interface/libsrc/DSRDocument.cpp	2009-01-07 17:53:07.096383000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -38,13 +38,7 @@
+ #include "J2Ci_jDSRDocument.h"
+ #include "jInterface.h"
+ 
+-
+-#ifdef HAVE_STRSTREA_H
+-#include <strstrea.h>      /* for ostrstream */
+-#endif
+-#ifdef HAVE_STRSTREAM_H
+-#include <strstream.h>     /* for ostrstream */
+-#endif
++#include "ofstream.h"
+ 
+ 
+ static inline DSRDocument *getAddressOfDSRDocument (JNIEnv *env, jobject obj)
+@@ -111,26 +105,21 @@
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+     /* create local string stream */
+-	ostrstream stream;
+-    E_Condition res = doc->renderHTML(stream, flags | DSRTypes::HF_version32Compatibility | DSRTypes::HF_renderFullData);
++    OFOStringStream oss;
++    OFCondition res = doc->renderHTML(oss, flags | DSRTypes::HF_version32Compatibility | DSRTypes::HF_renderFullData);
++    OFSTRINGSTREAM_GETSTR(oss, tmpString)
+ 
+ 	if (res == EC_Normal)
+     {
+-        /* add final 0 byte */
+-        stream << ends;
+-        /* freeze/get string (now we have full control over the array) */
+-        char *string = stream.str();
+         /* should never be NULL */
+-        if (string != NULL)
++        if (tmpString != NULL)
+         {
+ 	        jfieldID value = env->GetFieldID (env->GetObjectClass (outputString), "value", "Ljava/lang/String;");
+-	        env->SetObjectField (outputString, value, env->NewStringUTF (string));
+-
+-            /* very important! since we have full control we are responsible for deleting the array */
+-            delete[] string;
++            env->SetObjectField (outputString, value, env->NewStringUTF (tmpString));
+ 	    }
+ 	}
+-	return (jint) res;
++    OFSTRINGSTREAM_FREESTR(tmpString)
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -188,7 +177,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-	return (jint) doc->setSpecificCharacterSetType((DSRTypes::E_CharacterSet)characterSet);
++    return (jint) doc->setSpecificCharacterSetType((DSRTypes::E_CharacterSet)characterSet).status();
+ }
+ 
+ 
+@@ -262,7 +251,7 @@
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+     OFString dtStr, onStr, ooStr;
+-    E_Condition res = doc->getVerifyingObserver((size_t)idx, dtStr, onStr, ooStr);
++    OFCondition res = doc->getVerifyingObserver((size_t)idx, dtStr, onStr, ooStr);
+ 
+ 	jfieldID dtValue = env->GetFieldID (env->GetObjectClass(dateTime), "value", "Ljava/lang/String;");
+ 	jfieldID onValue = env->GetFieldID (env->GetObjectClass(obsName), "value", "Ljava/lang/String;");
+@@ -272,7 +261,7 @@
+ 	env->SetObjectField (obsName, onValue, env->NewStringUTF (onStr.c_str()));
+ 	env->SetObjectField (obsOrganization, ooValue, env->NewStringUTF (ooStr.c_str()));
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -288,7 +277,7 @@
+ 
+     OFString dtStr, onStr, ooStr;
+     DSRCodedEntryValue code;
+-    E_Condition res = doc->getVerifyingObserver((size_t)idx, dtStr, onStr, code, ooStr);
++    OFCondition res = doc->getVerifyingObserver((size_t)idx, dtStr, onStr, code, ooStr);
+ 
+ 	jfieldID dtValue = env->GetFieldID (env->GetObjectClass(dateTime), "value", "Ljava/lang/String;");
+ 	jfieldID onValue = env->GetFieldID (env->GetObjectClass(obsName), "value", "Ljava/lang/String;");
+@@ -306,7 +295,7 @@
+ 	env->SetObjectField (obsCM, cmValue, env->NewStringUTF (code.getCodeMeaning().c_str()));
+ 	env->SetObjectField (obsOrganization, ooValue, env->NewStringUTF (ooStr.c_str()));
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -320,30 +309,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-	return (jint) doc->getNumberOfPredecessorDocuments();
+-}
+-
+-
+-/*
+- * Class:     J2Ci_jDSRDocument
+- * Method:    getPredecessorDocument
+- * Signature: (ILJ2Ci/jStringByRef;LJ2Ci/jStringByRef;)I
+- */
+-JNIEXPORT jint JNICALL Java_J2Ci_jDSRDocument_getPredecessorDocument
+-  (JNIEnv *env, jobject obj, jint idx, jobject sopClassUID, jobject sopInstanceUID)
+-{
+-	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+-
+-    OFString scStr, siStr;
+-    E_Condition res = doc->getPredecessorDocument((size_t)idx, scStr, siStr);
+-
+-	jfieldID scValue = env->GetFieldID (env->GetObjectClass(sopClassUID), "value", "Ljava/lang/String;");
+-	jfieldID siValue = env->GetFieldID (env->GetObjectClass(sopInstanceUID), "value", "Ljava/lang/String;");
+-
+-	env->SetObjectField (sopClassUID, scValue, env->NewStringUTF (scStr.c_str()));
+-	env->SetObjectField (sopInstanceUID, siValue, env->NewStringUTF (siStr.c_str()));
+-
+-	return (jint) res;
++    return (jint) doc->getPredecessorDocuments().getNumberOfInstances();
+ }
+ 
+ 
+@@ -784,11 +750,11 @@
+ 
+ 	char *str = (value) ? (char *) env->GetStringUTFChars (value, 0) : NULL;
+ 
+-	E_Condition res = doc->setSpecificCharacterSet(str);
++    OFCondition res = doc->setSpecificCharacterSet(str);
+ 
+ 	env->ReleaseStringUTFChars (value, str);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -802,7 +768,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -820,7 +786,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -834,7 +800,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -852,7 +818,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -868,11 +834,11 @@
+ 
+ 	char *str = (value) ? (char *) env->GetStringUTFChars (value, 0) : NULL;
+ 
+-	E_Condition res = doc->setPatientsBirthDate(str);
++    OFCondition res = doc->setPatientsBirthDate(str);
+ 
+ 	env->ReleaseStringUTFChars (value, str);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -888,11 +854,11 @@
+ 
+ 	char *str = (value) ? (char *) env->GetStringUTFChars (value, 0) : NULL;
+ 
+-	E_Condition res = doc->setPatientsSex(str);
++    OFCondition res = doc->setPatientsSex(str);
+ 
+ 	env->ReleaseStringUTFChars (value, str);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -906,7 +872,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -924,7 +890,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -938,7 +904,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -956,7 +922,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -970,7 +936,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -988,7 +954,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1002,7 +968,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1020,7 +986,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1034,7 +1000,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1052,7 +1018,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1066,7 +1032,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1084,7 +1050,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1100,11 +1066,11 @@
+ 
+ 	char *str = (value) ? (char *) env->GetStringUTFChars (value, 0) : NULL;
+ 
+-	E_Condition res = doc->setSeriesNumber(str);
++    OFCondition res = doc->setSeriesNumber(str);
+ 
+ 	env->ReleaseStringUTFChars (value, str);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1120,11 +1086,11 @@
+ 
+ 	char *str = (value) ? (char *) env->GetStringUTFChars (value, 0) : NULL;
+ 
+-	E_Condition res = doc->setInstanceNumber(str);
++    OFCondition res = doc->setInstanceNumber(str);
+ 
+ 	env->ReleaseStringUTFChars (value, str);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1140,11 +1106,11 @@
+ 
+ 	char *str = (value) ? (char *) env->GetStringUTFChars (value, 0) : NULL;
+ 
+-	E_Condition res = doc->setAccessionNumber(str);
++    OFCondition res = doc->setAccessionNumber(str);
+ 
+ 	env->ReleaseStringUTFChars (value, str);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1188,11 +1154,11 @@
+ 
+ 	char *str = (studyUID) ? (char *) env->GetStringUTFChars (studyUID, 0) : NULL;
+ 
+-	E_Condition res = doc->createNewSeriesInStudy(str);
++    OFCondition res = doc->createNewSeriesInStudy(str);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, str);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1220,9 +1186,9 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-	E_Condition res = doc->createNewDocument();
++    OFCondition res = doc->createNewDocument();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1236,9 +1202,9 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-	E_Condition res = doc->createNewDocument((DSRTypes::E_DocumentType)type);
++    OFCondition res = doc->createNewDocument((DSRTypes::E_DocumentType)type);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1252,9 +1218,9 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-	E_Condition res = doc->createRevisedVersion();
++    OFCondition res = doc->createRevisedVersion();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1268,9 +1234,9 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-	E_Condition res = doc->completeDocument();
++    OFCondition res = doc->completeDocument();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1284,7 +1250,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1302,7 +1268,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1316,7 +1282,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1339,7 +1305,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1353,7 +1319,7 @@
+ {
+ 	DSRDocument *doc = getAddressOfDSRDocument (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1392,7 +1358,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRDocumentTree.cpp dsgui360/interface/libsrc/DSRDocumentTree.cpp
+--- dsgui351/interface/libsrc/DSRDocumentTree.cpp	2009-01-07 17:53:32.243220000 +0100
++++ dsgui360/interface/libsrc/DSRDocumentTree.cpp	2009-01-07 17:53:07.067412000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -373,7 +373,7 @@
+ {
+ 	DSRDocumentTree *tree = getAddressOfDSRDocumentTree (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -391,7 +391,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -531,7 +531,7 @@
+ {
+ 	DSRDocumentTree *tree = getAddressOfDSRDocumentTree (env, obj);
+ 	
+-	return (jint) tree->getCurrentContentItem().setContinuityOfContent((DSRTypes::E_ContinuityOfContent)flag);
++    return (jint) tree->getCurrentContentItem().setContinuityOfContent((DSRTypes::E_ContinuityOfContent)flag).status();
+ }
+ 
+ 
+@@ -580,11 +580,11 @@
+ 
+ 	char *str = (value) ? (char *) env->GetStringUTFChars (value, 0) : NULL;
+ 
+-	E_Condition res = tree->getCurrentContentItem().setObservationDateTime(str);
++    OFCondition res = tree->getCurrentContentItem().setObservationDateTime(str);
+ 
+ 	env->ReleaseStringUTFChars (value, str);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRImageValue.cpp dsgui360/interface/libsrc/DSRImageValue.cpp
+--- dsgui351/interface/libsrc/DSRImageValue.cpp	2009-01-07 17:53:32.248214000 +0100
++++ dsgui360/interface/libsrc/DSRImageValue.cpp	2009-01-07 17:53:07.047432000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -142,12 +142,12 @@
+ 	char *string1 = (sopClassUID) ? (char *) env->GetStringUTFChars (sopClassUID, 0) : NULL;
+ 	char *string2 = (sopInstanceUID) ? (char *) env->GetStringUTFChars (sopInstanceUID, 0) : NULL;
+ 
+-	E_Condition res = ref->setReference(string1, string2);
++    OFCondition res = ref->setReference(string1, string2);
+ 
+ 	env->ReleaseStringUTFChars (sopClassUID, string1);
+ 	env->ReleaseStringUTFChars (sopInstanceUID, string2);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -229,12 +229,12 @@
+ 	char *string1 = (sopClassUID) ? (char *) env->GetStringUTFChars (sopClassUID, 0) : NULL;
+ 	char *string2 = (sopInstanceUID) ? (char *) env->GetStringUTFChars (sopInstanceUID, 0) : NULL;
+ 
+-	E_Condition res = ref->setPresentationState(DSRCompositeReferenceValue(string1, string2));
++    OFCondition res = ref->setPresentationState(DSRCompositeReferenceValue(string1, string2));
+ 
+ 	env->ReleaseStringUTFChars (sopClassUID, string1);
+ 	env->ReleaseStringUTFChars (sopInstanceUID, string2);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -278,11 +278,11 @@
+ 
+ 	Sint32 fnValue;
+ 
+-	E_Condition res = ref->getFrameList().getItem((size_t)idx, fnValue);
++    OFCondition res = ref->getFrameList().getItem((size_t)idx, fnValue);
+ 
+ 	env->SetIntField (frameNumber, env->GetFieldID (env->GetObjectClass (frameNumber), "value", "I"), fnValue);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -310,7 +310,7 @@
+ {
+     DSRImageReferenceValue *ref = getAddressOfDSRImageReferenceValue (env, obj);
+ 
+-	return (jint) ref->getFrameList().removeItem((size_t)idx);
++    return (jint) ref->getFrameList().removeItem((size_t)idx).status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRNumericValue.cpp dsgui360/interface/libsrc/DSRNumericValue.cpp
+--- dsgui351/interface/libsrc/DSRNumericValue.cpp	2009-01-07 17:53:32.252210000 +0100
++++ dsgui360/interface/libsrc/DSRNumericValue.cpp	2009-01-07 17:53:07.055424000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -161,11 +161,11 @@
+ 
+ 	char *string = (numericValue) ? (char *) env->GetStringUTFChars (numericValue, 0) : NULL;
+ 
+-	E_Condition res = num->setNumericValue(string);
++    OFCondition res = num->setNumericValue(string);
+ 
+ 	env->ReleaseStringUTFChars (numericValue, string);
+     
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -179,7 +179,7 @@
+ {
+     DSRNumericMeasurementValue *num = getAddressOfDSRNumericMeasurementValue (env, obj);
+     
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -212,7 +212,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRSCoordValue.cpp dsgui360/interface/libsrc/DSRSCoordValue.cpp
+--- dsgui351/interface/libsrc/DSRSCoordValue.cpp	2009-01-07 17:53:32.256206000 +0100
++++ dsgui360/interface/libsrc/DSRSCoordValue.cpp	2009-01-07 17:53:07.062420000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -88,7 +88,7 @@
+ {
+     DSRSpatialCoordinatesValue *sco = getAddressOfDSRSpatialCoordinatesValue (env, obj);
+     
+-	return (jint) sco->setGraphicType((DSRTypes::E_GraphicType)graphicType);
++    return (jint) sco->setGraphicType((DSRTypes::E_GraphicType)graphicType).status();
+ }
+ 
+ 
+@@ -132,12 +132,12 @@
+     
+ 	Float32 columnValue, rowValue;
+ 
+-	E_Condition res = sco->getGraphicDataList().getItem((size_t)idx, columnValue, rowValue);
++    OFCondition res = sco->getGraphicDataList().getItem((size_t)idx, columnValue, rowValue);
+ 
+ 	env->SetFloatField (column, env->GetFieldID (env->GetObjectClass (column), "value", "F"), columnValue);
+ 	env->SetFloatField (row, env->GetFieldID (env->GetObjectClass (row), "value", "F"), rowValue);
+ 		
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -165,7 +165,7 @@
+ {
+     DSRSpatialCoordinatesValue *sco = getAddressOfDSRSpatialCoordinatesValue (env, obj);
+     
+-	return (jint) sco->getGraphicDataList().removeItem((size_t)idx);
++    return (jint) sco->getGraphicDataList().removeItem((size_t)idx).status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRTCoordValue.cpp dsgui360/interface/libsrc/DSRTCoordValue.cpp
+--- dsgui351/interface/libsrc/DSRTCoordValue.cpp	2009-01-07 17:53:32.260202000 +0100
++++ dsgui360/interface/libsrc/DSRTCoordValue.cpp	2009-01-07 17:53:07.059420000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -88,7 +88,7 @@
+ {
+     DSRTemporalCoordinatesValue *tco = getAddressOfDSRTemporalCoordinatesValue (env, obj);
+     
+-	return (jint) tco->setTemporalRangeType((DSRTypes::E_TemporalRangeType)temporalRangeType);
++    return (jint) tco->setTemporalRangeType((DSRTypes::E_TemporalRangeType)temporalRangeType).status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DSRWaveformValue.cpp dsgui360/interface/libsrc/DSRWaveformValue.cpp
+--- dsgui351/interface/libsrc/DSRWaveformValue.cpp	2009-01-07 17:53:32.264198000 +0100
++++ dsgui360/interface/libsrc/DSRWaveformValue.cpp	2009-01-07 17:53:07.039440000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -142,12 +142,12 @@
+ 	char *string1 = (char *) env->GetStringUTFChars (sopClassUID, 0);
+ 	char *string2 = (char *) env->GetStringUTFChars (sopInstanceUID, 0);
+ 
+-	E_Condition res = ref->setReference((string1) ? string1 : "", (string2) ? string2 : "");
++    OFCondition res = ref->setReference((string1) ? string1 : "", (string2) ? string2 : "");
+ 
+ 	env->ReleaseStringUTFChars (sopClassUID, string1);
+ 	env->ReleaseStringUTFChars (sopInstanceUID, string2);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -191,12 +191,12 @@
+ 
+ 	Uint16 mgnValue, cnValue;
+ 
+-	E_Condition res = ref->getChannelList().getItem((size_t)idx, mgnValue, cnValue);
++    OFCondition res = ref->getChannelList().getItem((size_t)idx, mgnValue, cnValue);
+ 
+ 	env->SetIntField (multiplexGroupNumber, env->GetFieldID (env->GetObjectClass (multiplexGroupNumber), "value", "I"), mgnValue);
+ 	env->SetIntField (channelNumber, env->GetFieldID (env->GetObjectClass (channelNumber), "value", "I"), cnValue);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -224,7 +224,7 @@
+ {
+     DSRWaveformReferenceValue *ref = getAddressOfDSRWaveformReferenceValue (env, obj);
+ 
+-	return (jint) ref->getChannelList().removeItem((size_t)idx);
++    return (jint) ref->getChannelList().removeItem((size_t)idx).status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DVInterface.cpp dsgui360/interface/libsrc/DVInterface.cpp
+--- dsgui351/interface/libsrc/DVInterface.cpp	2009-01-07 17:53:32.272190000 +0100
++++ dsgui360/interface/libsrc/DVInterface.cpp	2009-01-07 17:53:07.104377000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999..2001, Institute for MicroTherapy and OFFIS
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -41,6 +41,10 @@
+ 
+ #include "jInterface.h"
+ 
++#include "dcrledrg.h"      /* for DcmRLEDecoderRegistration */
++#include "djdecode.h"      /* for dcmjpeg decoders */
++
++
+ // ------------------- accessing C++-Objects
+ 
+ inline DVInterface* getAddressOfDVInterface (JNIEnv *env, jobject obj)
+@@ -79,6 +83,11 @@
+ 	env->ReleaseStringUTFChars (configfile, fn);
+ 
+ 	setAddressOfDVInterface (env, obj, dvi);
++
++    // register RLE decompression codec
++    DcmRLEDecoderRegistration::registerCodecs();
++    // register JPEG decompression codecs
++    DJDecoderRegistration::registerCodecs();
+ }
+ 
+ 
+@@ -93,6 +102,11 @@
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+ 	delete dvi;
++
++    // deregister RLE decompression codecs
++    DcmRLEDecoderRegistration::cleanup();
++    // deregister JPEG decompression codecs
++    DJDecoderRegistration::cleanup();
+ }
+ 
+ 
+@@ -115,13 +129,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->loadImage (stu, ser, ins, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
++    OFCondition res = dvi->loadImage (stu, ser, ins, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -137,11 +151,11 @@
+ 
+ 	char *fn = (char*) env->GetStringUTFChars (filename, 0);
+ 
+-	E_Condition res = dvi->loadImage (fn);
++    OFCondition res = dvi->loadImage (fn);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -155,9 +169,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->loadReferencedImage (idx, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
++    OFCondition res = dvi->loadReferencedImage (idx, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -175,13 +189,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->loadPState (stu, ser, ins, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
++    OFCondition res = dvi->loadPState (stu, ser, ins, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -197,11 +211,11 @@
+ 
+ 	char *psn = (char*) env->GetStringUTFChars (pstName, 0);
+ 
+-	E_Condition res = dvi->loadPState (psn);
++    OFCondition res = dvi->loadPState (psn);
+ 
+ 	env->ReleaseStringUTFChars (pstName, psn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -218,12 +232,12 @@
+ 	char *psn = (char*) env->GetStringUTFChars (pstName, 0);
+ 	char *imn = (char*) env->GetStringUTFChars (imgName, 0);
+ 
+-	E_Condition res = dvi->loadPState (psn, imn);
++    OFCondition res = dvi->loadPState (psn, imn);
+ 
+ 	env->ReleaseStringUTFChars (pstName, psn);
+ 	env->ReleaseStringUTFChars (imgName, imn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -241,13 +255,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->loadStructuredReport(stu, ser, ins, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
++    OFCondition res = dvi->loadStructuredReport(stu, ser, ins, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -263,11 +277,11 @@
+ 
+ 	char *fn = (char*) env->GetStringUTFChars (filename, 0);
+ 
+-	E_Condition res = dvi->loadStructuredReport(fn);
++    OFCondition res = dvi->loadStructuredReport(fn);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -283,11 +297,11 @@
+ 
+     char *id = (char*) env->GetStringUTFChars (reportID, 0);
+ 
+-	E_Condition res = dvi->loadSRTemplate(id);
++    OFCondition res = dvi->loadSRTemplate(id);
+ 
+     env->ReleaseStringUTFChars (reportID, id);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -301,9 +315,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->savePState(replaceSOPInstanceUID == JNI_TRUE ? OFTrue : OFFalse);
++    OFCondition res = dvi->savePState(replaceSOPInstanceUID == JNI_TRUE ? OFTrue : OFFalse);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -321,11 +335,11 @@
+ 	OFBool explVR  = (explicitVR == JNI_TRUE) ? OFTrue : OFFalse;
+ 	OFBool replUID = (replaceSOPInstanceUID == JNI_TRUE) ? OFTrue : OFFalse;
+ 
+-	E_Condition res = dvi->savePState(fn, replUID, explVR);
++    OFCondition res = dvi->savePState(fn, replUID, explVR);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -342,11 +356,11 @@
+ 	char *fn = (char*) env->GetStringUTFChars (filename, 0);
+ 	OFBool expVR = explicitVR == JNI_TRUE ? OFTrue : OFFalse;
+ 
+-	E_Condition res = dvi->saveCurrentImage(fn, expVR);
++    OFCondition res = dvi->saveCurrentImage(fn, expVR);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -360,9 +374,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->saveStructuredReport();
++    OFCondition res = dvi->saveStructuredReport();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -379,11 +393,11 @@
+ 	char *fn = (char *) env->GetStringUTFChars (filename, 0);
+ 	OFBool expVR = (explicitVR == JNI_TRUE) ? OFTrue : OFFalse;
+ 
+-	E_Condition res = dvi->saveStructuredReport(fn, expVR);
++    OFCondition res = dvi->saveStructuredReport(fn, expVR);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -401,13 +415,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->addImageReferenceToPState (stu, ser, ins);
++    OFCondition res = dvi->addImageReferenceToPState (stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -421,9 +435,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	int res = dvi->getNumberOfImageReferences ();
+-
+-	return (jint) res;
++    return (jint) dvi->getNumberOfImageReferences ();
+ }
+ 
+ 
+@@ -485,9 +497,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->resetPresentationState();
++    OFCondition res = dvi->resetPresentationState();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -501,9 +513,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->saveCurrentPStateForReset();
++    OFCondition res = dvi->saveCurrentPStateForReset();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -517,9 +529,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->releaseDatabase();
++    OFCondition res = dvi->releaseDatabase();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -558,9 +570,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	int res = dvi->getNumberOfStudies();
+-
+-	return (jint) res;
++    return (jint) dvi->getNumberOfStudies();
+ }
+ 
+ 
+@@ -574,9 +584,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->selectStudy(idx);
++    OFCondition res = dvi->selectStudy(idx);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -592,11 +602,11 @@
+ 
+ 	char *stu = (char*) env->GetStringUTFChars (studyUID, 0);
+ 
+-	E_Condition res = dvi->selectStudy (stu);
++    OFCondition res = dvi->selectStudy (stu);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -610,9 +620,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	DVIFhierarchyStatus res = dvi->getStudyStatus();
+-
+-	return (jint) res;
++    return (jint) dvi->getStudyStatus();
+ }
+ 
+ 
+@@ -883,9 +891,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	int res = dvi->getNumberOfSeries();
+-
+-	return (jint) res;
++    return (jint) dvi->getNumberOfSeries();
+ }
+ 
+ 
+@@ -899,9 +905,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->selectSeries(idx);
++    OFCondition res = dvi->selectSeries(idx);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -917,11 +923,11 @@
+ 
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 
+-	E_Condition res = dvi->selectSeries (ser);
++    OFCondition res = dvi->selectSeries (ser);
+ 
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -952,9 +958,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	DVIFhierarchyStatus res = dvi->getSeriesStatus();
+-
+-	return (jint) res;
++    return (jint) dvi->getSeriesStatus();
+ }
+ 
+ 
+@@ -968,9 +972,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	DVPSInstanceType res = dvi->getSeriesType();
+-
+-	return (jint) res;
++    return (jint) dvi->getSeriesType();
+ }
+ 
+ 
+@@ -984,9 +986,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	DVPSInstanceType res = dvi->getInstanceType();
+-
+-	return (jint) res;
++    return (jint) dvi->getInstanceType();
+ }
+ 
+ 
+@@ -1136,9 +1136,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	int res = dvi->getNumberOfInstances();
+-
+-	return (jint) res;
++    return (jint) dvi->getNumberOfInstances();
+ }
+ 
+ 
+@@ -1152,9 +1150,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->selectInstance(idx);
++    OFCondition res = dvi->selectInstance(idx);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1170,11 +1168,11 @@
+ 
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->selectInstance (ins);
++    OFCondition res = dvi->selectInstance (ins);
+ 
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1191,12 +1189,12 @@
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 	char *sop = (char*) env->GetStringUTFChars (sopClassUID, 0);
+ 
+-	E_Condition res = dvi->selectInstance (ins, sop);
++    OFCondition res = dvi->selectInstance (ins, sop);
+ 
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 	env->ReleaseStringUTFChars (sopClassUID, sop);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1214,13 +1212,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->selectInstance (stu, ser, ins);
++    OFCondition res = dvi->selectInstance (stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1285,9 +1283,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	DVIFhierarchyStatus res = dvi->getInstanceStatus();
+-
+-	return (jint) res;
++    return (jint) dvi->getInstanceStatus();
+ }
+ 
+ 
+@@ -1339,13 +1335,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->instanceReviewed(stu, ser, ins);
++    OFCondition res = dvi->instanceReviewed(stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1363,13 +1359,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->deleteInstance(stu, ser, ins);
++    OFCondition res = dvi->deleteInstance(stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1386,12 +1382,12 @@
+ 	char *stu = (char*) env->GetStringUTFChars (studyUID, 0);
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 
+-	E_Condition res = dvi->deleteSeries(stu, ser);
++    OFCondition res = dvi->deleteSeries(stu, ser);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1407,11 +1403,11 @@
+ 
+ 	char *stu = (char*) env->GetStringUTFChars (studyUID, 0);
+ 
+-	E_Condition res = dvi->deleteStudy(stu);
++    OFCondition res = dvi->deleteStudy(stu);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1425,9 +1421,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->startReceiver();
++    OFCondition res = dvi->startReceiver();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1441,9 +1437,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->terminateReceiver();
++    OFCondition res = dvi->terminateReceiver();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1457,9 +1453,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->startQueryRetrieveServer();
++    OFCondition res = dvi->startQueryRetrieveServer();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1473,9 +1469,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->terminateQueryRetrieveServer();
++    OFCondition res = dvi->terminateQueryRetrieveServer();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1509,12 +1505,12 @@
+ 	char *stu = (char*) env->GetStringUTFChars (studyUID, 0);
+ 	char *tid = (char*) env->GetStringUTFChars (targetID, 0);
+ 
+-	E_Condition res = dvi->sendStudy(tid, stu);
++    OFCondition res = dvi->sendStudy(tid, stu);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (targetID, tid);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1532,13 +1528,13 @@
+ 	char *stu = (char*) env->GetStringUTFChars (studyUID, 0);
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 
+-	E_Condition res = dvi->sendSeries(tid, stu, ser);
++    OFCondition res = dvi->sendSeries(tid, stu, ser);
+ 
+ 	env->ReleaseStringUTFChars (targetID, tid);
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1557,14 +1553,14 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->sendIOD(tid, stu, ser, ins);
++    OFCondition res = dvi->sendIOD(tid, stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (targetID, tid);
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1580,11 +1576,11 @@
+ 
+ 	char *fn = (char*) env->GetStringUTFChars (filename, 0);
+ 
+-	E_Condition res = dvi->dumpIOD (fn);
++    OFCondition res = dvi->dumpIOD (fn);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1602,13 +1598,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->dumpIOD (stu, ser, ins);
++    OFCondition res = dvi->dumpIOD (stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1624,11 +1620,11 @@
+ 
+ 	char *fn = (char*) env->GetStringUTFChars (filename, 0);
+ 
+-	E_Condition res = dvi->checkIOD (fn);
++    OFCondition res = dvi->checkIOD (fn);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1646,13 +1642,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->checkIOD (stu, ser, ins);
++    OFCondition res = dvi->checkIOD (stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1673,12 +1669,12 @@
+ 	jboolean isCopy;
+ 	array = (const void*) env->GetByteArrayElements (pixelData, &isCopy);
+ 
+-	E_Condition res = dvi->saveDICOMImage (fname, array, (long) width, (long) height, aspectRatio);
++    OFCondition res = dvi->saveDICOMImage (fname, array, (long) width, (long) height, aspectRatio);
+ 
+ 	env->ReleaseStringUTFChars (filename, fname);
+ 	env->ReleaseByteArrayElements (pixelData, (jbyte *) array, JNI_ABORT);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1702,13 +1698,13 @@
+ 	jboolean isCopy;
+ 	array = (const void*) env->GetByteArrayElements (pixelData, &isCopy);
+ 
+-	E_Condition res = dvi->saveDICOMImage (fname, array, (long) width, (long) height, aspectRatio, expVR, iUID);
++    OFCondition res = dvi->saveDICOMImage (fname, array, (long) width, (long) height, aspectRatio, expVR, iUID);
+ 
+ 	env->ReleaseStringUTFChars (filename, fname);
+ 	env->ReleaseStringUTFChars (instanceUID, iUID);
+ 	env->ReleaseByteArrayElements (pixelData, (jbyte *) array, JNI_ABORT);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1726,11 +1722,11 @@
+ 	jboolean isCopy;
+ 	array = (const void*) env->GetByteArrayElements (pixelData, &isCopy);
+ 
+-	E_Condition res = dvi->saveDICOMImage (array, (long) width, (long) height, aspectRatio);
++    OFCondition res = dvi->saveDICOMImage (array, (long) width, (long) height, aspectRatio);
+ 
+ 	env->ReleaseByteArrayElements (pixelData, (jbyte *) array, JNI_ABORT);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1755,13 +1751,13 @@
+ 
+ 	OFBool explVR = (explicitVR == JNI_TRUE) ? OFTrue : OFFalse;
+ 
+-    E_Condition res = dvi->saveHardcopyGrayscaleImage (fn, array, (unsigned long) width, (unsigned long) height, aspectRatio, explVR, ui);
++    OFCondition res = dvi->saveHardcopyGrayscaleImage (fn, array, (unsigned long) width, (unsigned long) height, aspectRatio, explVR, ui);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 	env->ReleaseStringUTFChars (instanceUID, ui);
+ 	env->ReleaseShortArrayElements (pixelData, (jshort *) array, 0);
+ 
+-	return res;
++    return res.status();
+ }
+ 
+ 
+@@ -1779,11 +1775,11 @@
+ 	jboolean isCopy;
+ 	array = (void*) env->GetShortArrayElements (pixelData, &isCopy);
+ 
+-	E_Condition res = dvi->saveHardcopyGrayscaleImage (array, (unsigned long) width, (unsigned long) height, aspectRatio);
++    OFCondition res = dvi->saveHardcopyGrayscaleImage (array, (unsigned long) width, (unsigned long) height, aspectRatio);
+ 
+ 	env->ReleaseShortArrayElements (pixelData, (jshort *) array, 0);
+ 
+-	return res;
++    return res.status();
+ }
+ 
+ 
+@@ -1801,13 +1797,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->loadStoredPrint (stu, ser, ins, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
++    OFCondition res = dvi->loadStoredPrint (stu, ser, ins, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1823,11 +1819,11 @@
+ 
+ 	char *fn = (char*) env->GetStringUTFChars (filename, 0);
+ 
+-	E_Condition res = dvi->loadStoredPrint (fn);
++    OFCondition res = dvi->loadStoredPrint (fn);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1847,12 +1843,12 @@
+ 	OFBool explVR = (explicitVR == JNI_TRUE) ? OFTrue : OFFalse;
+ 	OFBool wrRqImgS = (writeRequestedImageSize == JNI_TRUE) ? OFTrue : OFFalse;
+ 
+-    E_Condition res = dvi->saveStoredPrint (fn, wrRqImgS, explVR, ui);
++    OFCondition res = dvi->saveStoredPrint (fn, wrRqImgS, explVR, ui);
+ 
+ 	env->ReleaseStringUTFChars (filename, fn);
+ 	env->ReleaseStringUTFChars (instanceUID, ui);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1868,9 +1864,9 @@
+ 
+ 	OFBool wrRqImgS = (writeRequestedImageSize == JNI_TRUE) ? OFTrue : OFFalse;
+ 
+-    E_Condition res = dvi->saveStoredPrint (wrRqImgS);
++    OFCondition res = dvi->saveStoredPrint (wrRqImgS);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1884,9 +1880,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-    int res = dvi->getNumberOfPrintPreviews();
+-
+-	return (jint) res;
++    return (jint) dvi->getNumberOfPrintPreviews();
+ }
+ 
+ 
+@@ -1900,9 +1894,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-    E_Condition res = dvi->loadPrintPreview(idx, printLUT, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
++    OFCondition res = dvi->loadPrintPreview(idx, printLUT == JNI_TRUE ? OFTrue : OFFalse, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1930,9 +1924,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-    unsigned long res = dvi->getPrintPreviewSize();
+-
+-	return (jlong) res;
++    return (jlong) dvi->getPrintPreviewSize();
+ }
+ 
+ 
+@@ -1962,9 +1954,9 @@
+ 
+ 	unsigned long w, h;
+ 
+-	E_Condition res = dvi->getPrintPreviewWidthHeight (w, h);
++    OFCondition res = dvi->getPrintPreviewWidthHeight (w, h);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass wIntByRefcls = env->GetObjectClass (width);
+ 	jclass hIntByRefcls = env->GetObjectClass (height);
+@@ -1975,7 +1967,7 @@
+ 	env->SetIntField (width, wvalue, (jint) w);
+ 	env->SetIntField (height, hvalue, (jint) h);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -1993,11 +1985,11 @@
+ 	jboolean isCopy;
+ 	array = (void*) env->GetByteArrayElements (bitmap, &isCopy);
+ 
+-	E_Condition res = dvi->getPrintPreviewBitmap (array, (unsigned long) size);
++    OFCondition res = dvi->getPrintPreviewBitmap (array, (unsigned long) size);
+ 
+ 	env->ReleaseByteArrayElements (bitmap, (jbyte *) array, 0);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2011,9 +2003,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->disablePState();
++    OFCondition res = dvi->disablePState();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2027,9 +2019,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->enablePState();
++    OFCondition res = dvi->enablePState();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2043,9 +2035,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	int res = dvi->getNumberOfPStates();
+-
+-	return (jint) res;
++    return (jint) dvi->getNumberOfPStates();
+ }
+ 
+ 
+@@ -2059,9 +2049,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->selectPState(idx, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
++    OFCondition res = dvi->selectPState(idx, changeStatus == JNI_TRUE ? OFTrue : OFFalse);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2126,9 +2116,9 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	E_Condition res = dvi->setAmbientLightValue(alv);
++    OFCondition res = dvi->setAmbientLightValue(alv);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2144,9 +2134,9 @@
+ 
+ 	double _alv = 0.0;
+ 
+-	E_Condition res = dvi->getAmbientLightValue(_alv);
++    OFCondition res = dvi->getAmbientLightValue(_alv);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass DoubleByRefcls = env->GetObjectClass (alv);
+ 
+@@ -2154,7 +2144,7 @@
+ 
+ 	env->SetDoubleField (alv, value, _alv);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2170,11 +2160,11 @@
+ 
+ 	char *tid = (char*) env->GetStringUTFChars (targetID, 0);
+ 
+-	E_Condition res = dvi->setCurrentPrinter(tid);
++    OFCondition res = dvi->setCurrentPrinter(tid);
+ 
+ 	env->ReleaseStringUTFChars (targetID, tid);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2207,11 +2197,11 @@
+ 
+ 	char *val = (char *) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = dvi->setPrinterMediumType(val);
++    OFCondition res = dvi->setPrinterMediumType(val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2244,11 +2234,11 @@
+ 
+ 	char *val = (char *) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = dvi->setPrinterFilmDestination(val);
++    OFCondition res = dvi->setPrinterFilmDestination(val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2281,11 +2271,11 @@
+ 
+ 	char *val = (char *) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = dvi->setPrinterFilmSessionLabel(val);
++    OFCondition res = dvi->setPrinterFilmSessionLabel(val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2318,11 +2308,11 @@
+ 
+     char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = dvi->setPrinterPriority(val);
++    OFCondition res = dvi->setPrinterPriority(val);
+ 
+     env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2356,11 +2346,11 @@
+ 
+     char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = dvi->setPrinterOwnerID(val);
++    OFCondition res = dvi->setPrinterOwnerID(val);
+ 
+     env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2391,7 +2381,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	return (jint) dvi->setPrinterNumberOfCopies((long) value);
++    return (jint) dvi->setPrinterNumberOfCopies((long) value).status();
+ }
+ 
+ 
+@@ -2435,11 +2425,11 @@
+ 
+ 	char *lid = (char*) env->GetStringUTFChars (lutID, 0);
+ 
+-	E_Condition res = dvi->selectDisplayPresentationLUT(lid);
++    OFCondition res = dvi->selectDisplayPresentationLUT(lid);
+ 
+ 	env->ReleaseStringUTFChars (lutID, lid);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2472,11 +2462,11 @@
+ 
+ 	char *lid = (char*) env->GetStringUTFChars (lutID, 0);
+ 
+-	E_Condition res = dvi->selectPrintPresentationLUT(lid);
++    OFCondition res = dvi->selectPrintPresentationLUT(lid);
+ 
+ 	env->ReleaseStringUTFChars (lutID, lid);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2507,7 +2497,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	return (jint) dvi->spoolPrintJob((deletePrintedImages == JNI_TRUE) ? OFTrue : OFFalse);
++    return (jint) dvi->spoolPrintJob((deletePrintedImages == JNI_TRUE) ? OFTrue : OFFalse).status();
+ }
+ 
+ 
+@@ -2521,7 +2511,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	return (jint) dvi->startPrintSpooler();
++    return (jint) dvi->startPrintSpooler().status();
+ }
+ 
+ 
+@@ -2535,7 +2525,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	return (jint) dvi->terminatePrintSpooler();
++    return (jint) dvi->terminatePrintSpooler().status();
+ }
+ 
+ 
+@@ -2549,7 +2539,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	return (jint) dvi->startPrintServer();
++    return (jint) dvi->startPrintServer().status();
+ }
+ 
+ 
+@@ -2563,7 +2553,7 @@
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+ 
+-	return (jint) dvi->terminatePrintServer();
++    return (jint) dvi->terminatePrintServer().status();
+ }
+ 
+ 
+@@ -2581,13 +2571,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->addToPrintHardcopyFromDB (stu, ser, ins);
++    OFCondition res = dvi->addToPrintHardcopyFromDB (stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2605,13 +2595,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = dvi->spoolStoredPrintFromDB (stu, ser, ins);
++    OFCondition res = dvi->spoolStoredPrintFromDB (stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2797,12 +2787,12 @@
+ 	char *str1 = (char*) env->GetStringUTFChars (userID, 0);
+ 	char *str2 = (char*) env->GetStringUTFChars (passwd, 0);
+ 
+-	OFBool result = dvi->verifyUserPassword (str1, str2);
++    OFBool res = dvi->verifyUserPassword (str1, str2);
+ 
+ 	env->ReleaseStringUTFChars (userID, str1);
+ 	env->ReleaseStringUTFChars (passwd, str2);
+ 
+-	return (jboolean) result;
++    return (jboolean) res;
+ }
+ 
+ 
+@@ -2819,12 +2809,12 @@
+ 	char *str1 = (char*) env->GetStringUTFChars (userID, 0);
+ 	char *str2 = (char*) env->GetStringUTFChars (passwd, 0);
+ 
+-	E_Condition result = dvi->verifyAndSignStructuredReport (str1, str2, (DVPSVerifyAndSignMode) mode);
++    OFCondition res = dvi->verifyAndSignStructuredReport (str1, str2, (DVPSVerifyAndSignMode) mode);
+ 
+ 	env->ReleaseStringUTFChars (userID, str1);
+ 	env->ReleaseStringUTFChars (passwd, str2);
+ 
+-	return (jint) result;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2855,12 +2845,12 @@
+ 	char *mod = (char*) env->GetStringUTFChars (module, 0);
+ 	char *msg = (char*) env->GetStringUTFChars (message, 0);
+ 
+-	E_Condition res = dvi->writeLogMessage ((DVPSLogMessageLevel)level, mod, msg);
++    OFCondition res = dvi->writeLogMessage ((DVPSLogMessageLevel)level, mod, msg);
+ 
+ 	env->ReleaseStringUTFChars (module, mod);
+ 	env->ReleaseStringUTFChars (message, msg);
+ 
+-	return (jint)res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -3868,8 +3862,8 @@
+   (JNIEnv *env, jobject obj)
+ {
+ 	DVInterface *dvi = getAddressOfDVInterface (env, obj);
+-	int res = dvi->getMessagePort();
+-	return (jint) res;
++
++    return (jint) dvi->getMessagePort();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DVPresentationState.cpp dsgui360/interface/libsrc/DVPresentationState.cpp
+--- dsgui351/interface/libsrc/DVPresentationState.cpp	2009-01-07 17:53:32.279185000 +0100
++++ dsgui360/interface/libsrc/DVPresentationState.cpp	2009-01-07 17:53:07.074405000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999..2000, Institute for MicroTherapy and OFFIS
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -161,7 +161,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -179,7 +179,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -211,7 +211,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -229,7 +229,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -261,7 +261,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -279,7 +279,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -297,7 +297,7 @@
+ 	unsigned long width = 0;
+ 	unsigned long height = 0;
+ 
+-	E_Condition res = ps->getPixelData (pixelData, width, height);
++    OFCondition res = ps->getPixelData (pixelData, width, height);
+ 
+ 	jclass pixelcls = env->GetObjectClass (pixel);
+ 	jfieldID widthfid = env->GetFieldID (pixelcls, "width", "J");
+@@ -313,7 +313,7 @@
+ 
+ 	env->SetObjectField (pixel, datafid, array);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -342,7 +342,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return (jint) ps->setRotation ((DVPSRotationType) rotation);
++    return (jint) ps->setRotation ((DVPSRotationType) rotation).status();
+ }
+ 
+ 
+@@ -385,7 +385,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setFlip (isFlipped == JNI_TRUE ? OFTrue : OFFalse);
++    return  (jint) ps->setFlip (isFlipped == JNI_TRUE ? OFTrue : OFFalse).status();
+ }
+ 
+ 
+@@ -409,7 +409,7 @@
+ 	char *fid = (char*) env->GetStringUTFChars (filesetID, 0);
+ 	char *fui = (char*) env->GetStringUTFChars (filesetUID, 0);
+ 
+-	E_Condition res = ps->addImageReference (stu, ser, sop, ins, fra, aet, fid, fui);
++    OFCondition res = ps->addImageReference (stu, ser, sop, ins, fra, aet, fid, fui);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+@@ -420,7 +420,7 @@
+ 	env->ReleaseStringUTFChars (filesetID, fid);
+ 	env->ReleaseStringUTFChars (filesetUID, fui);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -438,13 +438,13 @@
+ 	char *fid = (char*) env->GetStringUTFChars (filesetID, 0);
+ 	char *fui = (char*) env->GetStringUTFChars (filesetUID, 0);
+ 
+-	E_Condition res = ps->addImageReferenceAttached (aet, fid, fui);
++    OFCondition res = ps->addImageReferenceAttached (aet, fid, fui);
+ 
+ 	env->ReleaseStringUTFChars (aetitle, aet);
+ 	env->ReleaseStringUTFChars (filesetID, fid);
+ 	env->ReleaseStringUTFChars (filesetUID, fui);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -462,13 +462,13 @@
+ 	char *ser = (char*) env->GetStringUTFChars (seriesUID, 0);
+ 	char *ins = (char*) env->GetStringUTFChars (instanceUID, 0);
+ 
+-	E_Condition res = ps->removeImageReference (stu, ser, ins);
++    OFCondition res = ps->removeImageReference (stu, ser, ins);
+ 
+ 	env->ReleaseStringUTFChars (studyUID, stu);
+ 	env->ReleaseStringUTFChars (seriesUID, ser);
+ 	env->ReleaseStringUTFChars (instanceUID, ins);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -482,7 +482,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->removeImageReferenceAttached ();
++    return  (jint) ps->removeImageReferenceAttached ().status();
+ }
+ 
+ 
+@@ -498,16 +498,16 @@
+ 
+ 	unsigned long fr;
+ 
+-	E_Condition res = ps->getImageNumberOfFrames (fr);
++    OFCondition res = ps->getImageNumberOfFrames (fr);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass IntByRefcls = env->GetObjectClass (frame);
+ 	jfieldID value = env->GetFieldID (IntByRefcls, "value", "I");
+ 
+ 	env->SetIntField (frame, value, (jint) fr);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -521,7 +521,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return (jint) ps->selectImageFrameNumber (frame);
++    return (jint) ps->selectImageFrameNumber (frame).status();
+ }
+ 
+ 
+@@ -634,7 +634,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setRectShutter (lv, rv, uh, lh);
++    return  (jint) ps->setRectShutter (lv, rv, uh, lh).status();
+ }
+ 
+ 
+@@ -664,7 +664,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setCurrentPresentationLUT ((DVPSPresentationLUTType) type);
++    return  (jint) ps->setCurrentPresentationLUT ((DVPSPresentationLUTType) type).status();
+ }
+ 
+ 
+@@ -756,7 +756,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setCircularShutter (centerX, centerY, radius);
++    return  (jint) ps->setCircularShutter (centerX, centerY, radius).status();
+ }
+ 
+ 
+@@ -784,7 +784,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setPolyShutterOrigin (x, y);
++    return  (jint) ps->setPolyShutterOrigin (x, y).status();
+ }
+ 
+ 
+@@ -798,7 +798,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->addPolyShutterVertex (x, y);
++    return  (jint) ps->addPolyShutterVertex (x, y).status();
+ }
+ 
+ 
+@@ -814,9 +814,9 @@
+ 
+ 	Sint32 x, y;
+ 
+-	E_Condition res = ps->getPolyShutterVertex (idx, x, y);
++    OFCondition res = ps->getPolyShutterVertex (idx, x, y);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass pointcls = env->GetObjectClass (pointXY);
+ 	jfieldID xfid = env->GetFieldID (pointcls, "x", "I");
+@@ -825,7 +825,7 @@
+ 	env->SetIntField (pointXY, xfid, (jint) x);
+ 	env->SetIntField (pointXY, yfid, (jint) y);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -853,7 +853,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setShutterPresentationValue ((Uint16) pvalue);
++    return  (jint) ps->setShutterPresentationValue ((Uint16) pvalue).status();
+ }
+ 
+ 
+@@ -971,19 +971,19 @@
+ 
+ /*
+  * Class:     J2Ci_jDVPresentationState
+- * Method:    getDisplayedArea
++ * Method:    getStandardDisplayedArea
+  * Signature: (LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;)I
+  */
+-JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_getDisplayedArea
++JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_getStandardDisplayedArea
+   (JNIEnv *env, jobject obj, jobject tlhcX, jobject tlhcY, jobject brhcX, jobject brhcY)
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+ 	long tx, ty, bx, by;
+ 
+-	E_Condition res = ps->getDisplayedArea (tx, ty, bx, by);
++    OFCondition res = ps->getStandardDisplayedArea (tx, ty, bx, by);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass txIntByRefcls = env->GetObjectClass (tlhcX);
+ 	jclass tyIntByRefcls = env->GetObjectClass (tlhcY);
+@@ -1000,7 +1000,42 @@
+ 	env->SetIntField (brhcX, bxvalue, (jint) bx);
+ 	env->SetIntField (brhcY, byvalue, (jint) by);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
++}
++
++
++/*
++ * Class:     J2Ci_jDVPresentationState
++ * Method:    getImageRelativeDisplayedArea
++ * Signature: (LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;LJ2Ci/jIntByRef;)I
++ */
++JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_getImageRelativeDisplayedArea
++  (JNIEnv *env, jobject obj, jobject tlhcX, jobject tlhcY, jobject brhcX, jobject brhcY)
++{
++    DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
++
++    long tx, ty, bx, by;
++
++    OFCondition res = ps->getImageRelativeDisplayedArea (tx, ty, bx, by);
++
++    if (res != EC_Normal) return (jint) res.status();
++
++    jclass txIntByRefcls = env->GetObjectClass (tlhcX);
++    jclass tyIntByRefcls = env->GetObjectClass (tlhcY);
++    jclass bxIntByRefcls = env->GetObjectClass (brhcX);
++    jclass byIntByRefcls = env->GetObjectClass (brhcY);
++
++    jfieldID txvalue = env->GetFieldID (txIntByRefcls, "value", "I");
++    jfieldID tyvalue = env->GetFieldID (tyIntByRefcls, "value", "I");
++    jfieldID bxvalue = env->GetFieldID (bxIntByRefcls, "value", "I");
++    jfieldID byvalue = env->GetFieldID (byIntByRefcls, "value", "I");
++
++    env->SetIntField (tlhcX, txvalue, (jint) tx);
++    env->SetIntField (tlhcY, tyvalue, (jint) ty);
++    env->SetIntField (brhcX, bxvalue, (jint) bx);
++    env->SetIntField (brhcY, byvalue, (jint) by);
++
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -1016,9 +1051,9 @@
+ 
+ 	double xx, yy;
+ 
+-	E_Condition res = ps->getDisplayedAreaPresentationPixelSpacing (xx, yy);
++    OFCondition res = ps->getDisplayedAreaPresentationPixelSpacing (xx, yy);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass xDoubleByRefcls = env->GetObjectClass (x);
+ 	jclass yDoubleByRefcls = env->GetObjectClass (y);
+@@ -1029,7 +1064,7 @@
+ 	env->SetDoubleField (x, xvalue, xx);
+ 	env->SetDoubleField (y, yvalue, yy);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ /*
+@@ -1044,9 +1079,9 @@
+ 
+ 	double m;
+ 
+-	E_Condition res = ps->getDisplayedAreaPresentationPixelMagnificationRatio (m);
++    OFCondition res = ps->getDisplayedAreaPresentationPixelMagnificationRatio (m);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass mDoubleByRefcls = env->GetObjectClass (magnification);
+ 
+@@ -1054,7 +1089,7 @@
+ 
+ 	env->SetDoubleField (magnification, mvalue, m);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -1075,17 +1110,33 @@
+ 
+ /*
+  * Class:     J2Ci_jDVPresentationState
+- * Method:    setDisplayedArea
++ * Method:    setStandardDisplayedArea
++ * Signature: (IIIIIDI)I
++ */
++JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_setStandardDisplayedArea
++  (JNIEnv *env, jobject obj, jint sizeMode, jint tlhcX, jint tlhcY, jint brhcX, jint brhcY,
++   jdouble magnification, jint applicability)
++{
++    DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
++
++    return (jint) ps->setStandardDisplayedArea ((DVPSPresentationSizeMode) sizeMode, tlhcX,
++                   tlhcY, brhcX, brhcY, magnification, (DVPSObjectApplicability) applicability).status();
++}
++
++
++/*
++ * Class:     J2Ci_jDVPresentationState
++ * Method:    setImageRelativeDisplayedArea
+  * Signature: (IIIIIDI)I
+  */
+-JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_setDisplayedArea
++JNIEXPORT jint JNICALL Java_J2Ci_jDVPresentationState_setImageRelativeDisplayedArea
+   (JNIEnv *env, jobject obj, jint sizeMode, jint tlhcX, jint tlhcY, jint brhcX, jint brhcY,
+    jdouble magnification, jint applicability)
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return (jint) ps->setDisplayedArea ((DVPSPresentationSizeMode) sizeMode, tlhcX,
+-		           tlhcY, brhcX, brhcY, magnification, (DVPSObjectApplicability) applicability);
++    return (jint) ps->setImageRelativeDisplayedArea ((DVPSPresentationSizeMode) sizeMode, tlhcX,
++                   tlhcY, brhcX, brhcY, magnification, (DVPSObjectApplicability) applicability).status();
+ }
+ 
+ 
+@@ -1133,16 +1184,16 @@
+ 
+ 	Uint16 gr;
+ 
+-	E_Condition res = ps->getGraphicLayerRecommendedDisplayValueGray (idx, gr);
++    OFCondition res = ps->getGraphicLayerRecommendedDisplayValueGray (idx, gr);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass IntByRefcls = env->GetObjectClass (gray);
+ 	jfieldID value = env->GetFieldID (IntByRefcls, "value", "I");
+ 
+ 	env->SetIntField (gray, value, (jint) gr);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -1158,9 +1209,9 @@
+ 
+ 	Uint16 rr, gg, bb;
+ 
+-	E_Condition res = ps->getGraphicLayerRecommendedDisplayValueRGB (idx, rr, gg, bb);
++    OFCondition res = ps->getGraphicLayerRecommendedDisplayValueRGB (idx, rr, gg, bb);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass rIntByRefcls = env->GetObjectClass (r);
+ 	jclass gIntByRefcls = env->GetObjectClass (g);
+@@ -1174,7 +1225,7 @@
+ 	env->SetIntField (g, gvalue, (jint) gg);
+ 	env->SetIntField (b, bvalue, (jint) bb);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -1188,7 +1239,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setGraphicLayerRecommendedDisplayValueGray (idx, (Uint16) gray);
++    return  (jint) ps->setGraphicLayerRecommendedDisplayValueGray (idx, (Uint16) gray).status();
+ }
+ 
+ 
+@@ -1202,7 +1253,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setGraphicLayerRecommendedDisplayValueRGB (idx, (Uint16) r, (Uint16) g, (Uint16) b);
++    return  (jint) ps->setGraphicLayerRecommendedDisplayValueRGB (idx, (Uint16) r, (Uint16) g, (Uint16) b).status();
+ }
+ 
+ 
+@@ -1218,11 +1269,11 @@
+ 
+  	char *nam = (char*) env->GetStringUTFChars (name, 0);
+ 
+-	E_Condition res = ps->setGraphicLayerName (idx, nam);
++    OFCondition res = ps->setGraphicLayerName (idx, nam);
+ 
+ 	env->ReleaseStringUTFChars (name, nam);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1236,7 +1287,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1254,7 +1305,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1268,7 +1319,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->toFrontGraphicLayer (idx);
++    return  (jint) ps->toFrontGraphicLayer (idx).status();
+ }
+ 
+ 
+@@ -1282,7 +1333,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->toBackGraphicLayer (idx);
++    return  (jint) ps->toBackGraphicLayer (idx).status();
+ }
+ 
+ 
+@@ -1296,7 +1347,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1316,7 +1367,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1330,7 +1381,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->removeGraphicLayer (idx);
++    return  (jint) ps->removeGraphicLayer (idx).status();
+ }
+ 
+ 
+@@ -1400,7 +1451,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->removeTextObject (layer, idx);
++    return  (jint) ps->removeTextObject (layer, idx).status();
+ }
+ 
+ 
+@@ -1414,7 +1465,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->moveTextObject (old_layer, idx, new_layer, (DVPSObjectApplicability) applicability);
++    return  (jint) ps->moveTextObject (old_layer, idx, new_layer, (DVPSObjectApplicability) applicability).status();
+ }
+ 
+ 
+@@ -1470,7 +1521,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->removeGraphicObject (layer, idx);
++    return  (jint) ps->removeGraphicObject (layer, idx).status();
+ }
+ 
+ 
+@@ -1484,7 +1535,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->moveGraphicObject (old_layer, idx, new_layer, (DVPSObjectApplicability) applicability);
++    return  (jint) ps->moveGraphicObject (old_layer, idx, new_layer, (DVPSObjectApplicability) applicability).status();
+ }
+ 
+ 
+@@ -1512,7 +1563,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setCharset ((DVPScharacterSet) charset);
++    return  (jint) ps->setCharset ((DVPScharacterSet) charset).status();
+ }
+ 
+ 
+@@ -1614,7 +1665,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->addCurve (layer, curveidxinimage);
++    return  (jint) ps->addCurve (layer, curveidxinimage).status();
+ }
+ 
+ 
+@@ -1628,7 +1679,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->removeCurve (layer, idx);
++    return  (jint) ps->removeCurve (layer, idx).status();
+ }
+ 
+ 
+@@ -1642,7 +1693,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->moveCurve (old_layer, idx, new_layer);
++    return  (jint) ps->moveCurve (old_layer, idx, new_layer).status();
+ }
+ 
+ 
+@@ -1658,9 +1709,9 @@
+ 
+ 	double ww;
+ 
+-	E_Condition res = ps->getCurrentWindowWidth (ww);
++    OFCondition res = ps->getCurrentWindowWidth (ww);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass wDoubleByRefcls = env->GetObjectClass (w);
+ 
+@@ -1668,7 +1719,7 @@
+ 
+ 	env->SetDoubleField (w, wvalue, ww);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -1684,9 +1735,9 @@
+ 
+ 	double cc;
+ 
+-	E_Condition res = ps->getCurrentWindowCenter (cc);
++    OFCondition res = ps->getCurrentWindowCenter (cc);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass cDoubleByRefcls = env->GetObjectClass (c);
+ 
+@@ -1694,7 +1745,7 @@
+ 
+ 	env->SetDoubleField (c, cvalue, (jdouble) cc);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -1818,7 +1869,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setVOILUTFromImage (idx, (DVPSObjectApplicability) applicability);
++    return  (jint) ps->setVOILUTFromImage (idx, (DVPSObjectApplicability) applicability).status();
+ }
+ 
+ 
+@@ -1832,7 +1883,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->setVOIWindowFromImage (idx, (DVPSObjectApplicability) applicability);
++    return  (jint) ps->setVOIWindowFromImage (idx, (DVPSObjectApplicability) applicability).status();
+ }
+ 
+ 
+@@ -1846,7 +1897,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-    E_Condition res = EC_IllegalCall;
++    OFCondition res = EC_IllegalCall;
+ 
+     jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
+ 
+@@ -1865,7 +1916,7 @@
+         }
+     }
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -1893,7 +1944,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return (jint) ps->setGammaVOILUT (gammaValue, (DVPSObjectApplicability) applicability);
++    return (jint) ps->setGammaVOILUT (gammaValue, (DVPSObjectApplicability) applicability).status();
+ }
+ 
+ 
+@@ -1991,8 +2042,8 @@
+ 	const void *overlayData;
+ 	unsigned int width;
+ 	unsigned int height;
+-	unsigned int left;
+-	unsigned int top;
++    unsigned int left_pos;
++    unsigned int top_pos;
+ 	unsigned short foreground;
+ 	unsigned short bits;
+ 	OFBool isROI;
+@@ -2007,9 +2058,9 @@
+ 	idx = env->GetIntField (od, idxfid);
+ 	bits = (unsigned short) env->GetIntField (od, bitsfid);
+ 
+-	E_Condition res = ps->getOverlayData (layer, idx, overlayData, width, height, left, top, isROI, foreground, bits);
++    OFCondition res = ps->getOverlayData (layer, idx, overlayData, width, height, left_pos, top_pos, isROI, foreground, bits);
+ 
+-	if (res != EC_Normal) return res; // Fehler??
++    if (res != EC_Normal) return res.status(); // error??
+ 
+ 
+ 	jfieldID datafid = env->GetFieldID (ovdatcls, "overlayData", "[B");
+@@ -2023,8 +2074,8 @@
+ 
+ 	env->SetIntField (od, widthfid, (jint) width);
+ 	env->SetIntField (od, heightfid, (jint) height);
+-	env->SetIntField (od, leftfid, (jint) left);
+-	env->SetIntField (od, topfid, (jint) top);
++    env->SetIntField (od, leftfid, (jint) left_pos);
++    env->SetIntField (od, topfid, (jint) top_pos);
+ 	env->SetShortField (od, foregroundfid, (jshort) foreground);
+ 	env->SetBooleanField (od, isroifid, (jboolean) (isROI == OFTrue) ? JNI_TRUE : JNI_FALSE);
+ 
+@@ -2043,7 +2094,7 @@
+ 		env->SetObjectField (od, data12fid, array);
+ 	}
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2255,7 +2306,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->removeOverlayFromPresentationState (idx);
++    return  (jint) ps->removeOverlayFromPresentationState (idx).status();
+ }
+ 
+ 
+@@ -2269,7 +2320,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->changeOverlayGroupInPresentationState (idx, (short) newGroup);
++    return  (jint) ps->changeOverlayGroupInPresentationState (idx, (short) newGroup).status();
+ }
+ 
+ 
+@@ -2297,7 +2348,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->activateOverlayInImage (layer, idx);
++    return  (jint) ps->activateOverlayInImage (layer, idx).status();
+ }
+ 
+ 
+@@ -2311,7 +2362,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->activateOverlayInPresentationState (layer, idx);
++    return  (jint) ps->activateOverlayInPresentationState (layer, idx).status();
+ }
+ 
+ 
+@@ -2325,7 +2376,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->activateOverlayAsBitmapShutter (idx);
++    return  (jint) ps->activateOverlayAsBitmapShutter (idx).status();
+ }
+ 
+ 
+@@ -2339,7 +2390,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->deactivateOverlay (layer, idx);
++    return  (jint) ps->deactivateOverlay (layer, idx).status();
+ }
+ 
+ 
+@@ -2353,7 +2404,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->moveOverlay (old_layer, idx, new_layer);
++    return  (jint) ps->moveOverlay (old_layer, idx, new_layer).status();
+ }
+ 
+ 
+@@ -2371,9 +2422,9 @@
+ 
+ 	max = min = -123.45;
+ 
+-	E_Condition res = ps->getImageMinMaxPixelRange (min, max);
++    OFCondition res = ps->getImageMinMaxPixelRange (min, max);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass minDoubleByRefcls = env->GetObjectClass (minValue);
+ 	jclass maxDoubleByRefcls = env->GetObjectClass (maxValue);
+@@ -2384,7 +2435,7 @@
+ 	env->SetDoubleField (minValue, minvalue, min);
+ 	env->SetDoubleField (maxValue, maxvalue, max);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2402,9 +2453,9 @@
+ 
+ 	max = min = -123.45;
+ 
+-	E_Condition res = ps->getImageMinMaxPixelValue (min, max);
++    OFCondition res = ps->getImageMinMaxPixelValue (min, max);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass minDoubleByRefcls = env->GetObjectClass (minValue);
+ 	jclass maxDoubleByRefcls = env->GetObjectClass (maxValue);
+@@ -2415,7 +2466,7 @@
+ 	env->SetDoubleField (minValue, minvalue, min);
+ 	env->SetDoubleField (maxValue, maxvalue, max);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2431,9 +2482,9 @@
+ 
+ 	unsigned long w;
+ 
+-	E_Condition res = ps->getImageWidth (w);
++    OFCondition res = ps->getImageWidth (w);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass wIntByRefcls = env->GetObjectClass (width);
+ 
+@@ -2441,7 +2492,7 @@
+ 
+ 	env->SetIntField (width, wvalue, w);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2457,9 +2508,9 @@
+ 
+ 	unsigned long h;
+ 
+-	E_Condition res = ps->getImageHeight (h);
++    OFCondition res = ps->getImageHeight (h);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass hIntByRefcls = env->GetObjectClass (height);
+ 
+@@ -2467,7 +2518,7 @@
+ 
+ 	env->SetIntField (height, hvalue, h);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2497,9 +2548,9 @@
+ 
+ 	OFString st, se, so, in, fr, ae, fid, fuid;
+ 
+-	E_Condition res = ps->getImageReference (idx, st, se, so, in, fr, ae, fid, fuid);
++    OFCondition res = ps->getImageReference (idx, st, se, so, in, fr, ae, fid, fuid);
+ 
+-	if (res != EC_Normal) return res;
++    if (res != EC_Normal) return res.status();
+ 
+ 	jclass paramcls = env->GetObjectClass (param);
+ 	jfieldID stfid = env->GetFieldID (paramcls, "studyUID", "Ljava/lang/String;");
+@@ -2511,11 +2562,10 @@
+ 	jfieldID fifid = env->GetFieldID (paramcls, "filesetID", "Ljava/lang/String;");
+ 	jfieldID fufid = env->GetFieldID (paramcls, "filesetUID", "Ljava/lang/String;");
+ 
+-	jclass strcls = env->FindClass ("Ljava/lang/String;"); // Stringklasse
+-	jmethodID constr= env->GetMethodID (strcls, "<init>", "()V");  // Konstruktor ID
+-
+-	// Strings erzeugen
++    jclass strcls = env->FindClass ("Ljava/lang/String;"); // string class
++    jmethodID constr= env->GetMethodID (strcls, "<init>", "()V");  // constructor ID
+ 
++    // create strings ...
+ 	jobject stobj = env->NewObject (strcls, constr, env->NewStringUTF (st.c_str()));
+ 	jobject seobj = env->NewObject (strcls, constr, env->NewStringUTF (se.c_str()));
+ 	jobject soobj = env->NewObject (strcls, constr, env->NewStringUTF (so.c_str()));
+@@ -2525,7 +2575,7 @@
+ 	jobject fiobj = env->NewObject (strcls, constr, env->NewStringUTF (fid.c_str()));
+ 	jobject fuobj = env->NewObject (strcls, constr, env->NewStringUTF (fuid.c_str()));
+ 
+-	// und dem Parameter übergeben
++    // ... and set parameter
+ 	env->SetObjectField (param, stfid, stobj);
+ 	env->SetObjectField (param, sefid, seobj);
+ 	env->SetObjectField (param, sofid, soobj);
+@@ -2535,7 +2585,7 @@
+ 	env->SetObjectField (param, fifid, fiobj);
+ 	env->SetObjectField (param, fufid, fuobj);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2550,7 +2600,7 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	return  (jint) ps->exchangeGraphicLayers (idx1, idx2);
++    return  (jint) ps->exchangeGraphicLayers (idx1, idx2).status();
+ }
+ 
+ 
+@@ -2600,11 +2650,11 @@
+ 	jboolean isCopy;
+ 	array = (void*) env->GetByteArrayElements (pixelData, &isCopy);
+ 
+-	E_Condition res = ps->getPixelData (array, (unsigned long) size);
++    OFCondition res = ps->getPixelData (array, (unsigned long) size);
+ 
+ 	env->ReleaseByteArrayElements (pixelData, (jbyte *) array, 0);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2618,9 +2668,9 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	E_Condition res = ps->invertImage();
++    OFCondition res = ps->invertImage();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2664,9 +2714,9 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	E_Condition res = ps->setMinimumPrintBitmapWidthHeight((unsigned long) width, (unsigned long) height);
++    OFCondition res = ps->setMinimumPrintBitmapWidthHeight((unsigned long) width, (unsigned long) height);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2680,9 +2730,9 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	E_Condition res = ps->setMaximumPrintBitmapWidthHeight((unsigned long) width, (unsigned long) height);
++    OFCondition res = ps->setMaximumPrintBitmapWidthHeight((unsigned long) width, (unsigned long) height);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2698,9 +2748,9 @@
+ 
+ 	unsigned long w, h;
+ 
+-	E_Condition res = ps->getPrintBitmapWidthHeight (w, h);
++    OFCondition res = ps->getPrintBitmapWidthHeight (w, h);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass widthCls = env->GetObjectClass (width);
+ 	jclass heightCls = env->GetObjectClass (height);
+@@ -2709,7 +2759,7 @@
+ 	env->SetIntField (width, wvalue, (jint) w);
+ 	env->SetIntField (height, hvalue, (jint) h);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2725,15 +2775,15 @@
+ 
+ 	unsigned long w;
+ 
+-	E_Condition res = ps->getPrintBitmapWidth (w);
++    OFCondition res = ps->getPrintBitmapWidth (w);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass widthCls = env->GetObjectClass (width);
+ 	jfieldID wvalue = env->GetFieldID (widthCls, "value", "I");
+ 	env->SetIntField (width, wvalue, (jint) w);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2749,15 +2799,15 @@
+ 
+ 	unsigned long h;
+ 
+-	E_Condition res = ps->getPrintBitmapHeight (h);
++    OFCondition res = ps->getPrintBitmapHeight (h);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass heightCls = env->GetObjectClass (height);
+ 	jfieldID hvalue = env->GetFieldID (heightCls, "value", "I");
+ 	env->SetIntField (height, hvalue, (jint) h);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2787,14 +2837,14 @@
+ 
+ 	OFString ris;
+ 
+-	E_Condition res = ps->getPrintBitmapRequestedImageSize (ris);
++    OFCondition res = ps->getPrintBitmapRequestedImageSize (ris);
+ 
+ 	if (res == EC_Normal)
+ 	{
+     	jfieldID value = env->GetFieldID (env->GetObjectClass (requestedImageSize), "value", "Ljava/lang/String;");
+ 	    env->SetObjectField (requestedImageSize, value, env->NewStringUTF (ris.c_str()));
+     }
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2812,11 +2862,11 @@
+ 	jboolean isCopy;
+ 	array = (void*) env->GetShortArrayElements (bitmap, &isCopy);
+ 
+-	E_Condition res = ps->getPrintBitmap (array, (unsigned long) size);
++    OFCondition res = ps->getPrintBitmap (array, (unsigned long) size);
+ 
+ 	env->ReleaseShortArrayElements (bitmap, (jshort *) array, 0);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2848,9 +2898,9 @@
+ {
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+-	E_Condition res = ps->setDefaultPresentationLUTShape ();
++    OFCondition res = ps->setDefaultPresentationLUTShape ();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2865,9 +2915,9 @@
+ 	DVPresentationState *ps = getAddressOfDVPresentationState (env, obj);
+ 
+ 	OFBool cm = clipMode == JNI_TRUE ? OFTrue : OFFalse;
+-	E_Condition res = ps->createPreviewImage (maxWidth, maxHeight, cm);
++    OFCondition res = ps->createPreviewImage (maxWidth, maxHeight, cm);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -2911,9 +2961,9 @@
+ 
+ 	unsigned long ww, hh;
+ 
+-	E_Condition res = ps->getPreviewImageWidthHeight (ww, hh);
++    OFCondition res = ps->getPreviewImageWidthHeight (ww, hh);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass wIntByRefcls = env->GetObjectClass (width);
+ 	jclass hIntByRefcls = env->GetObjectClass (height);
+@@ -2924,7 +2974,7 @@
+ 	env->SetIntField (width, wvalue, (jint) ww);
+ 	env->SetIntField (height, hvalue, (jint) hh);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2940,15 +2990,15 @@
+ 
+ 	unsigned long ww;
+ 
+-	E_Condition res = ps->getPreviewImageWidth (ww);
++    OFCondition res = ps->getPreviewImageWidth (ww);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass wIntByRefcls = env->GetObjectClass (width);
+ 	jfieldID wvalue = env->GetFieldID (wIntByRefcls, "value", "I");
+ 	env->SetIntField (width, wvalue, (jint) ww);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2964,15 +3014,15 @@
+ 
+ 	unsigned long hh;
+ 
+-	E_Condition res = ps->getPreviewImageHeight (hh);
++    OFCondition res = ps->getPreviewImageHeight (hh);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass hIntByRefcls = env->GetObjectClass (height);
+ 	jfieldID hvalue = env->GetFieldID (hIntByRefcls, "value", "I");
+ 	env->SetIntField (height, hvalue, (jint) hh);
+ 
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -2990,11 +3040,11 @@
+ 	jboolean isCopy;
+ 	array = (void*) env->GetByteArrayElements (bitmap, &isCopy);
+ 
+-	E_Condition res = ps->getPreviewImageBitmap (array, (unsigned long) size);
++    OFCondition res = ps->getPreviewImageBitmap (array, (unsigned long) size);
+ 
+ 	env->ReleaseByteArrayElements (bitmap, (jbyte *) array, 0);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -3085,7 +3135,7 @@
+ 		offy < 0 ||	zoom <= 0 || scalex <= 0 ||
+ 		scaley <= 0) return JNI_FALSE;			// Fehler in Eingabewerten
+ 
+-	E_Condition res;
++    OFCondition res;
+ 
+ 	const char *orgPixData;
+ 	unsigned long oWidth;
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DVPSCurve.cpp dsgui360/interface/libsrc/DVPSCurve.cpp
+--- dsgui351/interface/libsrc/DVPSCurve.cpp	2009-01-07 17:53:32.284179000 +0100
++++ dsgui360/interface/libsrc/DVPSCurve.cpp	2009-01-07 17:53:07.078402000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -15,6 +15,13 @@
+  *    http://www.microtherapy.de/go/cs
+  *    mailto:computer.science at microtherapy.de
+  *
++ *  and
++ *
++ *    Kuratorium OFFIS e.V.
++ *    Healthcare Information and Communication Systems
++ *    Escherweg 2
++ *    D-26121 Oldenburg, Germany
++ *
+  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND THE INSTITUTE MAKES  NO 
+  *  WARRANTY REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY
+  *  OR FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES 
+@@ -148,7 +153,7 @@
+ 
+ 	E_Condition res = cur->getPoint (idx, xx, yy);
+ 
+-	if (res != EC_Normal) return (jint) res;
++    if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass xDoubleByRefcls = env->GetObjectClass (x);
+ 	jclass yDoubleByRefcls = env->GetObjectClass (y);
+@@ -159,7 +164,7 @@
+ 	env->SetDoubleField (x, xvalue, (jdouble) xx);
+ 	env->SetDoubleField (y, yvalue, (jdouble) yy);
+ 		
+-	return (jint) EC_Normal;
++    return (jint) EC_Normal.status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DVPSGraphicObject.cpp dsgui360/interface/libsrc/DVPSGraphicObject.cpp
+--- dsgui351/interface/libsrc/DVPSGraphicObject.cpp	2009-01-07 17:53:32.288175000 +0100
++++ dsgui360/interface/libsrc/DVPSGraphicObject.cpp	2009-01-07 17:53:07.082397000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -15,6 +15,13 @@
+  *    http://www.microtherapy.de/go/cs
+  *    mailto:computer.science at microtherapy.de
+  *
++ *  and
++ *
++ *    Kuratorium OFFIS e.V.
++ *    Healthcare Information and Communication Systems
++ *    Escherweg 2
++ *    D-26121 Oldenburg, Germany
++ *
+  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND THE INSTITUTE MAKES  NO 
+  *  WARRANTY REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY
+  *  OR FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES 
+@@ -131,7 +137,7 @@
+ 
+ 	E_Condition res = go->getPoint (idx, xx, yy);
+ 
+-	if (res != EC_Normal) return (jint) res;
++	if (res != EC_Normal) return (jint) res.status();
+ 
+ 	jclass xDoubleByRefcls = env->GetObjectClass (x);
+ 	jclass yDoubleByRefcls = env->GetObjectClass (y);
+@@ -142,7 +148,7 @@
+ 	env->SetDoubleField (x, xvalue, (jdouble) xx);
+ 	env->SetDoubleField (y, yvalue, (jdouble) yy);
+ 		
+-	return (jint) EC_Normal;
++	return (jint) EC_Normal.status();
+ }
+ 
+ 
+@@ -192,11 +198,11 @@
+ 
+ 	ddata = env->GetFloatArrayElements(data, &isCopy);
+ 
+-	E_Condition res = go->setData (number, ddata, (DVPSannotationUnit) unit);
++	OFCondition res = go->setData (number, ddata, (DVPSannotationUnit) unit);
+ 
+ 	env->ReleaseFloatArrayElements (data, ddata, 0);
+ 
+-	return (jint) res;
++	return (jint) res.status();
+ }
+ 
+ 
+@@ -211,7 +217,7 @@
+ {
+ 	DVPSGraphicObject *go = getAddressOfDVPSGraphicObject (env, obj);
+ 
+-	return (jint) go->setGraphicType ((DVPSGraphicType) gtype);
++	return (jint) go->setGraphicType ((DVPSGraphicType) gtype).status();
+ }
+ 
+ 
+@@ -226,7 +232,7 @@
+ {
+ 	DVPSGraphicObject *go = getAddressOfDVPSGraphicObject (env, obj);
+ 
+-	return (jint) go->setFilled ((filled != 0) ? OFTrue : OFFalse);
++	return (jint) go->setFilled ((filled != 0) ? OFTrue : OFFalse).status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DVPSStoredPrint.cpp dsgui360/interface/libsrc/DVPSStoredPrint.cpp
+--- dsgui351/interface/libsrc/DVPSStoredPrint.cpp	2009-01-07 17:53:32.293169000 +0100
++++ dsgui360/interface/libsrc/DVPSStoredPrint.cpp	2009-01-07 17:53:07.087392000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -15,6 +15,13 @@
+  *    http://www.microtherapy.de/go/cs
+  *    mailto:computer.science at microtherapy.de
+  *
++ *  and
++ *
++ *    Kuratorium OFFIS e.V.
++ *    Healthcare Information and Communication Systems
++ *    Escherweg 2
++ *    D-26121 Oldenburg, Germany
++ *
+  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND THE INSTITUTE MAKES  NO
+  *  WARRANTY REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY
+  *  OR FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES
+@@ -78,13 +86,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setOriginator (val);
++    OFCondition res = sp->setOriginator (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setDestination
+@@ -97,13 +106,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setDestination (val);
++    OFCondition res = sp->setDestination (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setPrinterName
+@@ -116,13 +126,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setPrinterName (val);
++    OFCondition res = sp->setPrinterName (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setImageDisplayFormat
+@@ -133,9 +144,10 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	return (jint) sp->setImageDisplayFormat((unsigned long)columns, (unsigned long)rows);
++    return (jint) sp->setImageDisplayFormat((unsigned long)columns, (unsigned long)rows).status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setFilmSizeID
+@@ -148,13 +160,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setFilmSizeID (val);
++    OFCondition res = sp->setFilmSizeID (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setMagnificationType
+@@ -167,13 +180,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setMagnificationType (val);
++    OFCondition res = sp->setMagnificationType (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setSmoothingType
+@@ -186,13 +200,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setSmoothingType (val);
++    OFCondition res = sp->setSmoothingType (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setConfigurationInformation
+@@ -205,13 +220,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setConfigurationInformation (val);
++    OFCondition res = sp->setConfigurationInformation (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setResolutionID
+@@ -224,13 +240,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setResolutionID (val);
++    OFCondition res = sp->setResolutionID (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setFilmOrientation
+@@ -241,9 +258,9 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	E_Condition res = sp->setFilmOrientation ((DVPSFilmOrientation) value);
++    OFCondition res = sp->setFilmOrientation ((DVPSFilmOrientation) value);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -257,11 +274,12 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	E_Condition res = sp->setTrim ((DVPSTrimMode) value);
++    OFCondition res = sp->setTrim ((DVPSTrimMode) value);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setRequestedDecimateCropBehaviour
+@@ -272,11 +290,12 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	E_Condition res = sp->setRequestedDecimateCropBehaviour ((DVPSDecimateCropBehaviour) value);
++    OFCondition res = sp->setRequestedDecimateCropBehaviour ((DVPSDecimateCropBehaviour) value);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    newPrinter
+@@ -287,11 +306,12 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	E_Condition res = sp->newPrinter ();
++    OFCondition res = sp->newPrinter ();
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    getOriginator
+@@ -513,9 +547,10 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	return (jint) sp->deleteImage(index);
++    return (jint) sp->deleteImage(index).status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    deleteMultipleImages
+@@ -526,7 +561,7 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	return (jint) sp->deleteMultipleImages(number);
++    return (jint) sp->deleteMultipleImages(number).status();
+ }
+ 
+ 
+@@ -545,16 +580,17 @@
+ 	char *ri = (char*) env->GetStringUTFChars (requestedimagesize, 0);
+ 	char *pi = (char*) env->GetStringUTFChars (patientid, 0);
+ 
+-	E_Condition res = sp->addImageBox (ra, rs, ri, pi);
++    OFCondition res = sp->addImageBox (ra, rs, ri, pi);
+ 
+ 	env->ReleaseStringUTFChars (retrieveaetitle, ra);
+ 	env->ReleaseStringUTFChars (refsopinstanceuid, rs);
+ 	env->ReleaseStringUTFChars (requestedimagesize, ri);
+ 	env->ReleaseStringUTFChars (patientid, pi);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setInstanceUID
+@@ -567,11 +603,11 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (uid, 0);
+ 
+-	E_Condition res = sp->setInstanceUID (val);
++    OFCondition res = sp->setInstanceUID (val);
+ 
+ 	env->ReleaseStringUTFChars (uid, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -603,13 +640,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setImageMagnificationType (index, val);
++    OFCondition res = sp->setImageMagnificationType (index, val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setImageSmoothingType
+@@ -622,13 +660,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setImageSmoothingType (index, val);
++    OFCondition res = sp->setImageSmoothingType (index, val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setImageConfigurationInformation
+@@ -641,11 +680,11 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setImageConfigurationInformation (index, val);
++    OFCondition res = sp->setImageConfigurationInformation (index, val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -713,7 +752,7 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	return (jint) sp->setDefaultPresentationLUT();
++    return (jint) sp->setDefaultPresentationLUT().status();
+ }
+ 
+ 
+@@ -727,7 +766,7 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	return  (jint) sp->setPresentationLUTShape ((DVPSPresentationLUTType) type);
++    return  (jint) sp->setPresentationLUTShape ((DVPSPresentationLUTType) type).status();
+ }
+ 
+ 
+@@ -757,13 +796,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setBorderDensity (val);
++    OFCondition res = sp->setBorderDensity (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    setEmtpyImageDensity
+@@ -776,13 +816,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setEmtpyImageDensity (val);
++    OFCondition res = sp->setEmtpyImageDensity (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    getBorderDensity
+@@ -831,11 +872,11 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setMaxDensity (val);
++    OFCondition res = sp->setMaxDensity (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
+ 
+@@ -852,13 +892,14 @@
+ 
+ 	char *val = (char*) env->GetStringUTFChars (value, 0);
+ 
+-	E_Condition res = sp->setMinDensity (val);
++    OFCondition res = sp->setMinDensity (val);
+ 
+ 	env->ReleaseStringUTFChars (value, val);
+ 
+-	return (jint) res;
++    return (jint) res.status();
+ }
+ 
++
+ /*
+  * Class:     J2Ci_jDVPSStoredPrint
+  * Method:    getMaxDensity
+@@ -906,7 +946,7 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	return (jint) sp->setPrintIllumination((short)value);
++    return (jint) sp->setPrintIllumination((short)value).status();
+ }
+ 
+ 
+@@ -934,7 +974,7 @@
+ {
+ 	DVPSStoredPrint *sp = getAddressOfDVPSStoredPrint (env, obj);
+ 
+-	return (jint) sp->setPrintReflectedAmbientLight((short)value);
++    return (jint) sp->setPrintReflectedAmbientLight((short)value).status();
+ }
+ 
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/interface/libsrc/DVPSTextObject.cpp dsgui360/interface/libsrc/DVPSTextObject.cpp
+--- dsgui351/interface/libsrc/DVPSTextObject.cpp	2009-01-07 17:53:32.297165000 +0100
++++ dsgui360/interface/libsrc/DVPSTextObject.cpp	2009-01-07 17:53:07.091389000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -15,6 +15,13 @@
+  *    http://www.microtherapy.de/go/cs
+  *    mailto:computer.science at microtherapy.de
+  *
++ *  and
++ *
++ *    Kuratorium OFFIS e.V.
++ *    Healthcare Information and Communication Systems
++ *    Escherweg 2
++ *    D-26121 Oldenburg, Germany
++ *
+  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND THE INSTITUTE MAKES  NO 
+  *  WARRANTY REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY
+  *  OR FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES 
+@@ -127,7 +133,7 @@
+ {
+ 	DVPSTextObject *to = getAddressOfDVPSTextObject (env, obj);
+ 
+-	return (jint) to->setAnchorPoint (x, y, (DVPSannotationUnit) unit, (isVisible != 0) ? OFTrue : OFFalse);
++	return (jint) to->setAnchorPoint (x, y, (DVPSannotationUnit) unit, (isVisible != 0) ? OFTrue : OFFalse).status();
+ }
+ 
+ 
+@@ -142,7 +148,7 @@
+ {
+ 	DVPSTextObject *to = getAddressOfDVPSTextObject (env, obj);
+ 
+-	return (jint) to->setBoundingBox (TLHC_x, TLHC_y, BRHC_x, BRHC_y, (DVPSannotationUnit) unit, (DVPSTextJustification) justification);
++	return (jint) to->setBoundingBox (TLHC_x, TLHC_y, BRHC_x, BRHC_y, (DVPSannotationUnit) unit, (DVPSTextJustification) justification).status();
+ }
+ 
+ 
+@@ -157,16 +163,28 @@
+ {
+ 	DVPSTextObject *to = getAddressOfDVPSTextObject (env, obj);
+ 
+-	const char *txt = (char*) env->GetStringUTFChars (text, 0);
++    OFCondition res = EC_IllegalCall;
++
++    jmethodID mid = env->GetMethodID(env->FindClass("java/lang/String"), "getBytes", "(Ljava/lang/String;)[B");
++
++    if (mid)
++    {
++        jbyteArray array = (jbyteArray) env->CallObjectMethod(text, mid, env->NewStringUTF(JAVA_ENCODING_STRING));
+ 	
+-	E_Condition res = to->setText (txt);
++        if (array)
++        {
++            jbyte *string = env->GetByteArrayElements(array, 0);
+ 
+-	env->ReleaseStringUTFChars (text, txt);
++            res = to->setText(OFString((char *)string, env->GetArrayLength(array)).c_str());
+ 	
+-	return (jint) res;
++            env->ReleaseByteArrayElements(array, string, 0);
++        }
+ }
+ 
+ 
++	return (jint) res.status();
++}
++
+ 
+ 
+ /*
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/MANIFEST.MF dsgui360/MANIFEST.MF
+--- dsgui351/MANIFEST.MF	1970-01-01 01:00:00.000000000 +0100
++++ dsgui360/MANIFEST.MF	2009-01-07 18:21:10.847552000 +0100
+@@ -0,0 +1,2 @@
++Manifest-Version: 1.0
++Main-Class: DICOMscope/DICOMscope
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/readme.txt dsgui360/readme.txt
+--- dsgui351/readme.txt	2009-01-07 17:53:25.967584000 +0100
++++ dsgui360/readme.txt	2009-01-07 17:53:15.466672000 +0100
+@@ -1,5 +1,5 @@
+-This is the Java part of the source code for DICOMscope 3.5.1
+-(DICOM toolkit dcmtk 3.5.0 also required for compilation).
++This is the Java part of the source code for DICOMscope 3.6.0
++(DICOM toolkit dcmtk 3.5.3 also required for compilation).
+ 
+ Directories:
+ 
+@@ -8,4 +8,4 @@
+ tkgui       Java GUI source code
+ 
+ A detailed description on how to compile this code on different platforms
+-is available in the user manual (see DICOMscope/docs/dsum351.pdf).
++is available in the user manual (see DICOMscope/docs/dsum360.pdf).
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/about/AboutBox.java dsgui360/tkgui/about/AboutBox.java
+--- dsgui351/tkgui/about/AboutBox.java	2009-01-07 17:49:28.086463000 +0100
++++ dsgui360/tkgui/about/AboutBox.java	2009-01-07 17:49:33.008137000 +0100
+@@ -23,8 +23,8 @@
+  *
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:29 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 08:59:30 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ 
+@@ -38,7 +38,6 @@
+ import javax.swing.text.*;
+ import java.net.*;
+ 
+-import DICOMscope;
+ 
+ import jToolkit.gui.*;
+ import java.util.*;
+@@ -120,6 +119,9 @@
+ /*
+  *  CVS Log
+  *  $Log: AboutBox.java,v $
++ *  Revision 1.2  2003/09/08 08:59:30  kleber
++ *  move DICOMscope to folder dicomscope.
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:29  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/browser/StudyMan.java dsgui360/tkgui/browser/StudyMan.java
+--- dsgui351/tkgui/browser/StudyMan.java	2009-01-07 17:49:28.117431000 +0100
++++ dsgui360/tkgui/browser/StudyMan.java	2009-01-07 17:49:33.036111000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:29 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 09:00:23 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ 
+@@ -40,7 +40,7 @@
+ import javax.swing.tree.*;
+ 
+ import J2Ci.*;
+-import DICOMscope;
++import dicomscope.*;
+ import viewer.main.*;
+ import jToolkit.gui.*;
+ import main.*;
+@@ -1941,8 +1941,8 @@
+                             ps.getDisplayedAreaPresentationPixelMagnificationRatio(magnification);
+                             magnifactionRatio = magnification.value;
+                         }
+-                        ps.getDisplayedArea( tlhcX,  tlhcY,  brhcX,  brhcY);
+-                        ps.setDisplayedArea(sizeMode, 1, 1,width.value , height.value,magnifactionRatio, jDVPSObjectApplicability.DVPSB_currentImage);
++                        ps.getImageRelativeDisplayedArea( tlhcX,  tlhcY,  brhcX,  brhcY);
++                        ps.setImageRelativeDisplayedArea(sizeMode, 1, 1,width.value , height.value,magnifactionRatio, jDVPSObjectApplicability.DVPSB_currentImage);
+ 	         }       
+ 	        if (saveAsFile)
+ 	        {
+@@ -1982,6 +1982,9 @@
+ /*
+  *  CVS Log
+  *  $Log: StudyMan.java,v $
++ *  Revision 1.2  2003/09/08 09:00:23  kleber
++ *  move DICOMscope to folder dicomscope.
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:29  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/dicomPrint/PrintPanel.java dsgui360/tkgui/dicomPrint/PrintPanel.java
+--- dsgui351/tkgui/dicomPrint/PrintPanel.java	2009-01-07 17:49:28.267283000 +0100
++++ dsgui360/tkgui/dicomPrint/PrintPanel.java	2009-01-07 17:49:33.145999000 +0100
+@@ -887,8 +887,6 @@
+         activeListener = false;
+         String value= null; 
+         
+-        
+-       
+         String name = storedPrint.getPrinterName();
+         if (name != null)value = dvi.getTargetDescription(storedPrint.getPrinterName());
+         if(value == null) value = name;
+@@ -896,12 +894,8 @@
+         printerCombo.removeAllItems();
+         printerCombo.addItem(value);
+         
+-        
+-        
+-        value = storedPrint.getMagnificationType();
+-        if(value == null) value = "<Default>";
+         mediumCombo.removeAllItems();
+-        mediumCombo.addItem(value);
++        mediumCombo.addItem("<Default>");
+         
+         filmSizeCombo.removeAllItems();
+         value = storedPrint.getFilmSizeID();
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/dicomscope/DICOMscope.java dsgui360/tkgui/dicomscope/DICOMscope.java
+--- dsgui351/tkgui/dicomscope/DICOMscope.java	1970-01-01 01:00:00.000000000 +0100
++++ dsgui360/tkgui/dicomscope/DICOMscope.java	2009-01-07 17:49:33.425856000 +0100
+@@ -0,0 +1,339 @@
++/*
++ *
++ *  Copyright (C) 1999, Institute for MicroTherapy
++ *
++ *  This software and supporting documentation were developed by
++ *
++ *    University of Witten/Herdecke
++ *    Department of Radiology and MicroTherapy
++ *    Institute for MicroTherapy
++ *    Medical computer science
++ *
++ *    Universitaetsstrasse 142
++ *    44799 Bochum, Germany
++ *
++ *    http://www.microtherapy.de/go/cs
++ *    mailto:computer.science at microtherapy.de
++ *
++ *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND THE INSTITUTE MAKES  NO
++ *  WARRANTY REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY
++ *  OR FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES
++ *  OR ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY
++ *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
++ *
++ *
++ *  Author :      $Author: kleber $
++ *  Last update : $Date: 2003/09/08 08:57:47 $
++ *  Revision :    $Revision: 1.1 $
++ *  State:        $State: Exp $
++ */
++
++package dicomscope;
++
++import java.io.*;
++import java.awt.*;
++import java.awt.event.*;
++import javax.swing.*;
++import java.util.*;
++
++// Import all packages of the project:
++import J2Ci.*;
++import browser.*;
++import main.MainContext;
++import viewer.main.*;
++import viewer.presentation.*;
++import jToolkit.gui.*;
++import jToolkit.io.*;
++import about.*;
++import main.*;
++import viewer.gui.*;
++import javax.swing.event.*;
++import dicomPrint.*;
++import processCommunication.*;
++
++/**
++ * This is the main class. This class initializes the study
++ * browser, the viewer, the print panel  and the about box.
++ * @author Andreas Schroeter
++ * @since 30.03.
++ */
++public class DICOMscope extends JFrame implements MainListener {
++    
++    
++    /**
++     * The interface to the Dicom Toolkit
++     */
++    private jDVInterface dvi = null;
++    
++    /**
++     * Contains the current PrintPanel
++     */
++    private PrintPanel printPanel;
++    
++    /**
++     * Contains the main TabbedPane
++     */
++    private JTabbedPane	tabpane ;
++    
++    
++    
++    
++    /**
++     * Main Method. Initializes this class.
++     * @param args Will be ignored
++     */
++    
++    public static  void main(String[] args) {
++        System.out.println("starting DICOMscope");
++        System.out.println("please wait...");
++        System.out.flush(); // force output right now!
++        
++        MainContext mc = MainContext.instance(); // create context
++        
++        DICOMscope sup = new DICOMscope();
++        sup.setVisible(true);
++    }
++    
++    /**
++     * Constructor.
++     */
++    public DICOMscope() {
++        Controller.instance().addMainListener(this);
++        dvi = new jDVInterface("DICOMscope.cfg"); // change with configfile
++        
++        tabpane = new JTabbedPane(JTabbedPane.TOP);
++        
++        MainContext.instance().initConfiguration(dvi); // create context
++        
++        Hashtable config = MainContext.instance().getConfiguration();
++        
++        setConfiguration(config, true);
++        
++        
++        
++        getContentPane().setLayout(new BorderLayout(0,0));
++        //getRoontPane().setFont
++        java.awt.Dimension screen = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
++        
++        setSize(screen.width, screen.height);
++        //setSize(300,300);
++        SymWindow aSymWindow = new SymWindow();
++        this.addWindowListener(aSymWindow);
++        addComponentListener(new CmpAdapter());
++        
++        
++        //Init toolbar
++        DicomScopeToolBar toolbar;
++        boolean print = false;
++        if (dvi.getNumberOfTargets(jDVPSPeerType.DVPSE_printAny)>0 ) print = true;
++        toolbar = new DicomScopeToolBar(config, print);
++        getContentPane().add(toolbar,BorderLayout.NORTH);
++        boolean signWarning=true;
++        if (config.containsKey("SignWarning"))signWarning=((Boolean)config.get("SignWarning")).booleanValue();
++        
++        StatusLine sl = new StatusLine(DSComponentType.BROWSER,dvi,signWarning);
++        getContentPane().add( sl, BorderLayout.SOUTH);
++        
++        
++        StudyMan studyMan = new StudyMan(dvi, this,config);
++        MainImageViewerPanel mImage = new MainImageViewerPanel(new PresentationStateGraphicsHandler(dvi),config,this);
++        AboutBox about =  new AboutBox(config);
++        tabpane.add(DSComponentType.BROWSER, studyMan);
++        tabpane.add(DSComponentType.VIEWER, mImage);
++        
++        if (print) {
++            
++            printPanel = new  PrintPanel(dvi,config);
++            tabpane.add(DSComponentType.PRINT,printPanel );
++        }
++        tabpane.add(DSComponentType.PROCESS,new ProcessComponent(this, MainContext.instance().logFont));
++        
++        tabpane.add(DSComponentType.ABOUT,about);
++        
++        getContentPane().add(tabpane, BorderLayout.CENTER);
++        
++        tabpane.addChangeListener(new ChangeToComponentListener() );
++        
++        
++        Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_DES,DSComponentType.BROWSER,"Ready"));
++        Controller.instance().fireEvent(new TabbedChangeEvent(DICOMscope.this,DSComponentType.BROWSER));
++        
++        ProcessCommunicationService pcs= new ProcessCommunicationService(dvi.getMessagePort(), true);
++        
++        dvi.startReceiver();
++        dvi.startPrintSpooler();
++        dvi.startPrintServer();
++        dvi.startQueryRetrieveServer();
++        System.setOut(new NullPrintStream());
++        
++        
++        
++    }
++    
++    /**
++     * Closes the application and terminates the network receiver.
++     */
++    class SymWindow extends java.awt.event.WindowAdapter {
++        public void windowClosing(java.awt.event.WindowEvent event) {
++            Object object = event.getSource();
++            if (object == DICOMscope.this)closing(event); {
++            }
++            
++        }
++    }
++    
++    /**
++     * Closes the application and terminates the network receiver.
++     * @param event The calling event. ignored.
++     */
++    public void closing(java.awt.event.WindowEvent event) {
++        dvi.terminateReceiver();
++        dvi.terminatePrintSpooler();
++        dvi.terminatePrintServer();
++        dvi.terminateQueryRetrieveServer();
++        dvi.finalize();
++        //setVisible(false);		 // hide the Frame
++        System.exit(0);
++    }
++    
++    /**
++     * Handles the ChangeEvents.
++     */
++    private class ChangeToComponentListener implements ChangeListener {
++        public void stateChanged(ChangeEvent e) {
++            JTabbedPane tb = (JTabbedPane)e.getSource();
++            int index = tb.getSelectedIndex();
++            String s = tb.getTitleAt(index);
++            Controller.instance().fireEvent(new TabbedChangeEvent(DICOMscope.this,s));
++        }
++        
++    }
++    
++    /**
++     * Handles the ComponentEvents.
++     */
++    private class CmpAdapter extends ComponentAdapter {
++        public void componentResized(ComponentEvent evt) {
++            MainContext mc = MainContext.instance(); // create context
++            
++            Dimension d = getSize();
++            
++            if (mc.highQualitySystem) // doppelte Größe als Minimum
++            {
++                if (d.width < 1500) d.width = 1500;
++                if (d.height < 1500) d.height = 1500;
++            }
++            else {
++                if (d.width < 700) d.width =700;
++                if (d.height < 600) d.height = 600;
++            }
++            
++            setSize(d);
++        }
++    }
++    
++    /**
++     * Toggles  tabpane to the viewer.
++     *
++     * @since 30.03
++     */
++    public void switchToViewer() {
++        
++        tabpane.setSelectedIndex(1);
++        tabpane.repaint();
++    }
++    
++    /**
++     * Toggles the tabpane to the PrintPanel.
++     *
++     * @since 30.03
++     */
++    
++    
++    public void switchToPrinter() {
++        if (printPanel != null) {
++            tabpane.setSelectedComponent(printPanel);
++            tabpane.repaint();
++        }
++    }
++    
++    
++    
++    
++    /**
++     * Handels the DSEvent fired by any Object of DICOMScope
++     */
++    public boolean processEvent(DSEvent e) {
++        if (e instanceof ChangeOptionsEvent) {
++            
++            setConfiguration(((ChangeOptionsEvent)e).getConfig(), false);
++        }
++        
++        return false;
++    }
++    
++    /**
++     * Sets the configuration of DICOMscope.
++     * @param config Contains the configuration.
++     * @param init should be true if this function is called the first time.
++     */
++    private void setConfiguration(Hashtable config, boolean init) {
++        if (config.containsKey("Title"))setTitle((String)(config.get("Title")));
++        
++        if (config.containsKey("TabbedPlacement"))tabpane.setTabPlacement((new Integer((String)(config.get("TabbedPlacement"))).intValue()));
++        if (config.containsKey("UI")) {
++            try {
++                UIManager.setLookAndFeel((String) config.get("UI") );
++                // update the complete application's look & feel
++                SwingUtilities.updateComponentTreeUI( DICOMscope.this);
++            }
++            catch( Exception f ) {
++                System.err.println( " unable to set UI " + f.getMessage() );
++            }
++            
++        }
++        if (!init)tabpane.updateUI();
++        if (init) {
++            Font f = (Font) config.get("GUIFont");
++            Font titledBorderFont = new Font(f.getName(), f.getStyle(),f.getSize()-f.getSize()/4);
++            UIDefaults uiDefaults = UIManager.getDefaults();
++            uiDefaults.put("MenuItem.font",f);
++            uiDefaults.put("Label.font", f);
++            uiDefaults.put("ComboBox.font",f);
++            uiDefaults.put("Button.font", f);
++            uiDefaults.put("CheckBox.font", f);
++            uiDefaults.put("CheckBoxMenuItem.font", f);
++            uiDefaults.put("RadioButtonMenuItem.font", f);
++            uiDefaults.put("RadioButton.font", f);
++            uiDefaults.put("TitledBorder.font", titledBorderFont);
++            uiDefaults.put("TextField.font", f);
++            uiDefaults.put("Dialog.font", f);
++            uiDefaults.put("TabbedPane.font",f);
++            uiDefaults.put("Frame.font", f);
++            uiDefaults.put("Scrollbar.font", f);
++            uiDefaults.put("Tree.font", f);
++            uiDefaults.put("EditorPane.font", f);
++            uiDefaults.put("TextArea.font", f);
++            uiDefaults.put("List.font", f);
++            uiDefaults.put("AbstractButton.font", f);
++            uiDefaults.put("ToolTip.font", f);
++            uiDefaults.put("Button", f);
++            tabpane.updateUI();
++        }
++        
++    }
++    
++}
++
++
++/*
++ *  CVS Log
++ *  $Log: DICOMscope.java,v $
++ *  Revision 1.1  2003/09/08 08:57:47  kleber
++ *  move DICOMscope to folder dicomscope.
++ *
++ *  Revision 1.1.1.1  2001/06/06 10:32:29  kleber
++ *  Init commit for DICOMscope 3.5
++ *  Create new CVS
++ *
++ */
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/DICOMscope.java dsgui360/tkgui/DICOMscope.java
+--- dsgui351/tkgui/DICOMscope.java	2009-01-07 17:49:28.537258000 +0100
++++ dsgui360/tkgui/DICOMscope.java	1970-01-01 01:00:00.000000000 +0100
+@@ -1,358 +0,0 @@
+-/*
+- *
+- *  Copyright (C) 1999, Institute for MicroTherapy
+- *
+- *  This software and supporting documentation were developed by
+- *
+- *    University of Witten/Herdecke
+- *    Department of Radiology and MicroTherapy
+- *    Institute for MicroTherapy
+- *    Medical computer science
+- *    
+- *    Universitaetsstrasse 142
+- *    44799 Bochum, Germany
+- *    
+- *    http://www.microtherapy.de/go/cs
+- *    mailto:computer.science at microtherapy.de
+- *
+- *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND THE INSTITUTE MAKES  NO 
+- *  WARRANTY REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY
+- *  OR FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES 
+- *  OR ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY 
+- *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+- *
+- *
+- *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:29 $
+- *  Revision :    $Revision: 1.1.1.1 $
+- *  State:        $State: Exp $
+-*/
+-
+-
+-import java.io.*;
+-import java.awt.*;
+-import java.awt.event.*;
+-import javax.swing.*;
+-import java.util.*;
+-
+-// Import all packages of the project:
+-import J2Ci.*;
+-import browser.*;
+-import main.MainContext;
+-import viewer.main.*;
+-import viewer.presentation.*;
+-import jToolkit.gui.*;
+-import jToolkit.io.*;
+-import about.*;
+-import main.*;
+-import viewer.gui.*;
+-import javax.swing.event.*;
+-import dicomPrint.*;
+-import processCommunication.*;
+-
+-/**
+- * This is the main class. This class initializes the study
+- * browser, the viewer, the print panel  and the about box.
+- * @author Andreas Schroeter
+- * @since 30.03.
+- */
+-public class DICOMscope extends JFrame implements MainListener
+-{
+-
+-	
+-    /**
+-     * The interface to the Dicom Toolkit
+-     */
+-    private jDVInterface dvi = null;
+-
+-    /**
+-     * Contains the current PrintPanel 
+-     */
+-    private PrintPanel printPanel;
+-	
+-    /**
+-    * Contains the main TabbedPane
+-    */
+-    private JTabbedPane	tabpane ;		
+-	
+-    
+-    
+-
+-    /**
+-     * Main Method. Initializes this class.
+-     * @param args Will be ignored
+-     */
+-    
+-    public static  void main (String[] args)
+-    {
+-        System.out.println ("starting DICOMscope");
+-        System.out.println ("please wait...");
+-        System.out.flush(); // force output right now!
+-        
+-        MainContext mc = MainContext.instance(); // create context
+-        
+-        DICOMscope sup = new DICOMscope();
+-        sup.setVisible(true);
+-    }
+-
+-    /**
+-	* Constructor. 
+-	*/
+-    public DICOMscope()
+-    {
+-	Controller.instance().addMainListener(this);
+-	dvi = new jDVInterface ("DICOMscope.cfg"); // change with configfile
+-		
+-	tabpane = new JTabbedPane(JTabbedPane.TOP);			
+-		
+-	MainContext.instance().initConfiguration(dvi); // create context
+-		
+-	Hashtable config = MainContext.instance().getConfiguration();
+-		
+-	setConfiguration(config, true);
+-		
+-		
+-		
+-	getContentPane().setLayout(new BorderLayout(0,0));
+-	//getRoontPane().setFont
+-	java.awt.Dimension screen = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
+-            
+-        setSize (screen.width, screen.height);
+-		//setSize(300,300);
+-	SymWindow aSymWindow = new SymWindow();
+-	this.addWindowListener(aSymWindow);
+-	addComponentListener(new CmpAdapter());
+-		
+-		
+-        //Init toolbar
+-	DicomScopeToolBar toolbar;
+-         boolean print = false;
+-         if (dvi.getNumberOfTargets(jDVPSPeerType.DVPSE_printAny)>0 ) print = true;      
+-        toolbar = new DicomScopeToolBar(config, print);
+-        getContentPane().add(toolbar,BorderLayout.NORTH);
+-        boolean signWarning=true;
+-        if (config.containsKey("SignWarning"))signWarning=((Boolean)config.get("SignWarning")).booleanValue();
+-	
+-	StatusLine sl = new StatusLine(DSComponentType.BROWSER,dvi,signWarning);
+-	getContentPane().add ( sl, BorderLayout.SOUTH);
+-		
+-
+-	StudyMan studyMan = new StudyMan (dvi, this,config);
+-	MainImageViewerPanel mImage = new MainImageViewerPanel(new PresentationStateGraphicsHandler(dvi),config,this);
+-	AboutBox about =  new AboutBox (config);
+-	tabpane.add (DSComponentType.BROWSER, studyMan);
+-	tabpane.add (DSComponentType.VIEWER, mImage);
+-
+-        if (print)
+-        {
+-                    
+-	    printPanel = new  PrintPanel(dvi,config);
+-	    tabpane.add (DSComponentType.PRINT,printPanel );
+-	}
+-	tabpane.add (DSComponentType.PROCESS,new ProcessComponent(this, MainContext.instance().logFont));
+-	
+-	tabpane.add (DSComponentType.ABOUT,about);
+-		
+-	getContentPane().add (tabpane, BorderLayout.CENTER);
+-		
+-	tabpane.addChangeListener(new ChangeToComponentListener() );
+-		
+-		
+-	Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_DES,DSComponentType.BROWSER,"Ready"));
+-	Controller.instance().fireEvent(new TabbedChangeEvent(DICOMscope.this,DSComponentType.BROWSER));
+-	    
+-	ProcessCommunicationService pcs= new ProcessCommunicationService(dvi.getMessagePort(), true);
+-	
+-	dvi.startReceiver (); 
+-	dvi.startPrintSpooler();
+-	dvi.startPrintServer();
+-	dvi.startQueryRetrieveServer();
+-	System.setOut(new NullPrintStream());
+-		
+-        
+-		
+-    }
+-
+-    /**
+-    * Closes the application and terminates the network receiver.
+-    */
+-    class SymWindow extends java.awt.event.WindowAdapter
+-    {
+-	public void windowClosing(java.awt.event.WindowEvent event)
+-	{
+-	    Object object = event.getSource();
+-	    if (object == DICOMscope.this)closing(event);
+-	    {
+-	    }
+-			
+-	}
+-    }
+-
+-    /**
+-    * Closes the application and terminates the network receiver.
+-    * @param event The calling event. ignored.
+-    */
+-    public void closing(java.awt.event.WindowEvent event)
+-    {
+-	dvi.terminateReceiver();	  
+-	dvi.terminatePrintSpooler();
+-	dvi.terminatePrintServer();
+-	dvi.terminateQueryRetrieveServer();
+-	dvi.finalize();
+-	    //setVisible(false);		 // hide the Frame
+-        System.exit (0);
+-    }
+-    
+-    /**
+-    * Handles the ChangeEvents. 
+-    */
+-    private class ChangeToComponentListener implements ChangeListener
+-    {
+-	public void stateChanged(ChangeEvent e)
+-	{
+-	    JTabbedPane tb = (JTabbedPane)e.getSource();
+-	    int index = tb.getSelectedIndex();
+-	    String s = tb.getTitleAt(index);
+-	    Controller.instance().fireEvent(new TabbedChangeEvent(DICOMscope.this,s));
+-	}
+-	    
+-    }
+-	
+-    /**
+-    * Handles the ComponentEvents.
+-    */
+-    private class CmpAdapter extends ComponentAdapter 
+-    {
+-        public void componentResized(ComponentEvent evt) 
+-        {            
+-            MainContext mc = MainContext.instance(); // create context
+-        		    
+-            Dimension d = getSize();
+-                                
+-            if (mc.highQualitySystem) // doppelte Größe als Minimum
+-            {
+-                if (d.width < 1500) d.width = 1500;
+-                if (d.height < 1500) d.height = 1500;
+-            }
+-            else
+-            {
+-                if (d.width < 700) d.width =700;
+-                if (d.height < 600) d.height = 600;
+-            }
+-                    
+-            setSize (d);
+-        }
+-    }
+-
+-    /**
+-    * Toggles  tabpane to the viewer.
+-    * 
+-    * @since 30.03
+-    */
+-    public void switchToViewer ()
+-    {
+-	    
+-	tabpane.setSelectedIndex(1);
+-	tabpane.repaint();
+-    }
+-
+-    /**
+-	* Toggles the tabpane to the PrintPanel.
+-	* 
+-	* @since 30.03
+-	*/
+-	
+-	
+-    public void switchToPrinter ()
+-    {
+-	if (printPanel != null)
+-	{
+-	    tabpane.setSelectedComponent(printPanel);
+-	    tabpane.repaint();
+-	}
+-    }
+-
+-   
+-   
+-   
+-    /**
+-    * Handels the DSEvent fired by any Object of DICOMScope
+-    */
+-    public boolean processEvent (DSEvent e)
+-    {
+-	if (e instanceof ChangeOptionsEvent)
+-	{
+-           
+-            setConfiguration(((ChangeOptionsEvent)e).getConfig(), false);
+-	}
+-	    
+-	return false;
+-    }
+-    
+-    /**
+-    * Sets the configuration of DICOMscope.
+-    * @param config Contains the configuration.
+-    * @param init should be true if this function is called the first time.
+-    */
+-    private void setConfiguration(Hashtable config, boolean init)
+-    {
+-        if (config.containsKey("Title"))setTitle((String)(config.get("Title")));
+-            
+-        if (config.containsKey("TabbedPlacement"))tabpane.setTabPlacement((new Integer((String)(config.get("TabbedPlacement"))).intValue()));
+-        if (config.containsKey("UI")) 
+-        {
+-	    try 
+-	    {
+-		UIManager.setLookAndFeel((String) config.get("UI") );
+-		// update the complete application's look & feel
+-		SwingUtilities.updateComponentTreeUI( DICOMscope.this);
+-	    }
+-	    catch( Exception f ) 
+-	    {
+-		System.err.println( " unable to set UI " + f.getMessage() );
+-	    }
+-                
+-        }
+-        if (!init)tabpane.updateUI();
+-        if (init)
+-        {
+-	    Font f = (Font) config.get("GUIFont");
+-	    Font titledBorderFont = new Font(f.getName(), f.getStyle(),f.getSize()-f.getSize()/4);
+-	    UIDefaults uiDefaults = UIManager.getDefaults();
+-            uiDefaults.put("MenuItem.font",f);
+-            uiDefaults.put("Label.font", f);
+-            uiDefaults.put("ComboBox.font",f);
+-            uiDefaults.put("Button.font", f);
+-            uiDefaults.put("CheckBox.font", f);
+-            uiDefaults.put("CheckBoxMenuItem.font", f);
+-            uiDefaults.put("RadioButtonMenuItem.font", f);
+-            uiDefaults.put("RadioButton.font", f);
+-            uiDefaults.put("TitledBorder.font", titledBorderFont);
+-            uiDefaults.put("TextField.font", f);
+-            uiDefaults.put("Dialog.font", f);
+-            uiDefaults.put("TabbedPane.font",f);
+-            uiDefaults.put("Frame.font", f);
+-            uiDefaults.put("Scrollbar.font", f);
+-            uiDefaults.put("Tree.font", f);
+-            uiDefaults.put("EditorPane.font", f);
+-            uiDefaults.put("TextArea.font", f);
+-            uiDefaults.put("List.font", f);
+-            uiDefaults.put("AbstractButton.font", f);
+-            uiDefaults.put("ToolTip.font", f);
+-            uiDefaults.put("Button", f);
+-            tabpane.updateUI();
+-        }
+-	    
+-    }
+-	
+-}
+-
+-
+-/*
+- *  CVS Log
+- *  $Log: DICOMscope.java,v $
+- *  Revision 1.1.1.1  2001/06/06 10:32:29  kleber
+- *  Init commit for DICOMscope 3.5
+- *  Create new CVS
+- *
+-*/
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jBooleanByRef.java dsgui360/tkgui/J2Ci/jBooleanByRef.java
+--- dsgui351/tkgui/J2Ci/jBooleanByRef.java	2009-01-07 17:49:28.272279000 +0100
++++ dsgui360/tkgui/J2Ci/jBooleanByRef.java	2009-01-07 17:49:33.314851000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDoubleByRef.java dsgui360/tkgui/J2Ci/jDoubleByRef.java
+--- dsgui351/tkgui/J2Ci/jDoubleByRef.java	2009-01-07 17:49:28.276274000 +0100
++++ dsgui360/tkgui/J2Ci/jDoubleByRef.java	2009-01-07 17:49:33.318862000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRCodeValue.java dsgui360/tkgui/J2Ci/jDSRCodeValue.java
+--- dsgui351/tkgui/J2Ci/jDSRCodeValue.java	2009-01-07 17:49:28.280269000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRCodeValue.java	2009-01-07 17:49:33.332853000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRCompositeValue.java dsgui360/tkgui/J2Ci/jDSRCompositeValue.java
+--- dsgui351/tkgui/J2Ci/jDSRCompositeValue.java	2009-01-07 17:49:28.284265000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRCompositeValue.java	2009-01-07 17:49:33.336854000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRDocument.java dsgui360/tkgui/J2Ci/jDSRDocument.java
+--- dsgui351/tkgui/J2Ci/jDSRDocument.java	2009-01-07 17:49:28.289260000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRDocument.java	2009-01-07 17:49:33.155989000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000..2001, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -225,21 +225,6 @@
+      */
+     public native int getNumberOfPredecessorDocuments();
+ 
+-    /** get information about a predecessor document.
+-     *  All reference variables are cleared before the information is retrieved, i.e. if an error
+-     *  occurs (return value != EC_Normal) non-empty variables do contain correct data.
+-     ** @param  idx             index of the predecessor document to be retrieved (starting with 1).
+-     *                          Use getNumberOfPredecessorDocuments() to get the maximum value.
+-     *  @param  sopClassUID     reference to variable where the SOP class UID of the predecessor
+-     *                          document should be stored (required)
+-     *  @param  sopInstanceUID  reference to variable where the SOP instance UID of the predecessor
+-     *                          document should be stored (required)
+-     ** @return status, EC_Normal if successful, an error code otherwise
+-     */
+-    public native int getPredecessorDocument(int idx,
+-                                             jStringByRef sopClassUID,
+-                                             jStringByRef sopInstanceUID);
+-
+ 
+     // --- get DICOM string attributes (C string) ---
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRDocumentTree.java dsgui360/tkgui/J2Ci/jDSRDocumentTree.java
+--- dsgui351/tkgui/J2Ci/jDSRDocumentTree.java	2009-01-07 17:49:28.294261000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRDocumentTree.java	2009-01-07 17:49:33.176975000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000..2001, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_AddMode.java dsgui360/tkgui/J2Ci/jDSRE_AddMode.java
+--- dsgui351/tkgui/J2Ci/jDSRE_AddMode.java	2009-01-07 17:49:28.305258000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_AddMode.java	2009-01-07 17:49:33.340862000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_CharacterSet.java dsgui360/tkgui/J2Ci/jDSRE_CharacterSet.java
+--- dsgui351/tkgui/J2Ci/jDSRE_CharacterSet.java	2009-01-07 17:49:28.309259000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_CharacterSet.java	2009-01-07 17:49:33.344853000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_CompletionFlag.java dsgui360/tkgui/J2Ci/jDSRE_CompletionFlag.java
+--- dsgui351/tkgui/J2Ci/jDSRE_CompletionFlag.java	2009-01-07 17:49:28.313261000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_CompletionFlag.java	2009-01-07 17:49:33.348852000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_ContinuityOfContent.java dsgui360/tkgui/J2Ci/jDSRE_ContinuityOfContent.java
+--- dsgui351/tkgui/J2Ci/jDSRE_ContinuityOfContent.java	2009-01-07 17:49:28.317260000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_ContinuityOfContent.java	2009-01-07 17:49:33.172972000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000..2001, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_DocumentType.java dsgui360/tkgui/J2Ci/jDSRE_DocumentType.java
+--- dsgui351/tkgui/J2Ci/jDSRE_DocumentType.java	2009-01-07 17:49:28.321260000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_DocumentType.java	2009-01-07 17:49:33.352851000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_GraphicType.java dsgui360/tkgui/J2Ci/jDSRE_GraphicType.java
+--- dsgui351/tkgui/J2Ci/jDSRE_GraphicType.java	2009-01-07 17:49:28.326257000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_GraphicType.java	2009-01-07 17:49:33.355855000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_RelationshipType.java dsgui360/tkgui/J2Ci/jDSRE_RelationshipType.java
+--- dsgui351/tkgui/J2Ci/jDSRE_RelationshipType.java	2009-01-07 17:49:28.330257000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_RelationshipType.java	2009-01-07 17:49:33.359854000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_TemporalRangeType.java dsgui360/tkgui/J2Ci/jDSRE_TemporalRangeType.java
+--- dsgui351/tkgui/J2Ci/jDSRE_TemporalRangeType.java	2009-01-07 17:49:28.333261000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_TemporalRangeType.java	2009-01-07 17:49:33.363856000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_ValueType.java dsgui360/tkgui/J2Ci/jDSRE_ValueType.java
+--- dsgui351/tkgui/J2Ci/jDSRE_ValueType.java	2009-01-07 17:49:28.337260000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_ValueType.java	2009-01-07 17:49:33.367854000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRE_VerificationFlag.java dsgui360/tkgui/J2Ci/jDSRE_VerificationFlag.java
+--- dsgui351/tkgui/J2Ci/jDSRE_VerificationFlag.java	2009-01-07 17:49:28.341260000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRE_VerificationFlag.java	2009-01-07 17:49:33.371854000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRImageValue.java dsgui360/tkgui/J2Ci/jDSRImageValue.java
+--- dsgui351/tkgui/J2Ci/jDSRImageValue.java	2009-01-07 17:49:28.345259000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRImageValue.java	2009-01-07 17:49:33.375852000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRNumericValue.java dsgui360/tkgui/J2Ci/jDSRNumericValue.java
+--- dsgui351/tkgui/J2Ci/jDSRNumericValue.java	2009-01-07 17:49:28.356257000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRNumericValue.java	2009-01-07 17:49:33.379852000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRSCoordValue.java dsgui360/tkgui/J2Ci/jDSRSCoordValue.java
+--- dsgui351/tkgui/J2Ci/jDSRSCoordValue.java	2009-01-07 17:49:28.360257000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRSCoordValue.java	2009-01-07 17:49:33.383852000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRTCoordValue.java dsgui360/tkgui/J2Ci/jDSRTCoordValue.java
+--- dsgui351/tkgui/J2Ci/jDSRTCoordValue.java	2009-01-07 17:49:28.363260000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRTCoordValue.java	2009-01-07 17:49:33.386855000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDSRWaveformValue.java dsgui360/tkgui/J2Ci/jDSRWaveformValue.java
+--- dsgui351/tkgui/J2Ci/jDSRWaveformValue.java	2009-01-07 17:49:28.367259000 +0100
++++ dsgui360/tkgui/J2Ci/jDSRWaveformValue.java	2009-01-07 17:49:33.390854000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVIFhierarchyStatus.java dsgui360/tkgui/J2Ci/jDVIFhierarchyStatus.java
+--- dsgui351/tkgui/J2Ci/jDVIFhierarchyStatus.java	2009-01-07 17:49:28.371258000 +0100
++++ dsgui360/tkgui/J2Ci/jDVIFhierarchyStatus.java	2009-01-07 17:49:33.328853000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVInterface.java dsgui360/tkgui/J2Ci/jDVInterface.java
+--- dsgui351/tkgui/J2Ci/jDVInterface.java	2009-01-07 17:49:28.379264000 +0100
++++ dsgui360/tkgui/J2Ci/jDVInterface.java	2009-01-07 17:49:33.167977000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999..2001, Institute for MicroTherapy and OFFIS
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPresentationState.java dsgui360/tkgui/J2Ci/jDVPresentationState.java
+--- dsgui351/tkgui/J2Ci/jDVPresentationState.java	2009-01-07 17:49:28.390257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPresentationState.java	2009-01-07 17:49:33.228918000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999..2000, Institute for MicroTherapy and OFFIS
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -332,7 +332,7 @@
+ 
+     /**
+      * Gets the displayed area top lefthand corner and
+-     * bottom righthand corner for the current image and frame.
++     * bottom righthand corner for the current potentially rotated and flipped image and frame.
+      * This method may only be called when an image is attached to the presentation state.
+      * The params tlhcXY and brhcXY must be created before passing to this method.
+      * @param tlhcX the displayed area top lefthand corner X value is returned in this parameter
+@@ -341,7 +341,21 @@
+      * @param brhcY the displayed area bottom righthand corner Y value is returned in this parameter
+      * @return EC_Normal if successful, an error code otherwise (from jE_Condition).
+     */
+-    public native int getDisplayedArea(jIntByRef tlhcX, jIntByRef tlhcY, jIntByRef brhcX, jIntByRef brhcY);
++    public native int getStandardDisplayedArea(jIntByRef tlhcX, jIntByRef tlhcY, jIntByRef brhcX, jIntByRef brhcY);
++
++
++    /**
++     * Gets the displayed area top lefthand corner and 
++    *  bottom righthand corner for the current image and frame, as if the image was unrotated
++     * This method may only be called when an image is attached to the presentation state.
++     * The params tlhcXY and brhcXY must be created before passing to this method.
++     * @param tlhcX the displayed area top lefthand corner X value is returned in this parameter
++     * @param tlhcY the displayed area top lefthand corner Y value is returned in this parameter
++     * @param brhcX the displayed area bottom righthand corner X value is returned in this parameter
++     * @param brhcY the displayed area bottom righthand corner Y value is returned in this parameter
++     * @return EC_Normal if successful, an error code otherwise (from jE_Condition).
++    */
++    public native int getImageRelativeDisplayedArea(jIntByRef tlhcX, jIntByRef tlhcY, jIntByRef brhcX, jIntByRef brhcY);
+ 
+ 
+     /**
+@@ -388,7 +402,32 @@
+      *    (from jDVPSObjectApplicability)
+      * @return EC_Normal if successful, an error code otherwise (from jE_Condition).
+     */
+-    public native int setDisplayedArea(int sizeMode, int tlhcX,
++    public native int setStandardDisplayedArea(int sizeMode, int tlhcX,
++                                 int tlhcY, int brhcX, int brhcY,
++                                 double magnification, int applicability);
++
++
++    /**
++     * Sets the displayed area and size mode (for the current frame, the current image
++     *  or all images referenced by the presentation state object).
++     *  Treats the image as if it was neither rotated nor flipped.
++     * @param sizeMode presentation size mode (from jDVPSPresentationSizeMode)
++     * @param tlhcX displayed area top lefthand corner X
++     * @param tlhcY displayed area top lefthand corner Y
++     * @param brhcX displayed area bottom righthand corner X
++     * @param brhcY displayed area bottom righthand corner Y
++     * @param magnification magnification factor - ignored unless sizeMode==DVPSD_magnify.
++     * @param applicability defines the applicability of the new displayed area definition.
++     *    Possible choices are: DVPSB_currentFrame - current frame only,
++     *    DVPSB_currentImage - all frames of current image (default),
++     *    and DVPSB_allImages -  all images referenced by this presentation state.
++     *    The last choice should be used with care
++     *    because it will also cause the pixel spacing or pixel aspect ratio of the current image
++     *    to be applied to all images referenced by the presentation state.
++     *    (from jDVPSObjectApplicability)
++     * @return EC_Normal if successful, an error code otherwise (from jE_Condition).
++    */
++    public native int setImageRelativeDisplayedArea(int sizeMode, int tlhcX,
+                                  int tlhcY, int brhcX, int brhcY,
+                                  double magnification, int applicability);
+ 
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPrStateParam_GetImageReference.java dsgui360/tkgui/J2Ci/jDVPrStateParam_GetImageReference.java
+--- dsgui351/tkgui/J2Ci/jDVPrStateParam_GetImageReference.java	2009-01-07 17:49:28.394258000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPrStateParam_GetImageReference.java	2009-01-07 17:49:33.193952000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPrStateParam_GetOverlayData.java dsgui360/tkgui/J2Ci/jDVPrStateParam_GetOverlayData.java
+--- dsgui351/tkgui/J2Ci/jDVPrStateParam_GetOverlayData.java	2009-01-07 17:49:28.398257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPrStateParam_GetOverlayData.java	2009-01-07 17:49:33.198947000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPrStateParam_GetPixelData.java dsgui360/tkgui/J2Ci/jDVPrStateParam_GetPixelData.java
+--- dsgui351/tkgui/J2Ci/jDVPrStateParam_GetPixelData.java	2009-01-07 17:49:28.402258000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPrStateParam_GetPixelData.java	2009-01-07 17:49:33.202942000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPrStateParam_GetScreenData.java dsgui360/tkgui/J2Ci/jDVPrStateParam_GetScreenData.java
+--- dsgui351/tkgui/J2Ci/jDVPrStateParam_GetScreenData.java	2009-01-07 17:49:28.406257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPrStateParam_GetScreenData.java	2009-01-07 17:49:33.206941000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSannotationUnit.java dsgui360/tkgui/J2Ci/jDVPSannotationUnit.java
+--- dsgui351/tkgui/J2Ci/jDVPSannotationUnit.java	2009-01-07 17:49:28.410258000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSannotationUnit.java	2009-01-07 17:49:33.210934000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPScharacterSet.java dsgui360/tkgui/J2Ci/jDVPScharacterSet.java
+--- dsgui351/tkgui/J2Ci/jDVPScharacterSet.java	2009-01-07 17:49:28.414257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPScharacterSet.java	2009-01-07 17:49:33.213935000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSCurve.java dsgui360/tkgui/J2Ci/jDVPSCurve.java
+--- dsgui351/tkgui/J2Ci/jDVPSCurve.java	2009-01-07 17:49:28.417261000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSCurve.java	2009-01-07 17:49:33.217930000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSCurveType.java dsgui360/tkgui/J2Ci/jDVPSCurveType.java
+--- dsgui351/tkgui/J2Ci/jDVPSCurveType.java	2009-01-07 17:49:28.421260000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSCurveType.java	2009-01-07 17:49:33.221925000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSDecimateCropBehaviour.java dsgui360/tkgui/J2Ci/jDVPSDecimateCropBehaviour.java
+--- dsgui351/tkgui/J2Ci/jDVPSDecimateCropBehaviour.java	2009-01-07 17:49:28.425260000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSDecimateCropBehaviour.java	2009-01-07 17:49:33.150994000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSDisplayTransform.java dsgui360/tkgui/J2Ci/jDVPSDisplayTransform.java
+--- dsgui351/tkgui/J2Ci/jDVPSDisplayTransform.java	2009-01-07 17:49:28.429259000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSDisplayTransform.java	2009-01-07 17:49:33.235909000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSFilmOrientation.java dsgui360/tkgui/J2Ci/jDVPSFilmOrientation.java
+--- dsgui351/tkgui/J2Ci/jDVPSFilmOrientation.java	2009-01-07 17:49:28.433257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSFilmOrientation.java	2009-01-07 17:49:33.238910000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSGraphicObject.java dsgui360/tkgui/J2Ci/jDVPSGraphicObject.java
+--- dsgui351/tkgui/J2Ci/jDVPSGraphicObject.java	2009-01-07 17:49:28.437257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSGraphicObject.java	2009-01-07 17:49:33.243901000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSGraphicType.java dsgui360/tkgui/J2Ci/jDVPSGraphicType.java
+--- dsgui351/tkgui/J2Ci/jDVPSGraphicType.java	2009-01-07 17:49:28.440261000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSGraphicType.java	2009-01-07 17:49:33.247900000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSInstanceType.java dsgui360/tkgui/J2Ci/jDVPSInstanceType.java
+--- dsgui351/tkgui/J2Ci/jDVPSInstanceType.java	2009-01-07 17:49:28.444260000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSInstanceType.java	2009-01-07 17:49:33.159986000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999..2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSLogMessageLevel.java dsgui360/tkgui/J2Ci/jDVPSLogMessageLevel.java
+--- dsgui351/tkgui/J2Ci/jDVPSLogMessageLevel.java	2009-01-07 17:49:28.452259000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSLogMessageLevel.java	2009-01-07 17:49:33.251895000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSObjectApplicability.java dsgui360/tkgui/J2Ci/jDVPSObjectApplicability.java
+--- dsgui351/tkgui/J2Ci/jDVPSObjectApplicability.java	2009-01-07 17:49:28.456257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSObjectApplicability.java	2009-01-07 17:49:33.255890000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSObjectType.java dsgui360/tkgui/J2Ci/jDVPSObjectType.java
+--- dsgui351/tkgui/J2Ci/jDVPSObjectType.java	2009-01-07 17:49:28.459261000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSObjectType.java	2009-01-07 17:49:33.181966000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2001, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2001-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSPeerType.java dsgui360/tkgui/J2Ci/jDVPSPeerType.java
+--- dsgui351/tkgui/J2Ci/jDVPSPeerType.java	2009-01-07 17:49:28.529258000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSPeerType.java	2009-01-07 17:49:33.260885000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSPresentationLUTType.java dsgui360/tkgui/J2Ci/jDVPSPresentationLUTType.java
+--- dsgui351/tkgui/J2Ci/jDVPSPresentationLUTType.java	2009-01-07 17:49:28.463260000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSPresentationLUTType.java	2009-01-07 17:49:33.264880000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSPresentationSizeMode.java dsgui360/tkgui/J2Ci/jDVPSPresentationSizeMode.java
+--- dsgui351/tkgui/J2Ci/jDVPSPresentationSizeMode.java	2009-01-07 17:49:28.467259000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSPresentationSizeMode.java	2009-01-07 17:49:33.268876000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSPrintPresentationLUTType.java dsgui360/tkgui/J2Ci/jDVPSPrintPresentationLUTType.java
+--- dsgui351/tkgui/J2Ci/jDVPSPrintPresentationLUTType.java	2009-01-07 17:49:28.471257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSPrintPresentationLUTType.java	2009-01-07 17:49:33.271876000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSRotationType.java dsgui360/tkgui/J2Ci/jDVPSRotationType.java
+--- dsgui351/tkgui/J2Ci/jDVPSRotationType.java	2009-01-07 17:49:28.475257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSRotationType.java	2009-01-07 17:49:33.275870000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSShutterType.java dsgui360/tkgui/J2Ci/jDVPSShutterType.java
+--- dsgui351/tkgui/J2Ci/jDVPSShutterType.java	2009-01-07 17:49:28.478265000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSShutterType.java	2009-01-07 17:49:33.279865000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSSignatureStatus.java dsgui360/tkgui/J2Ci/jDVPSSignatureStatus.java
+--- dsgui351/tkgui/J2Ci/jDVPSSignatureStatus.java	2009-01-07 17:49:28.483257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSSignatureStatus.java	2009-01-07 17:49:33.185963000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2001, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2001-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSStoredPrint.java dsgui360/tkgui/J2Ci/jDVPSStoredPrint.java
+--- dsgui351/tkgui/J2Ci/jDVPSStoredPrint.java	2009-01-07 17:49:28.489257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSStoredPrint.java	2009-01-07 17:49:33.283861000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSTextJustification.java dsgui360/tkgui/J2Ci/jDVPSTextJustification.java
+--- dsgui351/tkgui/J2Ci/jDVPSTextJustification.java	2009-01-07 17:49:28.493257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSTextJustification.java	2009-01-07 17:49:33.287857000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSTextObject.java dsgui360/tkgui/J2Ci/jDVPSTextObject.java
+--- dsgui351/tkgui/J2Ci/jDVPSTextObject.java	2009-01-07 17:49:28.497257000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSTextObject.java	2009-01-07 17:49:33.291853000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSTrimMode.java dsgui360/tkgui/J2Ci/jDVPSTrimMode.java
+--- dsgui351/tkgui/J2Ci/jDVPSTrimMode.java	2009-01-07 17:49:28.501261000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSTrimMode.java	2009-01-07 17:49:33.295852000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jDVPSVerifyAndSignMode.java dsgui360/tkgui/J2Ci/jDVPSVerifyAndSignMode.java
+--- dsgui351/tkgui/J2Ci/jDVPSVerifyAndSignMode.java	2009-01-07 17:49:28.506258000 +0100
++++ dsgui360/tkgui/J2Ci/jDVPSVerifyAndSignMode.java	2009-01-07 17:49:33.189957000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2001, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2001-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jE_Condition.java dsgui360/tkgui/J2Ci/jE_Condition.java
+--- dsgui351/tkgui/J2Ci/jE_Condition.java	2009-01-07 17:49:28.510258000 +0100
++++ dsgui360/tkgui/J2Ci/jE_Condition.java	2009-01-07 17:49:33.298855000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003..2002, Institute for MicroTherapy and OFFIS
+  *
+  *  This software and supporting documentation were developed by
+  *
+@@ -15,6 +15,13 @@
+  *    http://www.microtherapy.de/go/cs
+  *    mailto:computer.science at microtherapy.de
+  *
++ *  and
++ *
++ *    Kuratorium OFFIS e.V.
++ *    Healthcare Information and Communication Systems
++ *    Escherweg 2
++ *    D-26121 Oldenburg, Germany
++ *
+  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND THE INSTITUTE MAKES  NO 
+  *  WARRANTY REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY
+  *  OR FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES 
+@@ -31,91 +38,19 @@
+ 
+ /** 
+  * The class <em>jE_Condition</em> represents the C++-enumeration
+- * E_Condition.
++ * E_Condition. To be more precisely, this class represents the
++ * return value of OFCondition::status() which might be OF_ok,
++ * OF_error or OF_failure.
+  *
+  * @author 	Andreas Schröter
+ */
+ public class jE_Condition
+ {
+     /**
+-     * Constant; Method was successful.
++     * Constant; Method was successful. Equivilent to OF_ok.
+     */
+     public static final int EC_Normal = 0;
+     
+-    /**
+-     * Constant; Invalid Tag.
+-    */
+-    public static final int EC_InvalidTag = 1;
+-    
+-    /**
+-     * Constant; Tag not found.
+-    */
+-    public static final int EC_TagNotFound = 2;
+-    
+-    /**
+-     * Constant; Invalid value representation.
+-    */
+-    public static final int EC_InvalidVR = 3;
+-    
+-    /**
+-     * Constant; Invalid stream.
+-    */
+-    public static final int EC_InvalidStream = 4;
+-    
+-    /**
+-     * Constant; End of stream.
+-    */
+-    public static final int EC_EndOfStream = 5;
+-    
+-    /**
+-     * Constant; Corrupted data.
+-    */
+-    public static final int EC_CorruptedData = 6;
+-    
+-    /**
+-     * Constant; Illegal call.
+-    */
+-    public static final int EC_IllegalCall = 7;
+-    
+-    /**
+-     * Constant; Sequence end.
+-    */
+-    public static final int EC_SequEnd = 8;
+-    
+-    /**
+-     * Constant; Doubled tag.
+-    */
+-    public static final int EC_DoubledTag = 9;
+-    
+-    /**
+-     * Constant; Stream will notify client.
+-    */
+-    public static final int EC_StreamNotifyClient = 10;
+-    
+-    /**
+-     * Constant; Wrong stream mode.
+-    */
+-    public static final int EC_WrongStreamMode = 11;
+-    
+-    /**
+-     * Constant; Memory exhausted.
+-    */
+-    public static final int EC_MemoryExhausted = 12;
+-    
+-    /**
+-     * Constant; Item end.
+-    */
+-    public static final int EC_ItemEnd = 13;
+-    
+-    /**
+-     * Constant; Representation not found.
+-    */
+-    public static final int EC_RepresentationNotFound = 14;
+-    
+-    /**
+-     * Constant; Can't change representation.
+-    */
+-    public static final int EC_CannotChangeRepresentation = 15;
+ }
+ 
+ /*
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jFloatByRef.java dsgui360/tkgui/J2Ci/jFloatByRef.java
+--- dsgui351/tkgui/J2Ci/jFloatByRef.java	2009-01-07 17:49:28.514257000 +0100
++++ dsgui360/tkgui/J2Ci/jFloatByRef.java	2009-01-07 17:49:33.394853000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 2000, OFFIS and Institute for MicroTherapy
++ *  Copyright (C) 2000-2003, OFFIS and Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jIntByRef.java dsgui360/tkgui/J2Ci/jIntByRef.java
+--- dsgui351/tkgui/J2Ci/jIntByRef.java	2009-01-07 17:49:28.517261000 +0100
++++ dsgui360/tkgui/J2Ci/jIntByRef.java	2009-01-07 17:49:33.302854000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jRGB.java dsgui360/tkgui/J2Ci/jRGB.java
+--- dsgui351/tkgui/J2Ci/jRGB.java	2009-01-07 17:49:28.521260000 +0100
++++ dsgui360/tkgui/J2Ci/jRGB.java	2009-01-07 17:49:33.306853000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/J2Ci/jStringByRef.java dsgui360/tkgui/J2Ci/jStringByRef.java
+--- dsgui351/tkgui/J2Ci/jStringByRef.java	2009-01-07 17:49:28.525259000 +0100
++++ dsgui360/tkgui/J2Ci/jStringByRef.java	2009-01-07 17:49:33.310851000 +0100
+@@ -1,6 +1,6 @@
+ /*
+  *
+- *  Copyright (C) 1999, Institute for MicroTherapy
++ *  Copyright (C) 1999-2003, Institute for MicroTherapy
+  *
+  *  This software and supporting documentation were developed by
+  *
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/main/MainContext.java dsgui360/tkgui/main/MainContext.java
+--- dsgui351/tkgui/main/MainContext.java	2009-01-07 17:49:27.963585000 +0100
++++ dsgui360/tkgui/main/MainContext.java	2009-01-07 17:49:32.887258000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:30 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 10:08:20 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ 
+@@ -87,7 +87,7 @@
+     */
+ 		
+     //String title = new String ("DICOMscope 3.0");
+-    String title = new String ("DICOMscope 3.5.1");
++    String title = new String ("DICOMscope 3.6.0");
+     
+     
+     
+@@ -398,6 +398,9 @@
+ /*
+  *  CVS Log
+  *  $Log: MainContext.java,v $
++ *  Revision 1.2  2003/09/08 10:08:20  kleber
++ *  New version number
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:30  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/viewer/main/ScreenImageHandler.java dsgui360/tkgui/viewer/main/ScreenImageHandler.java
+--- dsgui351/tkgui/viewer/main/ScreenImageHandler.java	2009-01-07 17:49:27.579938000 +0100
++++ dsgui360/tkgui/viewer/main/ScreenImageHandler.java	2009-01-07 17:49:32.516535000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:30 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 10:17:26 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ 
+@@ -346,12 +346,13 @@
+     public void setNewDisplayArea(int tlhcX,int  tlhcY,int  brhcX,int brhcY)
+     {
+         
+-        presentationStateGraphicsHandler.ps.setDisplayedArea(presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(), tlhcX, tlhcY, brhcX, brhcY, presentationStateGraphicsHandler.calculateZoomValue(new DisplayArea(tlhcX, tlhcY, brhcX, brhcY)), applyTo);
++        presentationStateGraphicsHandler.ps.setImageRelativeDisplayedArea(presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(), tlhcX, tlhcY, brhcX, brhcY, presentationStateGraphicsHandler.calculateZoomValue(new DisplayArea(tlhcX, tlhcY, brhcX, brhcY)), applyTo);
+ 	    presentationStateGraphicsHandler.calculateFirstZoomValue();
+ 	    Controller.instance().fireNotification(new ImageChangeEvent(this, GuiComponents.ID_ZOOMINPUT, new Double(presentationStateGraphicsHandler.getZoomValue())));
+ 	    
+ 	    buildImageBuffer(true,false,true,true, true);
+-	    statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	   statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
++            
+ 		Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+         
+     }
+@@ -383,7 +384,8 @@
+ 	    presentationStateGraphicsHandler.drawPaintStructure(bufferedScreenImage,transformationConverter.getTransformation(),transformationConverter.getOverlayTransformation(),false,8, false);
+ 	    //mainImageViewerPanel.funktionBasisTabPanel.presentationStatePanel.setValue();
+             imageCanvas.repaint();
+-	        statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	   statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
++   
+ 		Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+         }
+     }
+@@ -406,7 +408,8 @@
+ 
+ 	    //mainImageViewerPanel.funktionBasisTabPanel.presentationStatePanel.setValue();
+             imageCanvas.repaint();
+-	    statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	   statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
++
+ 		Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+         }
+     }
+@@ -754,7 +757,7 @@
+                                                                        presentationStateGraphicsHandler.ps.getPresentationDescription(),
+                                                                        presentationStateGraphicsHandler.getImageWidth(),
+                                                                        presentationStateGraphicsHandler.getImageHeight(),
+-                                                                       presentationStateGraphicsHandler.getDisplayArea(),
++                                                                       presentationStateGraphicsHandler.getStandardDisplayedArea(),
+                                                                        presentationStateGraphicsHandler.haveDisplayedAreaPresentationPixelSpacing(),
+                                                                        presentationStateGraphicsHandler.ps.canUseDisplayedAreaTrueSize(),
+                                                                        presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(),
+@@ -839,7 +842,7 @@
+                                                                       presentationStateGraphicsHandler.ps.getPresentationLUT()));
+             
+             Controller.instance().fireNotification(new SendLayerEvent(this,getLayers(),presentationStateGraphicsHandler.getCurrentLayerIndex()));
+-	    statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
+ 		Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+             
+             //Paints the image 
+@@ -1475,11 +1478,11 @@
+ 	                        int lastPresentationSizeModeM = presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode();
+ 	                        
+ 	                        //Sets a new Presentation Size Mode
+-	                        presentationStateGraphicsHandler.ps.setDisplayedArea(jDVPSPresentationSizeMode.DVPSD_magnify,
+-	                                                                             displayAreaM.tlhc_x,
+-	                                                                             displayAreaM.tlhc_y,
+-	                                                                             displayAreaM.brhc_x,
+-	                                                                             displayAreaM.brhc_y,
++	                        presentationStateGraphicsHandler.ps.setImageRelativeDisplayedArea(jDVPSPresentationSizeMode.DVPSD_magnify,
++	                                                                             displayAreaM.getTlhcX(),
++	                                                                             displayAreaM.getTlhcY(),
++	                                                                             displayAreaM.getBrhcX(),
++	                                                                             displayAreaM.getBrhcY(),
+ 	                                                                             presentationStateGraphicsHandler.getZoomValue(),
+ 	                                                                             applyTo);
+ 	                         //build a new Presntation State 
+@@ -1492,19 +1495,20 @@
+ 	                         //Notification, drawing
+ 	                         Controller.instance().fireNotification(new ImageChangeEvent(this, GuiComponents.ID_ZOOMINPUT, new Double(presentationStateGraphicsHandler.getZoomValue())));
+ 	                         buildImageBuffer(false,true,true,false, true);
+-	                         statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	                        statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
+ 		                     statusInformation.presentationSizeMode = "mgn";
+ 		                     Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+ 	                         return true;
+ 	            case ImageActionEvent.MODE_SCALE:
+ 	                        DisplayArea displayAreaS = presentationStateGraphicsHandler.getDisplayArea();
++	                        
+ 	                        int lastPresentationSizeMode = presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode();
+ 	                        double lastZoom = presentationStateGraphicsHandler.getZoomValue();                                                   
+-	                        presentationStateGraphicsHandler.ps.setDisplayedArea(jDVPSPresentationSizeMode.DVPSD_scaleToFit,
+-	                                                                             displayAreaS.tlhc_x,
+-	                                                                             displayAreaS.tlhc_y,
+-	                                                                             displayAreaS.brhc_x,
+-	                                                                             displayAreaS.brhc_y,
++	                        presentationStateGraphicsHandler.ps.setImageRelativeDisplayedArea(jDVPSPresentationSizeMode.DVPSD_scaleToFit,
++	                                                                             displayAreaS.getTlhcX(),
++	                                                                             displayAreaS.getTlhcY(),
++	                                                                             displayAreaS.getBrhcX(),
++	                                                                             displayAreaS.getBrhcY(),
+ 	                                                                             presentationStateGraphicsHandler.getZoomValue(),
+ 	                                                                             applyTo);
+ 	                         presentationStateGraphicsHandler.buildPresentationState();
+@@ -1514,23 +1518,26 @@
+ 	                         
+ 	                         Controller.instance().fireNotification(new ImageChangeEvent(this, GuiComponents.ID_ZOOMINPUT, new Double(presentationStateGraphicsHandler.getZoomValue())));
+ 	                         buildImageBuffer(false,true,true,false, true);
+-	                         statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	                        statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
+ 		                     statusInformation.presentationSizeMode = "fit";
++                          
+ 		                     Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+ 	                        return true;
+ 	            case ImageActionEvent.MODE_TRUESIZE:
+ 	                        DisplayArea displayAreaT = presentationStateGraphicsHandler.getDisplayArea();
+-	                        presentationStateGraphicsHandler.ps.setDisplayedArea(jDVPSPresentationSizeMode.DVPSD_trueSize,
+-	                                                                             displayAreaT.tlhc_x,
+-	                                                                             displayAreaT.tlhc_y,
+-	                                                                             displayAreaT.brhc_x,
+-	                                                                             displayAreaT.brhc_y,
++                                
++	                        presentationStateGraphicsHandler.ps.setImageRelativeDisplayedArea(jDVPSPresentationSizeMode.DVPSD_trueSize,
++	                                                                             displayAreaT.getTlhcX(),
++	                                                                             displayAreaT.getTlhcY(),
++	                                                                             displayAreaT.getBrhcX(),
++	                                                                             displayAreaT.getBrhcY(),
+ 	                                                                             presentationStateGraphicsHandler.getZoomValue(),
+ 	                                                                             applyTo);
+ 	                         presentationStateGraphicsHandler.buildPresentationState();
+ 	                         presentationStateGraphicsHandler.calculateFirstZoomValue();
+ 	                         buildImageBuffer(false,true,true,false, true);
+-	                         statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	                       statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
++		                 
+ 		                     statusInformation.presentationSizeMode = "true";
+ 		                     Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+ 	                         return true;
+@@ -1543,7 +1550,8 @@
+ 	        
+ 	       
+ 	        buildImageBuffer(false,true,true,false, true);
+-	        statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	      statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
++               
+ 	        Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+ 	        
+ 	    
+@@ -1676,8 +1684,9 @@
+             presentationStateGraphicsHandler.setZoomValue(newZoom);
+             transformationConverter.setNewZoom(oldZoom);
+ 	        buildImageBuffer(false,false,true,true, true);
+-	        statusInformation.setDisplayedArea(presentationStateGraphicsHandler.getDisplayArea());
++	      statusInformation.setStandardDisplayedArea(presentationStateGraphicsHandler.getStandardDisplayedArea());
+ 		    statusInformation.zoomValue = newZoom;
++              
+ 		    Controller.instance().fireStatus(new StatusLineEvent(this,StatusLineEvent.SET_TEXT2,DSComponentType.VIEWER,statusInformation.getPresentationInfo()));
+         
+     }
+@@ -2265,10 +2274,10 @@
+         else
+         {
+             double zoomValue = presentationStateGraphicsHandler.getZoomValue();
+-            presentationStateGraphicsHandler.ps.setDisplayedArea(presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(), 1, 1, presentationStateGraphicsHandler.getImageWidth(),  presentationStateGraphicsHandler.getImageHeight(),zoomValue , applyTo);
++            presentationStateGraphicsHandler.ps.setImageRelativeDisplayedArea(presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(), 1, 1, presentationStateGraphicsHandler.getImageWidth(),  presentationStateGraphicsHandler.getImageHeight(),zoomValue , applyTo);
+             presentationStateGraphicsHandler.setScreenSize(new Dimension(presentationStateGraphicsHandler.getImageWidth(),presentationStateGraphicsHandler.getImageHeight()));
+             presentationStateGraphicsHandler.getPrintImageBuffer(transformationConverter);
+-            presentationStateGraphicsHandler.ps.setDisplayedArea(presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(), oldDisplaydArea.tlhc_x, oldDisplaydArea.tlhc_y, oldDisplaydArea.brhc_x,  oldDisplaydArea.brhc_y, zoomValue, applyTo);
++            presentationStateGraphicsHandler.ps.setImageRelativeDisplayedArea(presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(), oldDisplaydArea.getTlhcX(), oldDisplaydArea.getTlhcY(), oldDisplaydArea.getBrhcX(),  oldDisplaydArea.getBrhcY(), zoomValue, applyTo);
+             
+             
+         }
+@@ -2426,6 +2435,9 @@
+ /*
+  *  CVS Log
+  *  $Log: ScreenImageHandler.java,v $
++ *  Revision 1.2  2003/09/08 10:17:26  kleber
++ *  Bugfix: The Displayed Area is defined after the spatial transformation.
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:30  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/viewer/main/StatusInformation.java dsgui360/tkgui/viewer/main/StatusInformation.java
+--- dsgui351/tkgui/viewer/main/StatusInformation.java	2009-01-07 17:49:27.584940000 +0100
++++ dsgui360/tkgui/viewer/main/StatusInformation.java	2009-01-07 17:49:32.521533000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:30 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 10:13:44 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ package viewer.main;
+@@ -32,8 +32,7 @@
+ /**
+ * This class contains status information about the image
+ */
+-public class StatusInformation
+-{
++public class StatusInformation {
+     public double width;
+     public double center;
+     public boolean haveLut= false;
+@@ -45,53 +44,51 @@
+     public String layerName;
+     
+     
+-    public StatusInformation()
+-    {
++    public StatusInformation() {
+         
+     }
+-    public String toString()
+-    {
++    public String toString() {
+         String returnString = new String();
+         if (displayArea != null) returnString = returnString.concat(displayArea.toString());
+         if (haveLut) returnString = returnString.concat("LUT: " + voiLut);
+         else returnString = returnString.concat(" c: = " + center + ", w: = " + width  );
+         return returnString;
+     }
+-   public void  setWindow(double center, double width)
+-    {
++    public void  setWindow(double center, double width) {
+         this.center = center;
+         this.width = width;
+         haveLut = false;
+     }  
+    
+-   public void setDisplayedArea(DisplayArea displayArea)
+-   {
++    public void setStandardDisplayedArea(DisplayArea displayArea) {
++      
+     this.displayArea = displayArea;
++       
+    }
+-   public void setLUT(String voiLut)
+-   {
++    public void setLUT(String voiLut) {
+         haveLut = true;
+         this.voiLut = voiLut;
+    }
+-   public String getWinInfo()
+-   {
++    public String getWinInfo() {
+         if (haveLut) return("LUT: = " + voiLut);
+         else return new String("c/w: " + center + "/" + width);
+    }
+-   public String getLayer()
+-   {
++    public String getLayer() {
+        return layerName;
+    }
+-   public String getPresentationInfo()
+-   {
+-       //return new String(presentationSizeMode + ", z: " + zoomValue + ", da: (" + displayArea.tlhc_x+ "/" + displayArea.tlhc_y+ "),("+displayArea.brhc_x+"/"+displayArea.brhc_y+")");
+-       return new String("da: (" + displayArea.tlhc_x+ "/" + displayArea.tlhc_y+ "),("+displayArea.brhc_x+"/"+displayArea.brhc_y+")");
++    public String getPresentationInfo() {
++        
++        //return new String(presentationSizeMode + ", z: " + zoomValue + ", da: (" + displayArea.getTlhcX()+ "/" + displayArea.tlhc_y+ "),("+displayArea.getBrhcX()+"/"+displayArea.getTlhcY()+")");
++        return new String("da: (" + displayArea.getTlhcX()+ "/" + displayArea.getTlhcY()+ "),("+displayArea.getBrhcX()+"/"+displayArea.getBrhcY()+")");
+    }
+      
+ }
+ /*
+  *  CVS Log
+  *  $Log: StatusInformation.java,v $
++ *  Revision 1.2  2003/09/08 10:13:44  kleber
++ *  Rename setDisplayedArea to setStandardDisplayedArea
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:30  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/viewer/paint/PaintObject.java dsgui360/tkgui/viewer/paint/PaintObject.java
+--- dsgui351/tkgui/viewer/paint/PaintObject.java	2009-01-07 17:49:27.613935000 +0100
++++ dsgui360/tkgui/viewer/paint/PaintObject.java	2009-01-07 17:49:32.550533000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:30 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 10:12:24 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ 
+@@ -54,8 +54,7 @@
+  * @see PolylineObject
+  * @see Rectangle2DObject
+  */
+-public abstract class  PaintObject extends Object
+-{
++public abstract class  PaintObject extends Object {
+     
+     /**
+      * if true the PaintObject is display relative if false the PaintObject ist imageRelative.
+@@ -127,8 +126,7 @@
+      * 
+      * @since 30.04.1999
+      */
+-    public PaintObject()
+-    {
++    public PaintObject() {
+       objectPoints = new Vector();
+       status =STATUS_NULL;
+     	//{{INIT_CONTROLS
+@@ -140,8 +138,7 @@
+      * @param filled true if the PainObject should be filled
+      * @since 30.04.1999
+      */
+-    public PaintObject(boolean filled)
+-    {
++    public PaintObject(boolean filled) {
+       objectPoints = new Vector();
+       status =STATUS_NULL;
+       this.filled = filled;
+@@ -154,8 +151,7 @@
+      * @return ture if the PaintObject is closed
+      * @since 30.04.1999
+      */
+-    public boolean isClosed()
+-    {
++    public boolean isClosed() {
+         if (objectPoints.size() < 3) return false;
+         else return getPoint(0).equals(getPoint(objectPoints.size()-1));
+         
+@@ -168,11 +164,9 @@
+      * @return The Point on the specified index in the objectPoints.
+      * @since 30.04.1999
+      */
+-    public Point2D.Float getPoint(int index)
+-    {
++    public Point2D.Float getPoint(int index) {
+       if (index >= objectPoints.size()) return null;
+-      else
+-      {
++        else {
+          return (Point2D.Float) objectPoints.elementAt(index);
+       }
+     }
+@@ -184,8 +178,7 @@
+      * @return The yype of the PaintObject.
+      * @since 30.04.1999
+      */
+-    public int getType()
+-    {
++    public int getType() {
+         if (isDisplayRelative) return 1;
+         else return 0;
+     }
+@@ -212,8 +205,7 @@
+     * @return true if the specified Point is inside the boundary of the Shape.
+     * @since 30.04.1999
+     */
+-    public  boolean contains(Point2D.Float p)
+-    {
++    public  boolean contains(Point2D.Float p) {
+         return getShape().getBounds2D().contains(p);
+     }
+     
+@@ -234,11 +226,9 @@
+     * @return A copy of the Point at the specified index.
+     * @since 30.04.1999
+     */
+-    public  Point2D.Float getCopyPointAt(int index)
+-    {
++    public  Point2D.Float getCopyPointAt(int index) {
+       Point2D.Float returnPoint = null;
+-      if (index >= objectPoints.size()) return returnPoint;
+-      {
++        if (index >= objectPoints.size()) return returnPoint; {
+          returnPoint = new Point2D.Float(((Point2D.Float) objectPoints.elementAt(index)).x,
+                                          ((Point2D.Float) objectPoints.elementAt(index)).y);
+          return returnPoint;
+@@ -251,8 +241,7 @@
+     * @return The status of the PaintObject.
+     * @since 30.04.1999
+     */
+-    public int getStatus()
+-    {
++    public int getStatus() {
+       return status;
+     }
+     
+@@ -262,8 +251,7 @@
+     * @param status The new status of the PaintObject.
+     * @since 30.04.1999
+     */
+-    public void setStatus(int status)
+-    {
++    public void setStatus(int status) {
+       this.status = status;
+     }
+     
+@@ -274,8 +262,7 @@
+     * @return The ObjectPoints.
+     * @since 30.04.1999
+     */
+-    public Vector getObjectPoints()
+-    {
++    public Vector getObjectPoints() {
+       return objectPoints;
+     }
+     
+@@ -285,12 +272,10 @@
+     * @return A String representing this PaintObject
+     * @since 30.04.1999
+     */
+-    public String getInfo()
+-    {
++    public String getInfo() {
+          String returnString = null;
+          if (getShape()!= null)returnString = new String("        " + getShape().toString()+ "\n");
+-         for (int i = 0; i < objectPoints.size(); i++)
+-         {
++        for (int i = 0; i < objectPoints.size(); i++) {
+             returnString = returnString.concat("Index: " + i + " " + objectPoints.elementAt(i).toString()+"\n");
+          }
+          return returnString;
+@@ -302,8 +287,7 @@
+     * @param filled true - the PaintObject should be filled.
+     * @since 30.04.1999
+     */
+-   public void setFilled(boolean filled) 
+-   {
++    public void setFilled(boolean filled) {
+       this.filled = filled;
+    }
+    
+@@ -322,8 +306,7 @@
+     * @param aff Contains the transformation appling to the Shpae before drawing.
+     * @since 30.04.1999
+     */
+-   public  void drawTransformedShape(Graphics2D g,AffineTransform aff)
+-   {
++    public  void drawTransformedShape(Graphics2D g,AffineTransform aff) {
+       g.setTransform(aff);
+       drawShape(g);
+    }
+@@ -357,6 +340,9 @@
+ /*
+  *  CVS Log
+  *  $Log: PaintObject.java,v $
++ *  Revision 1.2  2003/09/08 10:12:24  kleber
++ *  Reformate Code
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:30  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/viewer/presentation/DisplayArea.java dsgui360/tkgui/viewer/presentation/DisplayArea.java
+--- dsgui351/tkgui/viewer/presentation/DisplayArea.java	2009-01-07 17:49:27.638913000 +0100
++++ dsgui360/tkgui/viewer/presentation/DisplayArea.java	2009-01-07 17:49:32.569533000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:30 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 10:17:26 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ package viewer.presentation;
+@@ -31,39 +31,84 @@
+ /**
+ * Contains a DICOM display area.
+ */
+-public class DisplayArea
+-{
++public class DisplayArea{
++    
++    
++    
+     public int tlhc_x;
+     public int tlhc_y;
+     public int brhc_x;
+     public int brhc_y;
+-    public DisplayArea( int tlhc_x,
+-                        int tlhc_y,
+-                        int brhc_x,
+-                        int brhc_y)
+-   {
++    /**
++     * @param tlhc_x
++     * @param tlhc_y
++     * @param brhc_x
++     * @param brhc_y
++     * @param rotation
++     * @param flipped  */
++    public DisplayArea( int tlhc_x, int tlhc_y, int brhc_x, int brhc_y) {
++        
+         this.tlhc_x = tlhc_x;
+         this.tlhc_y = tlhc_y;
+         this.brhc_x = brhc_x;
+         this.brhc_y = brhc_y;
++  
+    }
+-   public String toString()
+-   {
++ 
++   
++    public String toString() {
+     return new String("TLHC: = " + tlhc_x + "/" + tlhc_y+ ", BRHC: = " + brhc_x + "/" + brhc_y);
+    }
+-   public void setZoom(double zoom)
+-   {
++    /**
++     * @param zoom  */
++    public void setZoom(double zoom) {
+         tlhc_x = (int)(zoom*tlhc_x);
+         tlhc_y = (int)(zoom*tlhc_y);
+         brhc_y = (int)(zoom*brhc_y);
+         brhc_x = (int)(zoom*brhc_x);
+    }
+-   public int getDimensionX() { return brhc_x-tlhc_x;}
+-   public int getDimensionY() { return brhc_y-tlhc_y;}
++    public int getDimensionX() {
++        return brhc_x-tlhc_x;
++    }
++    public int getDimensionY() {
++        return brhc_y-tlhc_y;
++    }
++    
++    public boolean equals(Object  o) {
++        if ( o instanceof DisplayArea) {
++            DisplayArea displayedArea=(DisplayArea) o;
++            
++            if (displayedArea.tlhc_x==tlhc_x &&displayedArea.tlhc_y==tlhc_y
++            &&displayedArea.brhc_x==brhc_x&&displayedArea.brhc_y==brhc_y){
++                return true;
++            } else {
++                return false;
++            }
++        } else {
++            throw new ClassCastException();
++        }
++    }
++    
++    public int getTlhcX() {
++        return tlhc_x;
++    }
++    public int getTlhcY() {
++        return tlhc_y;
++    }
++    public int getBrhcX() {
++        return brhc_x;
++    }
++    public int getBrhcY() {
++        return brhc_y;
++    }
++    
+ }
+ /*
+  *  CVS Log
+  *  $Log: DisplayArea.java,v $
++ *  Revision 1.2  2003/09/08 10:17:26  kleber
++ *  Bugfix: The Displayed Area is defined after the spatial transformation.
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:30  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/viewer/presentation/DisplayAreaTest.java dsgui360/tkgui/viewer/presentation/DisplayAreaTest.java
+--- dsgui351/tkgui/viewer/presentation/DisplayAreaTest.java	1970-01-01 01:00:00.000000000 +0100
++++ dsgui360/tkgui/viewer/presentation/DisplayAreaTest.java	2009-01-07 17:49:32.633512000 +0100
+@@ -0,0 +1,110 @@
++/*
++ *
++ *  Copyright (C) 1999, Institute for MicroTherapy
++ *
++ *  This software and supporting documentation were developed by
++ *
++ *    University of Witten/Herdecke
++ *    Department of Radiology and MicroTherapy
++ *    Institute for MicroTherapy
++ *    Medical computer science
++ *
++ *    Universitaetsstrasse 142
++ *    44799 Bochum, Germany
++ *
++ *    http://www.microtherapy.de/go/cs
++ *    mailto:computer.science at microtherapy.de
++ *
++ *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND THE INSTITUTE MAKES  NO
++ *  WARRANTY REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY
++ *  OR FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES
++ *  OR ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY
++ *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
++ *
++ *
++ *  Author :      $Author: kleber $
++ *  Last update : $Date: 2001/06/06 10:32:30 $
++ *  Revision :    $Revision: 1.1.1.1 $
++ *  State:        $State: Exp $
++ */
++package viewer.presentation;
++
++import junit.framework.*;
++
++import java.awt.*; // list of common used packages
++import java.awt.event.*;
++
++import java.io.*;
++import java.io.ByteArrayInputStream;
++
++import java.util.*;
++
++import javax.swing.*;
++
++
++/**
++ *  JUnit TestSuite for SimpleTest
++ *  <BR>
++ *     Start main to run testcases or
++ *      execute junit.swingui.TestRunner.run( SimpleTest.class )
++ *      to execute visual test.
++ *
++ *
++ * <DL>
++ *        <DT><B>Revision:</B></DT>
++ *        <DD>$Revision: 1.2 $</DD>
++ *        <DT><B>Date:</B></DT>
++ *        <DD>$Date: 2002/11/29 17:31:40 $</DD>
++ * </DL>
++ *
++ * @author  NAME
++ * @version $Revision: 1.2 $
++ */
++public class DisplayAreaTest extends TestCase {
++    //////////////////////////////////////////
++    //  F I X T U T R E  T E S T   S E T S
++    //  defines the test-sets
++    //  used by every TestCase
++    //////////////////////////////////////////
++    //  TestSet-Data
++    //  TestObject my_test_object_a = null;
++    //  TestObject my_test_object_b = null;
++    public DisplayAreaTest(java.lang.String testName) {
++        super(testName);
++    }
++    
++    /**
++     *  initializes the testset.
++     *  This method is being executed before
++     *  any TestCase (testMethod) is being called.
++     */
++    public void setUp() {
++    }
++    
++    /**
++     *  Deinitializes the testset.
++     *  This method is being executed before
++     *  any TestCase (testMethod) is being called.
++     */
++    public void tearDown() {
++        // my_test_object_a.dispose();
++        // my_test_object_b.dispose();
++    }
++    
++    public static void main(java.lang.String[] args) {
++        junit.textui.TestRunner.run(suite());
++    }
++    
++    public static Test suite() {
++        TestSuite suite = new TestSuite(DisplayAreaTest.class);
++        return suite;
++    }
++    
++ 
++}
++
++
++/*
++ * $Log:  $
++ 
++ */
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/viewer/presentation/PresentationStateGraphicObject.java dsgui360/tkgui/viewer/presentation/PresentationStateGraphicObject.java
+--- dsgui351/tkgui/viewer/presentation/PresentationStateGraphicObject.java	2009-01-07 17:49:27.664884000 +0100
++++ dsgui360/tkgui/viewer/presentation/PresentationStateGraphicObject.java	2009-01-07 17:49:32.595533000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:30 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 10:15:38 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ 
+@@ -52,8 +52,7 @@
+  * @see PresentationStateLayerObject
+  * @see J2Ci.jDVPSGraphicObject
+  */
+-public class PresentationStateGraphicObject extends PresentationStateAnnotationObject
+-{
++public class PresentationStateGraphicObject extends PresentationStateAnnotationObject {
+     
+     
+     /**
+@@ -81,8 +80,7 @@
+     * 
+     * @since 30.04.1999
+     */
+-    private PresentationStateGraphicObject()
+-    {
++    private PresentationStateGraphicObject() {
+         super();
+ 	            
+     }
+@@ -108,8 +106,7 @@
+                                             int annotationUnits, 
+                                             boolean isFilled,
+                                             Dimension screenSize,
+-                                            AffineTransform aff)
+-    {
++    AffineTransform aff) {
+         this();
+         this.index = index;
+         this.graphicObject = graphicObject;
+@@ -119,11 +116,9 @@
+         graphicObject.setFilled(isFilled);
+         graphicObject.setGraphicType(type);
+         
+-        if (annotationUnits == 1) 
+-        {
++        if (annotationUnits == 1) {
+             Point2D.Float point = new Point2D.Float();
+-            for (int i = 0; i < pointList.length/2;i++)
+-            {
++            for (int i = 0; i < pointList.length/2;i++) {
+                 aff.transform( new Point2D.Float(pointList[2*i]-1,pointList[2*i+1]-1),point);
+                 pointList[2*i] = point.x/screenSize.width;
+                 pointList[2*i+1] = point.y/screenSize.height;
+@@ -143,8 +138,7 @@
+     * @param index Contains the index of the PresentationStateGraphicObject.
+     * @since 30.04.1999
+     */
+-    public PresentationStateGraphicObject(jDVPSGraphicObject graphicObject, DisplayArea da,int index)
+-    {
++    public PresentationStateGraphicObject(jDVPSGraphicObject graphicObject, DisplayArea da,int index) {
+        this();
+        this.da = da;
+        this.index = index;
+@@ -161,8 +155,7 @@
+     * @since 30.04.1999
+     */
+     
+-    public boolean isClosed()
+-    {
++    public boolean isClosed() {
+         if (getGraphicType() == jDVPSGraphicType.DVPST_ellipse) return true;
+         if (getGraphicType() == jDVPSGraphicType.DVPST_circle) return true;
+         //if (getGraphicType() == jDVPSGraphicType.DVPST_interpolated) return false;
+@@ -181,8 +174,7 @@
+     * @param point Stop moving point.
+     * @since 30.04.1999
+     */
+-    public void moveTo(Point2D.Float moveAnn,Point2D.Float point )
+-    {
++    public void moveTo(Point2D.Float moveAnn,Point2D.Float point ) {
+         
+        
+         float[] newPixels = new float[getNumberOfPoints()*2];
+@@ -191,15 +183,13 @@
+         Point2D.Float translatedPoint = new Point2D.Float();
+         
+         //image relative
+-        if (getAnnotationUnits() == 0)
+-        {
++        if (getAnnotationUnits() == 0) {
+             translatedPoint1 = getInverseTransformedPoint(moveAnn,aff);
+             translatedPoint2 = getInverseTransformedPoint(point,aff);
+             translatedPoint.x = translatedPoint2.x-translatedPoint1.x;
+             translatedPoint.y = translatedPoint2.y-translatedPoint1.y;
+             
+-            for (int i = 0; i < getNumberOfPoints(); i++)
+-            {
++            for (int i = 0; i < getNumberOfPoints(); i++) {
+                 newPixels[2*i]  = getPoint(i).x+translatedPoint.x;
+                 newPixels[2*i+1]  = getPoint(i).y +translatedPoint.y;
+             }
+@@ -208,14 +198,12 @@
+                 
+         }
+         //Display relative
+-        else
+-        {
++        else {
+             Point2D.Float diff = new Point2D.Float();
+             diff.x = point.x-moveAnn.x;
+             diff.y = point.y-moveAnn.y;
+           
+-           for (int i = 0; i < getNumberOfPoints(); i++)
+-           {
++            for (int i = 0; i < getNumberOfPoints(); i++) {
+              newPixels[2*i]  = getPoint(i).x+diff.x/screenSize.width;
+              newPixels[2*i+1]  =getPoint(i).y+ diff.y/screenSize.height;
+              
+@@ -236,8 +224,7 @@
+     * @param The new screensize of the annotation.
+     * @since 30.04.1999
+     */
+-    public void setScreenSize(Dimension screenSize)
+-    {
++    public void setScreenSize(Dimension screenSize) {
+         this.screenSize = screenSize;
+         if (getAnnotationUnits() ==jDVPSannotationUnit.DVPSA_display) if (screenSize!= null)buildShape();
+         
+@@ -248,8 +235,7 @@
+     * 
+     * @since 30.04.1999
+     */
+-    public void buildShape()
+-    {   
++    public void buildShape() {
+        
+        //Contructs Polyline
+        if (getGraphicType() == jDVPSGraphicType.DVPST_polyline) thisShape = buildPolyline();
+@@ -276,16 +262,13 @@
+     * @param aff Contains the applying transformation.
+     * @since 30.04.1999
+     */
+-    public  void draw(Graphics2D g2,AffineTransform aff, boolean scale)
+-    {
++    public  void draw(Graphics2D g2,AffineTransform aff, boolean scale) {
+         
+         System.out.println(getInfo());
+         this.aff = aff;
+-        if ((g2!=null) && (thisShape!= null))
+-        {
++        if ((g2!=null) && (thisShape!= null)) {
+             //System.out.println("**********draw Image Rel*************************");
+-            if (getAnnotationUnits() ==0) 
+-            {
++            if (getAnnotationUnits() ==0) {
+                 
+                 g2.setTransform(aff);
+                 g2.draw((thisShape));
+@@ -293,8 +276,7 @@
+                 if ((isfilled()&& isClosed())||getGraphicType() == jDVPSGraphicType.DVPST_point)  g2.fill(thisShape);
+                 if (!isActive())  drawBounding(g2,aff);
+             }
+-            else
+-            {
++            else {
+                 //System.out.println("**********draw Display rel*************************");
+                 g2.setTransform(new AffineTransform());
+                    // g2.setStroke(graphicStroke);
+@@ -304,20 +286,17 @@
+             }
+         }
+     }
+-    public  void convertDisplayedAreas(float offsetX, float offsetY,float transX, float transY)
+-    {
++    public  void convertDisplayedAreas(float offsetX, float offsetY,float transX, float transY) {
+         System.out.println("transY: "+transY);
+         System.out.println("transX: "+transX);
+         System.out.println("offsetY: "+offsetY);
+         System.out.println("offsetX: "+offsetX);
+         
+-        if (getAnnotationUnits() ==jDVPSannotationUnit.DVPSA_display) 
+-        {
++        if (getAnnotationUnits() ==jDVPSannotationUnit.DVPSA_display) {
+             int number = getNumberOfPoints();
+             float[] points = new float[number*2];
+             Point2D.Float p = new Point2D.Float();
+-            for (int i = 0; i< number; i++)
+-            {
++            for (int i = 0; i< number; i++) {
+                 p = getPoint(i);
+                 System.out.println("p: "+p);
+                 
+@@ -339,15 +318,12 @@
+     * @param aff Contains the applying transformation.
+     * @since 30.04.1999
+     */
+-    public void drawBounding(Graphics2D g2,AffineTransform aff)
+-    {
++    public void drawBounding(Graphics2D g2,AffineTransform aff) {
+         Rectangle2D boundingRect;
+-        if (getAnnotationUnits()==0)
+-        {
++        if (getAnnotationUnits()==0) {
+             boundingRect = aff.createTransformedShape(thisShape.getBounds2D()).getBounds2D();
+         }
+-        else
+-        {
++        else {
+             boundingRect = thisShape.getBounds2D();
+             
+         }
+@@ -369,8 +345,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPSGraphicObject#isFilled
+     */
+-    public boolean isfilled()
+-    {
++    public boolean isfilled() {
+         return graphicObject.isFilled();
+     }
+     
+@@ -382,8 +357,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPSGraphicObject#getAnnotationUnits
+     */
+-    public int getAnnotationUnits()
+-    {
++    public int getAnnotationUnits() {
+         return graphicObject.getAnnotationUnits();
+     }
+     
+@@ -395,8 +369,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPSGraphicObject#getGraphicType
+     */
+-    int getGraphicType()
+-    {
++    int getGraphicType() {
+         return graphicObject.getGraphicType();
+     }
+     
+@@ -408,8 +381,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPSGraphicObject#getPoint
+     */
+-    Point2D.Float getPoint(int index)
+-    {
++    Point2D.Float getPoint(int index) {
+         jDoubleByRef x = new jDoubleByRef();
+         jDoubleByRef y  = new jDoubleByRef();
+         graphicObject.getPoint(index,x,y);
+@@ -423,8 +395,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPSGraphicObject#getPoint
+     */
+-    Point2D.Double getPointDouble(int index)
+-    {
++    Point2D.Double getPointDouble(int index) {
+         jDoubleByRef x = new jDoubleByRef();
+         jDoubleByRef y  = new jDoubleByRef();
+         graphicObject.getPoint(index,x,y);
+@@ -438,8 +409,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPSGraphicObject#getNumberOfPoints
+     */
+-    int getNumberOfPoints()
+-    {
++    int getNumberOfPoints() {
+         return graphicObject.getNumberOfPoints();
+     }
+     
+@@ -450,20 +420,17 @@
+     * @return The shape of the annotation.
+     * @since 30.04.1999
+     */
+-    Shape buildPolyline()
+-    {
++    Shape buildPolyline() {
+         //Shape object
+         GeneralPath generalPath= new GeneralPath();
+                
+         //Image realtive annotation
+-        if ( getAnnotationUnits() == 0)
+-        {
++        if ( getAnnotationUnits() == 0) {
+             generalPath.moveTo((getPoint(0).x-1), (getPoint(0).y-1));
+             for (int i = 1; i< getNumberOfPoints(); i++) generalPath.lineTo(getPoint(i).x-1, getPoint(i).y-1);
+         }
+         //Display realtive annotation
+-        else
+-        {
++        else {
+             generalPath.moveTo(((getPoint(0).x)*(screenSize.width)),(getPoint(0).y*screenSize.height));
+             for (int i = 1; i< getNumberOfPoints(); i++) generalPath.lineTo(getPoint(i).x*screenSize.width, getPoint(i).y*screenSize.height);
+          
+@@ -478,18 +445,15 @@
+     * @return The shape of the annotation.
+     * @since 30.04.1999
+     */
+-    Shape buildInterpolated()
+-    {
++    Shape buildInterpolated() {
+         GeneralPath generalPath= null;
+                
+         //Image realtive annotation
+-        if ( getAnnotationUnits() == 0)
+-        {
++        if ( getAnnotationUnits() == 0) {
+             int size = getNumberOfPoints();
+             Point2D.Double[] pts = new Point2D.Double[size];
+             Point2D.Double p;
+-            for (int i = 0; i< size; i++) 
+-            {
++            for (int i = 0; i< size; i++) {
+                 p = getPointDouble(i);
+                 pts[i] = new Point2D.Double(p.x-1,p.y-1);
+             }
+@@ -498,14 +462,12 @@
+ 
+         }
+         //Display realtive annotation
+-        else
+-        {
++        else {
+             
+             int size = getNumberOfPoints();
+             Point2D.Double[] pts = new Point2D.Double[size];
+             Point2D.Double p;
+-            for (int i = 0; i< size; i++) 
+-            {
++            for (int i = 0; i< size; i++) {
+                 p = getPointDouble(i);
+                 pts[i] = new Point2D.Double(p.x*screenSize.width,p.y*screenSize.height);
+             }
+@@ -524,62 +486,97 @@
+     * @return The shape of the annotation.
+     * @since 30.04.1999
+     */
+-    Shape buildEllipse()
+-    {
++    Shape buildEllipse() {
++        System.out.println("zzzzz");
+         //Shape object
+         Ellipse2D.Float ellipse;
+         
+         //TLHC of the circle
+-        float leftx;
+-        float lefty;
++        float majMinX;
++        float majMinY;
++        float minMinX;
++        float minMinY;
+         
+-        //width of the ellipse
+-        float width;
++        //Calculates letfx
++        if (getPoint(0).x< getPoint(1).x) {
++            majMinX = getPoint(0).x  ;
++        }
++        else {
++            majMinX = getPoint(1).x ;
++        }
++        
++        //calculates lefty
++        if (getPoint(0).y< getPoint(1).y) {
++            majMinY = getPoint(0).y;
++        }
++        else {
++            majMinY = getPoint(1).y;
++        }
++        //Calculates letfx
++        if (getPoint(2).x< getPoint(3).x) {
++            minMinX = getPoint(2).x  ;
++        }
++        else {
++            minMinX = getPoint(3).x ;
++        }
++        
++        //calculates lefty
++        if (getPoint(2).y< getPoint(3).y) {
++            minMinY = getPoint(2).y;
++        }
++        else {
++            minMinY = getPoint(3).y;
++        }
+         
+-        //height of the ellipse
++        float leftx;
++        float lefty;
+         float height;
++        float width;
++        if (minMinY<majMinY) {
+         
+         height =    Math.abs(getPoint(0).x-getPoint(1).x);
+-        
+         width=      Math.abs(getPoint(2).y-getPoint(3).y);
++            leftx=majMinX;
++            lefty=minMinY;
++            /*
++              System.err.println("getPoint(0)" +getPoint(0));
++            System.err.println("getPoint(1)" +getPoint(1));
++            System.err.println("getPoint(2)" +getPoint(2));
++            System.err.println("getPoint(3)" +getPoint(3));
++            System.err.println("11 height "+ height+"; width: " +width+", leftx" +leftx+", leftx: " +lefty);
++             */
++        } else {
+         
+         
+-        
+-        //Calculates letfx
+-        if (getPoint(0).x< getPoint(1).x) 
+-        {
+-            leftx = getPoint(0).x  ;
+-        }
+-        else 
+-        {
+-            leftx = getPoint(1).x ;
++            width =    Math.abs(getPoint(0).y-getPoint(1).y);
++            height=      Math.abs(getPoint(2).x-getPoint(3).x);
++            leftx=minMinX;
++            lefty=majMinY;
++            /*
++            System.err.println("getPoint(0)" +getPoint(0));
++            System.err.println("getPoint(1)" +getPoint(1));
++            System.err.println("getPoint(2)" +getPoint(2));
++            System.err.println("getPoint(3)" +getPoint(3));
++            System.err.println("11 height "+ height+"; width: " +width+", leftx" +leftx+", leftx: " +lefty);
++             */
+         }  
+         
+-        //calculates lefty
+-        if (getPoint(2).y< getPoint(3).y)
+-        {   
+-            lefty = getPoint(2).y;
+-        }
+-        else 
+-        {
+-            lefty = getPoint(3).y;
+-        }
+            
+         
+-        if ( getAnnotationUnits() == 0)
+-        {
++        
++        if ( getAnnotationUnits() == 0) {
+            
+            ellipse =  new Ellipse2D.Float(leftx-1,lefty-1,height-1,width-1);
+         }
+-        else
+-        {
++        else {
+            
+            ellipse =  new Ellipse2D.Float(  leftx*screenSize.width,
+                                             lefty*screenSize.height,
+                                             height*screenSize.width,
+                                             width*screenSize.height);
+-          // System.out.println("Ellipse:" +leftx+ ", " +screenSize.toString());
++             System.out.println("Ellipse:" +leftx+ ", " +screenSize.toString());
+         }   
++         
+         return ellipse;
+     }
+     
+@@ -590,8 +587,7 @@
+     * @return The shape of the annotation.
+     * @since 30.04.1999
+     */
+-    Shape buildCircle()
+-    {
++    Shape buildCircle() {
+         Ellipse2D.Float circle;
+         float leftx;
+         float lefty;
+@@ -600,15 +596,13 @@
+         Point2D.Float pointAtCirc;
+         
+         
+-        if ( getAnnotationUnits() == 0)
+-        {
++        if ( getAnnotationUnits() == 0) {
+             //System.out.println(" Image relative Annotation");
+             pointCenter = new Point2D.Float(getPoint(0).x-1f,getPoint(0).y-1f);
+             pointAtCirc = new Point2D.Float(getPoint(1).x-1f,getPoint(1).y-1f);
+             
+         }
+-        else
+-        {
++        else {
+             //System.out.println(" Display relative Annotation");
+             pointCenter = new Point2D.Float(getPoint(0).x*screenSize.width,getPoint(0).y*screenSize.height);
+             pointAtCirc = new Point2D.Float(getPoint(1).x*screenSize.width,getPoint(1).y*screenSize.height);
+@@ -634,8 +628,7 @@
+     * @return The shape of the annotation.
+     * @since 30.04.1999
+     */
+-    Shape buildPoint()
+-    {
++    Shape buildPoint() {
+        System.out.println("-----------------------------buildPoint");
+         Ellipse2D.Float circle;
+         float leftx;
+@@ -645,14 +638,12 @@
+         Point2D.Float pointAtCirc;
+         
+         
+-        if ( getAnnotationUnits() == 0)
+-        {
++        if ( getAnnotationUnits() == 0) {
+             //System.out.println(" Image relative Annotation");
+             pointCenter = new Point2D.Float(getPoint(0).x-1f,getPoint(0).y-1f);
+             
+         }
+-        else
+-        {
++        else {
+             //System.out.println(" Display relative Annotation");
+             pointCenter = new Point2D.Float(getPoint(0).x*screenSize.width,getPoint(0).y*screenSize.height);
+         
+@@ -677,8 +668,7 @@
+      * @return A String representing this object.
+      * @since 30.04.1999
+     */
+-    public String getListText()
+-    {
++    public String getListText() {
+         String returnString = new String();
+         if (getAnnotationUnits()== 0)returnString = returnString.concat("image rel. graphic:");
+         else returnString = returnString.concat("display rel. graphic: ");
+@@ -698,8 +688,7 @@
+     * @return A String representing this object
+     * @since 30.04.1999
+     */
+-    public String getInfo()
+-    {
++    public String getInfo() {
+         
+         String returnString;
+         
+@@ -710,8 +699,7 @@
+                                     "      getGraphicType: "+   getGraphicType() + "\n" );
+                                                 
+         //fill points
+-        for (int i = 0; i < getNumberOfPoints(); i++)
+-        {
++        for (int i = 0; i < getNumberOfPoints(); i++) {
+             returnString = returnString.concat("        Point " + i  + ": X = " + getPoint(i).getX() + ", Y = " + getPoint(i).getY()+"\n");
+         }                     
+         
+@@ -724,8 +712,7 @@
+     *
+     * @since 30.04.1999
+     */
+-    public void deleteAll()
+-    {
++    public void deleteAll() {
+         
+         graphicObject = null;
+         thisShape = null;
+@@ -738,8 +725,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPSGraphicObject#setFilled
+     */
+-    public void setFilled(boolean filled)
+-    {
++    public void setFilled(boolean filled) {
+         graphicObject.setFilled(filled);
+     }
+     
+@@ -750,10 +736,8 @@
+      * @return true if this object contains the specified point.
+      * @since 30.04.1999
+      */
+-    public boolean contains(Point2D.Float point)
+-    {
+-        if (getNumberOfPoints() <= 2)
+-        {
++    public boolean contains(Point2D.Float point) {
++        if (getNumberOfPoints() <= 2) {
+             Rectangle2D boundsRect;
+             boundsRect = thisShape.getBounds2D();
+             if (getAnnotationUnits() == 0) 
+@@ -772,15 +756,12 @@
+     * 
+     * @since 30.04.1999
+     */ 
+-    public void convert()
+-    {
++    public void convert() {
+         float[] newPixels = new float[getNumberOfPoints()*2];
+         Point2D.Float translatedPoint = new Point2D.Float();
+         //Convert image relative to display relative
+-        if (getAnnotationUnits() == 0)
+-        {
+-           for (int i = 0; i < getNumberOfPoints(); i++)
+-           {
++        if (getAnnotationUnits() == 0) {
++            for (int i = 0; i < getNumberOfPoints(); i++) {
+              aff.transform(new Point2D.Float(getPoint(i).x-1 ,getPoint(i).y-1),translatedPoint);
+              newPixels[2*i]  = translatedPoint.x/screenSize.width;
+              newPixels[2*i+1]  = translatedPoint.y/screenSize.height;
+@@ -791,12 +772,9 @@
+             graphicObject.setData(getNumberOfPoints(), newPixels, 1);
+         }
+         //Convert display relative to image relative.
+-        else
+-        {
+-           for (int i = 0; i < getNumberOfPoints(); i++)
+-           {
+-            try
+-            {   
++        else {
++            for (int i = 0; i < getNumberOfPoints(); i++) {
++                try {
+                 aff.inverseTransform(new Point2D.Float(getPoint(i).x*screenSize.width,getPoint(i).y*screenSize.height),translatedPoint);
+             }
+             catch(NoninvertibleTransformException e)
+@@ -818,6 +796,9 @@
+ /*
+  *  CVS Log
+  *  $Log: PresentationStateGraphicObject.java,v $
++ *  Revision 1.2  2003/09/08 10:15:38  kleber
++ *  Bugfix: The first two points of Ellipse are definesd as the major axis
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:30  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/viewer/presentation/PresentationStateGraphicsHandler.java dsgui360/tkgui/viewer/presentation/PresentationStateGraphicsHandler.java
+--- dsgui351/tkgui/viewer/presentation/PresentationStateGraphicsHandler.java	2009-01-07 17:49:27.670878000 +0100
++++ dsgui360/tkgui/viewer/presentation/PresentationStateGraphicsHandler.java	2009-01-07 17:49:32.601533000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:30 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 10:17:26 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ package viewer.presentation;
+@@ -43,8 +43,7 @@
+  * @author Klaus Kleber
+  * @since 30.04.1999
+  */
+-public class PresentationStateGraphicsHandler
+-{
++public class PresentationStateGraphicsHandler {
+     /**
+      * Toggle PS on/off. If true the Presentation State is visible, if only the image 
+      * without the Presentation State is visible.
+@@ -165,8 +164,7 @@
+      * @since 30.04.1999
+      * @see J2Ci.jDVInterface
+      */
+-    public PresentationStateGraphicsHandler(jDVInterface dvi)
+-    {
++    public PresentationStateGraphicsHandler(jDVInterface dvi) {
+         this.dvi = dvi;
+     }
+     
+@@ -177,8 +175,7 @@
+      * @return The current active PresentationStateLayerObject.
+      * @since 30.04.1999 
+      */
+-    public PresentationStateLayerObject getCurrentLayerObject()
+-    {
++    public PresentationStateLayerObject getCurrentLayerObject() {
+         return ((PresentationStateLayerObject) ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(currentLayerIndex)).layerObjectAt(currentLayerObjectIndex));
+     }
+     
+@@ -188,8 +185,7 @@
+      * @param newIndex New currentLayerObjectIndex.
+      * @since 30.04.1999
+      */
+-    public void setCurrentLayerObjectIndex(int newIndex)
+-    {
++    public void setCurrentLayerObjectIndex(int newIndex) {
+         this.currentLayerObjectIndex = newIndex;
+     }
+     
+@@ -199,8 +195,7 @@
+      * @return The currentLayerObjectIndex.
+      * @since 30.04.1999
+      */
+-    public int getCurrentLayerObjectIndex()
+-    {
++    public int getCurrentLayerObjectIndex() {
+         return currentLayerObjectIndex;
+     }
+     
+@@ -211,8 +206,7 @@
+      * @return The current active PresentationStateGraphicLayer.
+      * @since 30.04.1999 
+      */
+-    public PresentationStateGraphicLayer getCurrentLayer()
+-    {
++    public PresentationStateGraphicLayer getCurrentLayer() {
+         return getLayerAtIndex(currentLayerIndex);
+     }
+     
+@@ -222,8 +216,7 @@
+      * @param newIndex New currentLayerIndex.
+      * @since 30.04.1999
+      */
+-    public void setCurrentLayerIndex( int newIndex)
+-    {
++    public void setCurrentLayerIndex( int newIndex) {
+         currentLayerIndex = newIndex;
+         currentLayerObjectIndex= -1;
+     
+@@ -235,8 +228,7 @@
+      * @return The currentLayerObjectIndex.
+      * @since 30.04.1999
+      */
+-    public int getCurrentLayerIndex()
+-    {
++    public int getCurrentLayerIndex() {
+         return currentLayerIndex;
+     }
+     
+@@ -246,8 +238,7 @@
+     * @return Horizontal scaling factor of the image.
+     * @since 30.04.1999
+     */
+-    public double getScalingX()
+-    {
++    public double getScalingX() {
+         return scalingValueX*monitorScalingX;
+ 
+     }
+@@ -258,8 +249,7 @@
+     * @return Vertical scaling factor of the image.
+     * @since 30.04.1999
+     */
+-     public  double getScalingY()
+-    {
++    public  double getScalingY() {
+         return scalingValueY*monitorScalingY;
+     }
+     /**
+@@ -268,8 +258,7 @@
+     * @return Horizontal scaling factor of the image.
+     * @since 30.04.1999
+     */
+-    public double getScX()
+-    {
++    public double getScX() {
+         return scalingValueX;
+ 
+     }
+@@ -280,18 +269,15 @@
+     * @return Vertical scaling factor of the image.
+     * @since 30.04.1999
+     */
+-     public  double getScY()
+-    {
++    public  double getScY() {
+         return scalingValueY;
+     }
+    
+-    public double getMonitorScalingX()
+-    {
++    public double getMonitorScalingX() {
+         return monitorScalingX;
+     }
+     
+-    public double getMonitorScalingY()
+-    {
++    public double getMonitorScalingY() {
+         return monitorScalingY;
+     }
+     /**
+@@ -301,8 +287,7 @@
+     * @return Horizontal scaling factor after the rotation.
+     * @since 30.04.1999
+     */
+-    public double getCurrentScalingX()
+-    {
++    public double getCurrentScalingX() {
+         if ((getRotation() == 0) ||(getRotation() ==2))return scalingValueX*monitorScalingX;
+         else return scalingValueY*monitorScalingX;
+     }
+@@ -314,8 +299,7 @@
+     * @return Vertical scaling factor after  rotation.
+     * @since 30.04.1999
+     */
+-    public double getCurrentScalingY()
+-    {
++    public double getCurrentScalingY() {
+         if ((getRotation() == 0) ||(getRotation() ==2))return scalingValueY*monitorScalingY;
+         else return scalingValueX*monitorScalingY;
+     }
+@@ -328,8 +312,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public int getImageHeight()
+-    {
++    public int getImageHeight() {
+         jIntByRef height = new jIntByRef();
+         ps.getImageHeight(height);
+         return height.value;      
+@@ -342,8 +325,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public double getDisplayedAreaPresentationPixelMagnificationRatio()
+-    {
++    public double getDisplayedAreaPresentationPixelMagnificationRatio() {
+         jDoubleByRef ratio = new jDoubleByRef();
+         ps.getDisplayedAreaPresentationPixelMagnificationRatio(ratio);
+         return ratio.value;      
+@@ -356,8 +338,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public double getDisplayedAreaPresentationPixelAspectRatio()
+-    {
++    public double getDisplayedAreaPresentationPixelAspectRatio() {
+         double i = ps.getDisplayedAreaPresentationPixelAspectRatio();
+         if (i<=0) i = 1;
+         return i;
+@@ -369,8 +350,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public double getDisplayedAreaPresentationPixelSpacingX()
+-    {
++    public double getDisplayedAreaPresentationPixelSpacingX() {
+         jDoubleByRef x = new jDoubleByRef();
+         jDoubleByRef y = new jDoubleByRef();
+         ps.getDisplayedAreaPresentationPixelSpacing(x, y);
+@@ -380,8 +360,7 @@
+         
+         
+     }
+-    public boolean haveDisplayedAreaPresentationPixelSpacing()
+-    {
++    public boolean haveDisplayedAreaPresentationPixelSpacing() {
+         jDoubleByRef x = new jDoubleByRef();
+         jDoubleByRef y = new jDoubleByRef();
+         int status = ps.getDisplayedAreaPresentationPixelSpacing(x, y);
+@@ -396,8 +375,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public double getDisplayedAreaPresentationPixelSpacingY()
+-    {
++    public double getDisplayedAreaPresentationPixelSpacingY() {
+         jDoubleByRef x = new jDoubleByRef();
+         jDoubleByRef y = new jDoubleByRef();
+         ps.getDisplayedAreaPresentationPixelSpacing(x, y);
+@@ -414,8 +392,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public int getImageWidth()
+-    {
++    public int getImageWidth() {
+         jIntByRef width = new jIntByRef();
+         ps.getImageWidth(width);
+         return width.value;      
+@@ -429,8 +406,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public int getCurrentImageHeight()
+-    {
++    public int getCurrentImageHeight() {
+         if ((getRotation() == 0) ||(getRotation() ==2))return  getImageHeight();
+         else return getImageWidth();
+         
+@@ -444,8 +420,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public int getCurrentImageWidth()
+-    {
++    public int getCurrentImageWidth() {
+         if ((getRotation() == 0) ||(getRotation() ==2))return  getImageWidth();
+         else return  getImageHeight();
+     }
+@@ -459,8 +434,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public void buildScaling()
+-    {
++    public void buildScaling() {
+         jDoubleByRef xValue = new jDoubleByRef();
+         jDoubleByRef yValue = new jDoubleByRef();
+         monitorScalingX = 1d;
+@@ -475,46 +449,35 @@
+         if (xValue.value <= 0) xValue.value = 1;
+         if (yValue.value <= 0) yValue.value = 1;
+         
+-        if (status ==jE_Condition.EC_Normal)
+-        {
+-            if (ps.getDisplayedAreaPresentationSizeMode() == jDVPSPresentationSizeMode.DVPSD_trueSize)
+-            {
++        if (status ==jE_Condition.EC_Normal) {
++            if (ps.getDisplayedAreaPresentationSizeMode() == jDVPSPresentationSizeMode.DVPSD_trueSize) {
+                     monitorScalingX= xValue.value/trueSizeX;
+                     monitorScalingY = yValue.value/trueSizeY;
+             }
+-            else
+-            {
+-                if (xValue.value > yValue.value)
+-                {
++            else {
++                if (xValue.value > yValue.value) {
+                     scalingValueX = yValue.value/xValue.value;
+                     scalingValueY = 1d;
+                 }
+-                else
+-                {
++                else {
+                     scalingValueY = xValue.value/yValue.value;
+                     scalingValueX = 1d;
+                     
+                 }
+             }
+         }
+-        else
+-        {
++        else {
+             double aspectRatio = ps.getDisplayedAreaPresentationPixelAspectRatio();
+-            if (aspectRatio >= 1d) 
+-            {
++            if (aspectRatio >= 1d) {
+                 scalingValueX = aspectRatio;
+                 scalingValueY =1d;
+             }
+-            else 
+-            {
++            else {
+                 scalingValueY = (1d/aspectRatio);
+                 scalingValueX = 1d;
+             }
+         }
+-                System.out.println("monitorScalingY: "+monitorScalingY);
+-                System.out.println("monitorScalingX: "+monitorScalingX);
+-                System.out.println("scalingValueX: "+scalingValueX);
+-                System.out.println("scalingValueY: "+scalingValueY);
++        
+         
+         //Gets the scalingValues
+         
+@@ -529,8 +492,7 @@
+     * @since 30.04.1999
+     * @see J2Ci.jDVPresentationState
+     */
+-    public void buildPresentationState()
+-    {
++    public void buildPresentationState() {
+         selectedLutIndex = -1;
+         
+         
+@@ -547,10 +509,10 @@
+         
+         //builds the layer list.
+         ps.sortGraphicLayers();
++        
+         DisplayArea da = getDisplayArea();
+         int numLayer = ps.getNumberOfGraphicLayers()-1;
+-        for (int i = 0; i <= numLayer; i++)
+-        {
++        for (int i = 0; i <= numLayer; i++) {
+             
+             listPresentationStateGraphicLayer.add(new PresentationStateGraphicLayer(i,ps,da,overlayList));
+         }    
+@@ -558,8 +520,7 @@
+         else currentLayerIndex = -1;
+         
+         //Init size in layer. Calculates dispaly relative annotation.
+-        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++)
+-        {
++        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++) {
+            
+             ((PresentationStateGraphicLayer)listPresentationStateGraphicLayer.elementAt(i)).setScreenSize(screenSize);
+         }    
+@@ -574,8 +535,7 @@
+      * @since 30.04.1999
+      * @see J2Ci.jDVPresentationState
+      */
+-    public double getPixelAspectRatio()
+-    {
++    public double getPixelAspectRatio() {
+         /*//Gets the scalingValues
+         jDoubleByRef aspectRatio = new jDoubleByRef();
+         ps.getImageAspectRatio(aspectRatio);
+@@ -590,8 +550,7 @@
+      * @since 30.04.1999
+      */
+      
+-    public void reset()
+-    {
++    public void reset() {
+         currentLayerObjectIndex   = -1;
+         selectedLutIndex = -1;
+     }
+@@ -601,29 +560,24 @@
+      * Draws the all PresentationStateGraphicLayer in listPresentationStateGraphicLayer and all
+      * Overlays defined in OverlayList after the sprecified transformation aff in the specified BufferedImage.
+      * All PresntationStateLayerObjects in each PresentationStateGraphicLayer will be drawn.
+-     
++     *
+      * @param bufferedImage Specifies the BufferedImage in which you can draw.
+      * @param aff Specifies the transformation which will be used for PresentationStateAnnotationObjects. 
+      * @param aff Specifies the transformation which will be used for PresentationStateOverlayObjects.
+      * @since 30.04.1999
+      * @see Viewer.Main.ScreenImageHandler#buildImageBuffer
+      */
+-    public void drawPaintStructure( BufferedImage bufferedImage,AffineTransform aff,AffineTransform overlayAff, boolean trueSize, int bits,boolean scale)
+-    {
++    public void drawPaintStructure( BufferedImage bufferedImage,AffineTransform aff,AffineTransform overlayAff, boolean trueSize, int bits,boolean scale) {
+         if (bufferedImage== null) return;
+         //Creating the graphics2D
+         Graphics2D g2 = (Graphics2D)bufferedImage.getGraphics();
+-        if (g2!= null)
+-        {
+-            try
+-            {
+-                for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++)
+-                {
++        if (g2!= null) {
++            try {
++                for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++) {
+                     ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(i)).draw(g2, aff, overlayAff,bits, scale);
+                 }    
+             }
+-            finally
+-            {
++            finally {
+                g2.dispose();
+             }
+         }
+@@ -640,15 +594,12 @@
+      * @see Viewer.Main.ScreenImageHandler#buildImageBuffer
+      */
+     
+-    public void containsObject(Point2D.Float point)
+-    {
++    public void containsObject(Point2D.Float point) {
+         
+         
+-        for (int i = listPresentationStateGraphicLayer.size()-1; i >= 0; i--)
+-        {
++        for (int i = listPresentationStateGraphicLayer.size()-1; i >= 0; i--) {
+             currentLayerObjectIndex = ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(i)).containsLayerObject(point);
+-            if (currentLayerObjectIndex != -1) 
+-            {
++            if (currentLayerObjectIndex != -1) {
+                 currentLayerIndex = i;
+                 return;
+             }        
+@@ -662,12 +613,10 @@
+     * @return A String representing this object
+     * @since 30.04.1999
+     */
+-    public String getInfo()
+-    {
++    public String getInfo() {
+          String returnString;
+          returnString = new String( "PresentationStateGraphicHandler" + "\n" );
+-         for(int i = 0; i <listPresentationStateGraphicLayer.size(); i++)
+-         {
++        for(int i = 0; i <listPresentationStateGraphicLayer.size(); i++) {
+             returnString= returnString.concat(new String("    Index: " +i +"\n"));
+             returnString=returnString.concat(((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(i)).getInfo());
+          }
+@@ -683,15 +632,13 @@
+     * @param screenSize New available size for displaying the image.
+     * @since 30.04.1999
+     */
+-    public void setScreenSize(Dimension screenSize)
+-    {
++    public void setScreenSize(Dimension screenSize) {
+         
+         this.screenSize = screenSize;
+         calculateFirstZoomValue();
+         
+         //Init size in layer. Calculates dispaly relative annotation.
+-        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++)
+-        {
++        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++) {
+             ((PresentationStateGraphicLayer)listPresentationStateGraphicLayer.elementAt(i)).setScreenSize(screenSize);
+         }    
+         
+@@ -703,37 +650,31 @@
+     *
+     * @since 30.04.1999
+     */
+-    public void calculateFirstZoomValue()
+-    {
++    public void calculateFirstZoomValue() {
+        DisplayArea da = getDisplayArea();
+-       if (ps.getDisplayedAreaPresentationSizeMode() ==jDVPSPresentationSizeMode.DVPSD_scaleToFit)
+-       {
++        if (ps.getDisplayedAreaPresentationSizeMode() ==jDVPSPresentationSizeMode.DVPSD_scaleToFit) {
+             
+             zoomValue = calculateZoomValue(da);
+        }
+-       else if (ps.getDisplayedAreaPresentationSizeMode() ==jDVPSPresentationSizeMode.DVPSD_magnify)
+-       {
++        else if (ps.getDisplayedAreaPresentationSizeMode() ==jDVPSPresentationSizeMode.DVPSD_magnify) {
+             jDoubleByRef zoom = new jDoubleByRef();
+             ps.getDisplayedAreaPresentationPixelMagnificationRatio(zoom);
+             zoomValue = zoom.value;
+        }
+-       else if (ps.getDisplayedAreaPresentationSizeMode() ==jDVPSPresentationSizeMode.DVPSD_trueSize)
+-       {
++        else if (ps.getDisplayedAreaPresentationSizeMode() ==jDVPSPresentationSizeMode.DVPSD_trueSize) {
+             
+             zoomValue =1d;      
+        }
+        //zoomValue = (Math.round(zoomValue*100d)/100d);
+        
+     }
+-    public void convertDisplayedAreas(DisplayArea imageArea, DisplayArea newArea)
+-    {
+-        float transX = ((float)(imageArea.brhc_x-imageArea.tlhc_x))/((float)(newArea.brhc_x-newArea.tlhc_x));
+-        float transY = ((float)(imageArea.brhc_y-imageArea.tlhc_y))/((float)(newArea.brhc_y-newArea.tlhc_y));
++    public void convertDisplayedAreas(DisplayArea imageArea, DisplayArea newArea) {
++        float transX = ((float)(imageArea.getBrhcX()-imageArea.getTlhcX()))/((float)(newArea.getBrhcX()-newArea.getTlhcX()));
++        float transY = ((float)(imageArea.getBrhcY()-imageArea.getTlhcY()))/((float)(newArea.getBrhcY()-newArea.getTlhcY()));
+         
+         // The display reletive annotationa must be applyed afte the spatial transformations
+         
+-        if ((getRotation() == 1) || (getRotation() ==3))
+-        {
++        if ((getRotation() == 1) || (getRotation() ==3)) {
+             float help = transX;
+             transX = transY;
+             transY = help;
+@@ -743,25 +684,21 @@
+         float offsetX = 0;
+         float offsetY = 0;
+         
+-        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++)
+-        {
++        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++) {
+             ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(i)).convertDisplayedAreas(offsetX, offsetY, transX, transY);
+         }    
+         
+     }
+     
+-    public double calculateZoomValue(DisplayArea da)
+-    {
++    public double calculateZoomValue(DisplayArea da) {
+             double zoom;
+-            if ((getRotation() == 0) ||(getRotation() ==2))
+-            {
+-                    zoom = Math.min(  (double) screenSize.width/((double)(da.brhc_x-da.tlhc_x+1)*getCurrentScalingX()),
+-                                        (double)screenSize.height/((double)(da.brhc_y-da.tlhc_y+1)*getCurrentScalingY()));
+-            }
+-            else
+-            {
+-                    zoom = Math.min(  (double) screenSize.width/((double)(da.brhc_y-da.tlhc_y+1)*getCurrentScalingX()),
+-                                        (double)screenSize.height/((double)(da.brhc_x-da.tlhc_x+1)*getCurrentScalingY()));
++        if ((getRotation() == 0) ||(getRotation() ==2)) {
++            zoom = Math.min(  (double) screenSize.width/((double)(da.getBrhcX()-da.getTlhcX()+1)*getCurrentScalingX()),
++            (double)screenSize.height/((double)(da.getBrhcY()-da.getTlhcY()+1)*getCurrentScalingY()));
++        }
++        else {
++            zoom = Math.min(  (double) screenSize.width/((double)(da.getBrhcY()-da.getTlhcY()+1)*getCurrentScalingX()),
++            (double)screenSize.height/((double)(da.getBrhcX()-da.getTlhcX()+1)*getCurrentScalingY()));
+             }
+                     return zoom;
+         
+@@ -772,8 +709,7 @@
+     * @return The Vector of  PresentationStateGraphicLayers.
+     * @since 30.04.1999
+     */
+-    public Vector getListPresentationStateGraphicLayer()
+-    {
++    public Vector getListPresentationStateGraphicLayer() {
+         return listPresentationStateGraphicLayer;
+     }
+     
+@@ -781,8 +717,7 @@
+     * Returns the PresentationStateGraphicLayer with the specified index
+     *
+     */
+-    public PresentationStateGraphicLayer getPresentationStateGraphicLayer(int index)
+-    {
++    public PresentationStateGraphicLayer getPresentationStateGraphicLayer(int index) {
+         return (PresentationStateGraphicLayer)listPresentationStateGraphicLayer.elementAt(index);
+     }
+     
+@@ -796,8 +731,7 @@
+     * @see J2Ci.jDVPresentationState
+     * @since 30.04.1999
+     */
+-    public String getPresentationCreatorsName()
+-    {
++    public String getPresentationCreatorsName() {
+         return ps.getPresentationCreatorsName();
+     }
+     
+@@ -810,8 +744,7 @@
+     * @see J2Ci.jDVPresentationState
+     * @since 30.04.1999
+     */
+-    public String getPresentationLabel()
+-    {
++    public String getPresentationLabel() {
+         return ps.getPresentationLabel();
+     }
+     
+@@ -824,8 +757,7 @@
+     * @see J2Ci.jDVPresentationState
+     * @since 30.04.1999
+     */
+-    public String getPresentationDescription()
+-    {
++    public String getPresentationDescription() {
+         return ps.getPresentationDescription();
+     }
+     
+@@ -841,14 +773,27 @@
+     * @see J2Ci.jDVPresentationState
+     * @since 30.04.1999
+     */
+-    public DisplayArea getDisplayArea()
+-    {
++    public DisplayArea getDisplayArea() {
++        jIntByRef tlhc_xValue = new jIntByRef();
++        jIntByRef tlhc_yValue = new jIntByRef();
++        jIntByRef brhc_yValue= new jIntByRef();
++        jIntByRef brhc_xValue= new jIntByRef();
++        
++        ps.getImageRelativeDisplayedArea(tlhc_xValue, tlhc_yValue, brhc_xValue, brhc_yValue);
++        return new DisplayArea(tlhc_xValue.value, tlhc_yValue.value, brhc_xValue.value, brhc_yValue.value);
++        
++    }
++    /**
++    
++     */
++    public DisplayArea getStandardDisplayedArea() {
+         jIntByRef tlhc_xValue = new jIntByRef();
+         jIntByRef tlhc_yValue = new jIntByRef();
+         jIntByRef brhc_yValue= new jIntByRef();
+         jIntByRef brhc_xValue= new jIntByRef();
+         
+-        ps.getDisplayedArea(tlhc_xValue, tlhc_yValue, brhc_xValue, brhc_yValue);
++        ps.getStandardDisplayedArea(tlhc_xValue, tlhc_yValue, brhc_xValue, brhc_yValue);
++     //  System.err.println("DDDD" +new DisplayArea(tlhc_xValue.value, tlhc_yValue.value, brhc_xValue.value, brhc_yValue.value));
+         return new DisplayArea(tlhc_xValue.value, tlhc_yValue.value, brhc_xValue.value, brhc_yValue.value);
+                             
+     }
+@@ -866,8 +811,7 @@
+     * @see J2Ci.jDVPresentationState
+     * @since 30.04.1999
+     */
+-    public boolean haveActiveVOIWindow()
+-    {
++    public boolean haveActiveVOIWindow() {
+         return ps.haveActiveVOIWindow();
+     }
+     
+@@ -882,8 +826,7 @@
+     * @since 30.04.1999
+     */
+     
+-    public boolean haveActiveVOILUT()
+-    {
++    public boolean haveActiveVOILUT() {
+         return ps.haveActiveVOILUT();
+     }
+     
+@@ -896,8 +839,7 @@
+     * @see J2Ci.jDVPresentationState
+     * @since 30.04.1999
+     */
+-    public String getCurrentVOIDescription()
+-    {
++    public String getCurrentVOIDescription() {
+         return ps.getCurrentVOIDescription();
+     }
+     
+@@ -911,8 +853,7 @@
+     * @see J2Ci.jDVPresentationState
+     * @since 30.04.1999
+     */
+-    public int getCurrentWindowCenter()
+-    {
++    public int getCurrentWindowCenter() {
+         jDoubleByRef help = new jDoubleByRef();
+         ps.getCurrentWindowCenter(help);
+         return (int) help.value;
+@@ -927,8 +868,7 @@
+     * @see J2Ci.jDVPresentationState
+     * @since 30.04.1999
+     */
+-    public int getCurrentWindowWidth()
+-    {
++    public int getCurrentWindowWidth() {
+         jDoubleByRef help = new jDoubleByRef();
+         ps.getCurrentWindowWidth(help);
+         return (int) help.value;
+@@ -945,8 +885,7 @@
+      * @since 30.04.1999
+     */
+     
+-    public void setRotation(int rot)
+-    {
++    public void setRotation(int rot) {
+         ps.setRotation(rot);
+     
+     }   
+@@ -960,12 +899,10 @@
+      * @see J2Ci.jDVPSRotationType
+      * @since 30.04.1999
+     */
+-    public void setRotation()
+-    {
++    public void setRotation() {
+ 	    if (ps.getRotation() <=2) ps.setRotation(ps.getRotation()+1);
+ 	    else ps.setRotation(0);
+-        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++)
+-        {
++        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++) {
+             ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(i)).setRotation();
+         }    
+         
+@@ -983,8 +920,7 @@
+      * @since 30.04.1999
+     */
+     
+-    public int getRotation()
+-    {
++    public int getRotation() {
+        return  ps.getRotation();
+     
+     }   
+@@ -1000,11 +936,11 @@
+      * @see J2Ci.jDVPSRotationType
+      * @since 30.04.1999
+     */
+-    public void setFlip()
+-    {
++    public void setFlip() {
++        DisplayArea da =getDisplayArea();
+         ps.setFlip(!ps.getFlip());
+-        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++)
+-        {
++        
++        for (int i = 0; i < listPresentationStateGraphicLayer.size(); i++) {
+             ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(i)).setFlip(getRotation());
+         }    
+         
+@@ -1021,36 +957,30 @@
+     * @see ShutterList
+     * @see PresentationStateGraphicObject
+     */
+-    public void newPaintObject(PaintObject newPaintObject,AffineTransform aff,int applyTo)
+-    {
++    public void newPaintObject(PaintObject newPaintObject,AffineTransform aff,int applyTo) {
+         //Inserts Lines an polylines
+         if ((newPaintObject instanceof Line2DObject)||
+-            (newPaintObject instanceof PolylineObject))
+-        {
++        (newPaintObject instanceof PolylineObject)) {
+        
+             float thePoints[] = new float[newPaintObject.getObjectPoints().size()*2];
+             
+             //Converts points
+-            for (int i = 0; i< newPaintObject.getObjectPoints().size(); i++)
+-            {
++            for (int i = 0; i< newPaintObject.getObjectPoints().size(); i++) {
+                     thePoints[2*i] = newPaintObject.getCopyPointAt(i).x+1f;
+                     thePoints[2*i+1] = newPaintObject.getCopyPointAt(i).y+1f;
+             }
+             //Insert shutter / polyline
+             if (!newPaintObject.isShutter)getCurrentLayer().add(new PresentationStateGraphicObject(ps.addGraphicObject(currentLayerIndex,applyTo),0,jDVPSGraphicType.DVPST_polyline,thePoints,newPaintObject.getType(),newPaintObject.filled,screenSize,aff));
+-            else
+-            {
++            else {
+                 shutterList.addPolygonalShutter(thePoints,newPaintObject.getObjectPoints().size());
+             }
+         }   
+-        if ((newPaintObject instanceof Point2DObject))
+-        {
++        if ((newPaintObject instanceof Point2DObject)) {
+        
+             float thePoints[] = new float[newPaintObject.getObjectPoints().size()*2];
+             
+             //Converts points
+-            for (int i = 0; i< newPaintObject.getObjectPoints().size(); i++)
+-            {
++            for (int i = 0; i< newPaintObject.getObjectPoints().size(); i++) {
+                     thePoints[2*i] = newPaintObject.getCopyPointAt(i).x+1f;
+                     thePoints[2*i+1] = newPaintObject.getCopyPointAt(i).y+1f;
+             }
+@@ -1058,18 +988,15 @@
+             getCurrentLayer().add(new PresentationStateGraphicObject(ps.addGraphicObject(currentLayerIndex,applyTo),0,jDVPSGraphicType.DVPST_point,thePoints,newPaintObject.getType(),newPaintObject.filled,screenSize,aff));
+         }   
+         //Rectangle
+-        else if (newPaintObject instanceof Rectangle2DObject)  
+-        {
++        else if (newPaintObject instanceof Rectangle2DObject) {
+             Point2D.Float point1 = newPaintObject.getPoint(0);
+             Point2D.Float point2 = newPaintObject.getPoint(1);
+-            if (point1.x >point2.x)
+-            {
++            if (point1.x >point2.x) {
+                 float change = point1.x;
+                 point1.x = point2.x;
+                 point2.x = change;
+             }
+-            if (point1.y >point2.y)
+-            {
++            if (point1.y >point2.y) {
+                 float change = point1.y;
+                 point1.y = point2.y;
+                 point2.y = change;
+@@ -1098,27 +1025,24 @@
+             
+             //Insert polyline/ shutter
+             if (!newPaintObject.isShutter)getCurrentLayer().add(new PresentationStateGraphicObject(ps.addGraphicObject(currentLayerIndex,applyTo),0,jDVPSGraphicType.DVPST_polyline,thePoints,newPaintObject.getType(),newPaintObject.filled,screenSize,aff));
+-            else
+-            {
++            else {
+                 
+                 shutterList.addRectangularShutter((int)(point1.x+1f),(int)(point2.x+1f),(int)(point1.y+1f),(int)(point2.y+1f));
+             }
+              
+         }
+         //Ellipse
+-        else if (newPaintObject instanceof Ellipse2DObject)  
+-        {
++        else if (newPaintObject instanceof Ellipse2DObject) {
++            //System.out.println("###");
+             float[] thePoints = new float[8];
+             Point2D.Float point1 = newPaintObject.getPoint(0);
+             Point2D.Float point2 = newPaintObject.getPoint(1);
+-            if (point1.x >point2.x)
+-            {
++            if (point1.x >point2.x) {
+                 float change = point1.x;
+                 point1.x = point2.x;
+                 point2.x = change;
+             }
+-            if (point1.y >point2.y)
+-            {
++            if (point1.y >point2.y) {
+                 float change = point1.y;
+                 point1.y = point2.y;
+                 point2.y = change;
+@@ -1128,31 +1052,44 @@
+             float y = point1.y;
+             float w = point2.x-x;
+             float h = point2.y-y;
++            //The first two points must be  the end points oft the major axis.
++            int index=0;
++            if (w<h) {
++               index=4;
++            }
++            thePoints[index++] = x+w+1f;
++           // System.err.println("index : "+(index-1) +", " +thePoints[index-1]);
++            thePoints[index++] = y+1f+h/2f;
++         // System.err.println("index : "+(index-1) +", " +thePoints[index-1]);
++            
++            thePoints[index++] = x+1f;
++          //  System.err.println("index : "+(index-1) +", " +thePoints[index-1]);
++            thePoints[index++] = y+1f+h/2f;
++          //   System.err.println("index : "+(index-1) +", " +thePoints[index-1]);
++            if (w<h) {
++               index=0;
++            }
++            
++            thePoints[index++] = x+w/2+1f;
++             //System.err.println("index : "+(index-1) +", " +thePoints[index-1]);
++            thePoints[index++] = y+1f;
++            //System.err.println("index : "+(index-1) +", " +thePoints[index-1]);
++            
++            thePoints[index++] = x+w/2+1f;
++            // System.err.println("index : "+(index-1) +", " +thePoints[index-1]);
++            thePoints[index++] = y+h+1f;
++             //System.err.println("index : "+(index-1) +", " +thePoints[index-1]);
+            
+-            thePoints[0] = x+w+1f; 
+-            thePoints[1] = y+1f+h/2f; 
+-            
+-            thePoints[2] = x+1f; 
+-            thePoints[3] = y+1f+h/2f; 
+-            
+-            
+-            thePoints[4] = x+w/2+1f; 
+-            thePoints[5] = y+1f; 
+-            
+-            thePoints[6] = x+1f; 
+-            thePoints[7] = y+h+1f; 
+             
+             getCurrentLayer().add(new PresentationStateGraphicObject(ps.addGraphicObject(currentLayerIndex,applyTo),0,jDVPSGraphicType.DVPST_ellipse,thePoints,newPaintObject.getType(),newPaintObject.filled,screenSize,aff));
+         }
+        //Circle
+-        else if (newPaintObject instanceof Circle2DObject)  
+-        {
++        else if (newPaintObject instanceof Circle2DObject) {
+             
+             Point2D.Float point1 = newPaintObject.getPoint(0);
+             Point2D.Float point2 = newPaintObject.getPoint(1);
+             
+-            if (!newPaintObject.isShutter)
+-            {
++            if (!newPaintObject.isShutter) {
+                 float[] thePoints = new float[4];
+                  
+                
+@@ -1163,19 +1100,16 @@
+                 thePoints[3] = point2.y+1f; 
+                 getCurrentLayer().add(new PresentationStateGraphicObject(ps.addGraphicObject(currentLayerIndex,applyTo),0,jDVPSGraphicType.DVPST_circle,thePoints,newPaintObject.getType(),newPaintObject.filled,screenSize,aff));
+             }
+-            else
+-            {
++            else {
+                 
+                 shutterList.addCircularShutter((int)(point1.x+1f),(int)(point1.y+1f),(int)point1.distance(point2));
+             }
+         }
+         //Interpolated.
+-        else if (newPaintObject instanceof InterpolatedObject)
+-        {
++        else if (newPaintObject instanceof InterpolatedObject) {
+             float thePoints[] = new float[newPaintObject.getObjectPoints().size()*2];
+             
+-            for (int i = 0; i< newPaintObject.getObjectPoints().size(); i++)
+-            {
++            for (int i = 0; i< newPaintObject.getObjectPoints().size(); i++) {
+                     thePoints[2*i] = newPaintObject.getCopyPointAt(i).x+1f;
+                     thePoints[2*i+1] = newPaintObject.getCopyPointAt(i).y+1f;
+             }
+@@ -1196,8 +1130,7 @@
+      * @since 30.04.1999
+     */
+     
+-    public void setNewPresentationState(Dimension screenSize)
+-    {        
++    public void setNewPresentationState(Dimension screenSize) {
+         if (havePresentationState) deleteAll();        
+         //int status = dvi.resetPresentationState();
+         buildPresentationState();        
+@@ -1209,8 +1142,7 @@
+      *
+      * @since 30.04.1999
+     */
+-    public void resetPresentationState()
+-    {
++    public void resetPresentationState() {
+         deleteAll();
+         int status = dvi.resetPresentationState();
+         buildPresentationState();
+@@ -1223,11 +1155,9 @@
+      *
+      * @since 30.04.1999
+     */
+-    public void deleteAll()
+-    {
++    public void deleteAll() {
+         
+-        for(int i = 0; i <listPresentationStateGraphicLayer.size(); i++)
+-        {           
++        for(int i = 0; i <listPresentationStateGraphicLayer.size(); i++) {
+            ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(0)).deleteAll();
+            listPresentationStateGraphicLayer.removeElementAt(0);           
+         }
+@@ -1250,8 +1180,7 @@
+      * @since 30.04.1999
+     */
+     
+-    public void deleteCurrentObject()
+-    {
++    public void deleteCurrentObject() {
+         if (currentLayerObjectIndex != -1)deleteObjectAtIndex(currentLayerObjectIndex);
+     }
+     
+@@ -1264,8 +1193,7 @@
+      *
+      * @since 30.04.1999
+     */
+-    public void deleteObjectAtIndex(int index)
+-    {
++    public void deleteObjectAtIndex(int index) {
+         ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(currentLayerIndex)).deleteObjectAt(index);
+         currentLayerObjectIndex = -1;
+     }
+@@ -1276,16 +1204,14 @@
+      * @param index The index of the deleting PresentationStateGraphicLayer 
+      * @since 30.04.1999
+     */
+-    public void deleteLayer(int index)
+-    {
++    public void deleteLayer(int index) {
+          //Delete layer
+          ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(index)).deleteAll();
+          listPresentationStateGraphicLayer.removeElementAt(index);
+          ps.removeGraphicLayer(index);        
+          
+          //Sets new indices for all PresentationStateGraphicLayer greater than the specified index  
+-         for (int i = index; i < listPresentationStateGraphicLayer.size(); i++)
+-         {
++        for (int i = index; i < listPresentationStateGraphicLayer.size(); i++) {
+             ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(i)).index = ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(i)).index-1;
+          }
+          
+@@ -1306,8 +1232,7 @@
+      * @see PresentationStateGraphicLayer
+      * @since 30.04.1999
+     */
+-    public void insertNewColorLayer(String label, String description, int r,int g, int b)
+-    {
++    public void insertNewColorLayer(String label, String description, int r,int g, int b) {
+         listPresentationStateGraphicLayer.add(new PresentationStateGraphicLayer(listPresentationStateGraphicLayer.size(),ps,label, description, r,g,b,overlayList));
+     }
+     
+@@ -1321,8 +1246,7 @@
+      * @see PresentationStateGraphicLayer
+      * @since 30.04.1999
+     */
+-    public void insertNewMonochromeLayer(String label, String description, float monochome)
+-    {
++    public void insertNewMonochromeLayer(String label, String description, float monochome) {
+         listPresentationStateGraphicLayer.add(new PresentationStateGraphicLayer(listPresentationStateGraphicLayer.size(),ps,label, description, monochome,overlayList));
+         
+     }
+@@ -1336,8 +1260,7 @@
+      * @see PresentationStateGraphicLayer
+      * @since 30.04.1999 
+      */
+-    public PresentationStateGraphicLayer getLayerAtIndex(int index)
+-    {
++    public PresentationStateGraphicLayer getLayerAtIndex(int index) {
+         if (index == -1) return null;
+         else return ((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(index));
+     }
+@@ -1350,8 +1273,7 @@
+      * @see PresentationStateGraphicLayer
+      * @since 30.04.1999 
+     */ 
+-    public Color getCurrentColor()
+-    {
++    public Color getCurrentColor() {
+         if (getCurrentLayer() == null) return Color.white;
+         else return getCurrentLayer().getColor(8);
+     }
+@@ -1379,8 +1301,7 @@
+                             boolean isAnchorVisible,
+                             int just, 
+                             int rot, 
+-                            int applyTo)
+-    {
++    int applyTo) {
+         jDVPSTextObject newText =ps.addTextObject(currentLayerIndex,applyTo);
+         
+         newText.setText(text);
+@@ -1404,19 +1325,16 @@
+      */
+     public void moveToLayer(    int newLayer,
+                                 int oldLayer, 
+-                                int objectIndex, int applyTo)
+-    {
++    int objectIndex, int applyTo) {
+         PresentationStateGraphicLayer oldPresentationStateGraphicLayer =((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(oldLayer));
+         PresentationStateGraphicLayer newPresentationStateGraphicLayer =((PresentationStateGraphicLayer) listPresentationStateGraphicLayer.elementAt(newLayer));
+         PresentationStateLayerObject moveObject = oldPresentationStateGraphicLayer.layerObjectAt(objectIndex);
+         
+         //move in c++ 
+-        if (moveObject instanceof PresentationStateTextObject)
+-        {
++        if (moveObject instanceof PresentationStateTextObject) {
+             ps.moveGraphicObject( oldLayer, moveObject.getIndex(),  newLayer, applyTo);
+         }
+-        if (moveObject instanceof PresentationStateGraphicObject)
+-        {
++        if (moveObject instanceof PresentationStateGraphicObject) {
+             ps.moveGraphicObject( oldLayer, moveObject.getIndex(),  newLayer,applyTo);
+         }
+         
+@@ -1431,8 +1349,7 @@
+      * @return The zoom value.
+      * @since 30.04.1999 
+      */
+-    public double getZoomValue()
+-    {
++    public double getZoomValue() {
+         return zoomValue;
+     }
+     
+@@ -1442,8 +1359,7 @@
+      * @param  zoomValue The new zoom value.
+      * @since 30.04.1999 
+      */
+-    public void setZoomValue(double zoomValue)
+-    {
++    public void setZoomValue(double zoomValue) {
+         this.zoomValue = zoomValue;
+     }
+     
+@@ -1453,8 +1369,7 @@
+      * 
+      * @since 30.04.1999 
+      */
+-    public void updatePresentationState()
+-    {
++    public void updatePresentationState() {
+         deleteAll();
+         boolean temp = enablePresentationState; // enable... wird in build..() überschrieben
+         buildPresentationState();
+@@ -1462,14 +1377,12 @@
+         setScreenSize(screenSize);
+     }
+     
+-    public void getPrintImageBuffer(TransformationConverter transConv)
+-    {
++    public void getPrintImageBuffer(TransformationConverter transConv) {
+         
+         //Loads Size of the bitmap
+         jIntByRef h = new jIntByRef();
+         jIntByRef w = new jIntByRef();
+-        if ( ps.getPrintBitmapWidthHeight(w,h)!= jE_Condition.EC_Normal)
+-        {
++        if ( ps.getPrintBitmapWidthHeight(w,h)!= jE_Condition.EC_Normal) {
+             JOptionPane.showMessageDialog(null,"Error: Can not determine bitmap size");
+             return ;
+         }
+@@ -1478,8 +1391,7 @@
+         short[] pix = new short[(int)ps.getPrintBitmapSize()/2];
+         
+         //Loads the print bitmap
+-        if (ps.getPrintBitmap(pix, ps.getPrintBitmapSize()) == jE_Condition.EC_Normal)
+-        {
++        if (ps.getPrintBitmap(pix, ps.getPrintBitmapSize()) == jE_Condition.EC_Normal) {
+             
+             BufferedImage printImage;
+             WritableRaster wr;
+@@ -1501,24 +1413,22 @@
+             Dimension saveScreen = screenSize;
+             
+             
+-            int width = da.brhc_x-da.tlhc_x;
+-            int height = da.brhc_y-da.tlhc_y;
++            int width = da.getBrhcX()-da.getTlhcX();
++            int height = da.getBrhcY()-da.getTlhcY();
+             
+             double        printZoom ;
+             int rot = ps.getRotation();
+             
+-            if ((rot ==1) ||(rot== 3))
+-            {
++            if ((rot ==1) ||(rot== 3)) {
+                 printZoom= (double)(h.value /width);
+                 setScreenSize(new Dimension(h.value, w.value));
+             }
+-            else
+-            {
++            else {
+             
+                 printZoom= (double)(w.value /width);
+                 setScreenSize(new Dimension(w.value, h.value));
+             }
+-            System.out.println("printZoom: "+printZoom);
++            System.err.println("printZoom: "+printZoom);
+             
+             //Loads transformations
+             AffineTransform aff = transConv.getPrintTransformation(printZoom);
+@@ -1535,25 +1445,22 @@
+             
+             setScreenSize(saveScreen);
+             
+-            if (dvi.saveGrayscaleHardcopyImage(pix, w.value, h.value, asRatio)== jE_Condition.EC_Normal)
+-            {
++            if (dvi.saveGrayscaleHardcopyImage(pix, w.value, h.value, asRatio)== jE_Condition.EC_Normal) {
+                 Controller.instance().firePrint(new PrintEvent(this,PrintEvent.ID_HC));
+             }
+-            else
+-            {
++            else {
+                 JOptionPane.showMessageDialog(null,"Error: Can not print image");
+                 
+             }
+         
+         }
+-        else
+-        {
++        else {
+             JOptionPane.showMessageDialog(null,"Error: Can not create print display");
+         }
+         
+         pix = null;
+         System.gc();
+-        System.out.println("end-print");
++        System.err.println("end-print");
+     }
+     
+     /** 
+@@ -1563,8 +1470,7 @@
+      * presentation state.    
+      * @param idx frame number in the range [1..getImageNumberOfFrames()]    
+     */
+-    public void selectImageFrameNumber(int idx)
+-    {
++    public void selectImageFrameNumber(int idx) {
+         if ((idx >= 1)&&(idx <= getImageNumberOfFrames()))
+             ps.selectImageFrameNumber(idx);
+     }
+@@ -1577,8 +1483,7 @@
+      * presentation state.    
+      * @param idx frame number in the range [1..getImageNumberOfFrames()]    
+     */
+-    public  int getSelectedImageFrameNumber()
+-    {
++    public  int getSelectedImageFrameNumber() {
+         return ps.getSelectedImageFrameNumber();
+         
+     }
+@@ -1587,11 +1492,9 @@
+     *  Selects the next frame of a multiframe image. 
+      *  @return Number of the selected frame
+      */
+-    public  int selectNextFrame()
+-    {
++    public  int selectNextFrame() {
+         
+-        if (getSelectedImageFrameNumber() < getImageNumberOfFrames())
+-        {
++        if (getSelectedImageFrameNumber() < getImageNumberOfFrames()) {
+             selectImageFrameNumber(getSelectedImageFrameNumber()+1);
+             return getSelectedImageFrameNumber()+1;
+         }
+@@ -1602,10 +1505,8 @@
+     *  Selects the next frame of a multiframe image. 
+      *  @return Number of the selected frame
+      */
+-    public  int selectPreviousFrame()
+-    {
+-        if (getSelectedImageFrameNumber() > 1)
+-        {
++    public  int selectPreviousFrame() {
++        if (getSelectedImageFrameNumber() > 1) {
+             selectImageFrameNumber(getSelectedImageFrameNumber()-1);
+             return getSelectedImageFrameNumber()-1;
+         }
+@@ -1616,8 +1517,7 @@
+     /**
+     * Returns the number of frames of the current image.
+     */
+-    public int getImageNumberOfFrames()
+-    {
++    public int getImageNumberOfFrames() {
+         jIntByRef num = new jIntByRef();
+         ps.getImageNumberOfFrames(num);
+         return num.value;
+@@ -1632,8 +1532,7 @@
+     * Gets the number of image references contained in the current presentation state.
+     *  @return number of image references, 0 if an error occurred.
+     */
+-    public int getNumberOfImages()
+-    {
++    public int getNumberOfImages() {
+         return dvi.getNumberOfImageReferences();
+     }
+     /** 
+@@ -1642,10 +1541,8 @@
+      *  This method acquires a database lock which must be explicitly freed by the user.
+      *  @param idx index of the image to be loaded getNumberOfImage();
+      */
+-    public  void selectImageNumber(int idx)
+-    {
+-        if ((idx >= 1)&&(idx <= getNumberOfImages()))
+-        {
++    public  void selectImageNumber(int idx) {
++        if ((idx >= 1)&&(idx <= getNumberOfImages())) {
+             dvi.loadReferencedImage(idx-1,true);
+             dvi.releaseDatabase();
+             Controller.instance().fireEvent(new UpdateBrowserEvent(this));
+@@ -1662,8 +1559,7 @@
+     *  Gets the index of the currently selected image.
+      *  @return index of the currently selected image, 0 if an error occurred
+      */
+-    public int getSelectedImageNumber()
+-    {
++    public int getSelectedImageNumber() {
+         return selectedImageNumber;
+     }
+     
+@@ -1673,11 +1569,9 @@
+     *  Selects the next frame of a multiframe image. 
+      *  @return Number of the selected frame
+      */
+-    public  int selectNextImage()
+-    {
++    public  int selectNextImage() {
+         
+-        if (getSelectedImageNumber() < getNumberOfImages())
+-        {
++        if (getSelectedImageNumber() < getNumberOfImages()) {
+             selectImageNumber(getSelectedImageNumber()+1);
+             return getSelectedImageNumber()+1;
+         }
+@@ -1688,10 +1582,8 @@
+     *  Selects the next frame of a multiframe image. 
+      *  @return Number of the selected frame
+      */
+-    public  int selectPreviousImage()
+-    {
+-        if (getSelectedImageNumber() > 1)
+-        {
++    public  int selectPreviousImage() {
++        if (getSelectedImageNumber() > 1) {
+             selectImageNumber(getSelectedImageNumber()-1);
+             return getSelectedImageNumber()-1;
+         }
+@@ -1705,6 +1597,9 @@
+ /*
+  *  CVS Log
+  *  $Log: PresentationStateGraphicsHandler.java,v $
++ *  Revision 1.2  2003/09/08 10:17:26  kleber
++ *  Bugfix: The Displayed Area is defined after the spatial transformation.
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:30  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS
+diff -N -x '*.dsw' -x '*.dsp' -u -w -b -B -w -r dsgui351/tkgui/viewer/presentation/TransformationConverter.java dsgui360/tkgui/viewer/presentation/TransformationConverter.java
+--- dsgui351/tkgui/viewer/presentation/TransformationConverter.java	2009-01-07 17:49:27.694854000 +0100
++++ dsgui360/tkgui/viewer/presentation/TransformationConverter.java	2009-01-07 17:49:32.629516000 +0100
+@@ -22,8 +22,8 @@
+  *  AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
+  *
+  *  Author :      $Author: kleber $
+- *  Last update : $Date: 2001/06/06 10:32:30 $
+- *  Revision :    $Revision: 1.1.1.1 $
++ *  Last update : $Date: 2003/09/08 10:17:26 $
++ *  Revision :    $Revision: 1.2 $
+  *  State:        $State: Exp $
+ */
+ 
+@@ -589,7 +589,7 @@
+         */
+         //sets the new display area to the c++ part.
+         System.out.println("drawInDeviceSpace -End1: " + applyTo);
+-        presentationStateGraphicsHandler.ps.setDisplayedArea(presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(), xTLHC, yTLHC, xBRHC, yBRHC, zoomValue, applyTo);
++        presentationStateGraphicsHandler.ps.setImageRelativeDisplayedArea(presentationStateGraphicsHandler.ps.getDisplayedAreaPresentationSizeMode(), xTLHC, yTLHC, xBRHC, yBRHC, zoomValue, applyTo);
+         System.out.println("drawInDeviceSpace -End: " );
+         
+         
+@@ -865,6 +865,9 @@
+ /*
+  *  CVS Log
+  *  $Log: TransformationConverter.java,v $
++ *  Revision 1.2  2003/09/08 10:17:26  kleber
++ *  Bugfix: The Displayed Area is defined after the spatial transformation.
++ *
+  *  Revision 1.1.1.1  2001/06/06 10:32:30  kleber
+  *  Init commit for DICOMscope 3.5
+  *  Create new CVS


Property changes on: trunk/packages/dicomscope/trunk/debian/patches/dsgui_351_360_changes.patch
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Modified: trunk/packages/dicomscope/trunk/debian/patches/series
===================================================================
--- trunk/packages/dicomscope/trunk/debian/patches/series	2009-01-07 12:08:28 UTC (rev 2918)
+++ trunk/packages/dicomscope/trunk/debian/patches/series	2009-01-07 17:27:31 UTC (rev 2919)
@@ -1,3 +1,4 @@
-dcmtk_350_354_changes.patch
+dsgui_351_360_changes.patch
 cmakelists.txt.patch
-dicomscope_defaultpackage.patch
+#dicomscope_defaultpackage.patch
+DVPresentationState.patch

Modified: trunk/packages/dicomscope/trunk/debian/rules
===================================================================
--- trunk/packages/dicomscope/trunk/debian/rules	2009-01-07 12:08:28 UTC (rev 2918)
+++ trunk/packages/dicomscope/trunk/debian/rules	2009-01-07 17:27:31 UTC (rev 2919)
@@ -52,6 +52,7 @@
 		-DDCMTK_dcmimgle_INCLUDE_DIR:PATH=/usr/include/dcmtk/dcmimgle \
 		-DDCMTK_dcmpstat_INCLUDE_DIR:PATH=/usr/include/dcmtk/dcmpstat \
 		-DDCMTK_dcmsr_INCLUDE_DIR:PATH=/usr/include/dcmtk/dcmsr \
+		-DDCMTK_dcmjpeg_INCLUDE_DIR:PATH=/usr/include/dcmtk/dcmjpeg \
 		-DDCMTK_ofstd_INCLUDE_DIR:PATH=/usr/include/dcmtk/ofstd
 
 	touch configure-stamp




More information about the debian-med-commit mailing list