You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by ni...@apache.org on 2006/07/14 11:18:48 UTC

svn commit: r421843 - in /jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf: model/Picture.java usermodel/PictureData.java usermodel/SlideShow.java

Author: nick
Date: Fri Jul 14 02:18:44 2006
New Revision: 421843

URL: http://svn.apache.org/viewvc?rev=421843&view=rev
Log:
Yegor's update from bug #39991 - better identification of what underlying picture data a picture object relates to

Modified:
    jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java
    jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java
    jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java

Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java
URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java?rev=421843&r1=421842&r2=421843&view=diff
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java Fri Jul 14 02:18:44 2006
@@ -153,10 +153,11 @@
         int idx = getPictureIndex()-1;
         EscherBSERecord bse = (EscherBSERecord)lst.get(idx);
         for ( int i = 0; i < pict.length; i++ ) {
-            if (Arrays.equals(bse.getUid(), pict[i].getUID())){
+			if (pict[i].getOffset() ==  bse.getOffset()){
                 return pict[i];
             }
         }
+		System.err.println("Warning - no picture found for our BSE offset " + bse.getOffset());
         return null;
     }
 

Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java
URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java?rev=421843&r1=421842&r2=421843&view=diff
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java Fri Jul 14 02:18:44 2006
@@ -49,6 +49,11 @@
 	*/
 	protected byte[] header;
 
+	/**
+	 * The offset to the picture in the stream
+	 */
+	protected int offset;
+
     public PictureData(){
         header = new byte[PictureData.HEADER_SIZE];
     }
@@ -76,6 +81,7 @@
 
 		// Save the picture data
 		pictdata = new byte[size];
+		this.offset = offset;
 		System.arraycopy(pictstream, startPos, pictdata, 0, pictdata.length);
 	}
 
@@ -162,6 +168,25 @@
     public byte[] getHeader(){
         return header;
     }
+
+	/**
+	 * File offset in the 'Pictures' stream
+	 *
+	 * @return offset in the 'Pictures' stream
+	 */
+	public int getOffset(){
+		return offset;
+	}
+
+	/**
+	 * Set offset of this picture in the 'Pictures' stream.
+	 * We need to set it when a new picture is created.
+	 *
+	 * @param offset in the 'Pictures' stream
+	 */
+	public void setOffset(int offset){
+		this.offset = offset;
+	}
 
     /**
      * Compute 16-byte checksum of this picture

Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java
URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java?rev=421843&r1=421842&r2=421843&view=diff
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java Fri Jul 14 02:18:44 2006
@@ -671,6 +671,7 @@
         pict.setUID(uid);
         pict.setData(data);
         pict.setType(format);
+		pict.setOffset(offset);
 
         _hslfSlideShow.addPicture(pict);
 



---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
Mailing List:    http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/