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/02/06 10:25:27 UTC
svn commit: r375232 - in
/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record:
Comment2000.java RecordTypes.java
Author: nick
Date: Mon Feb 6 01:25:24 2006
New Revision: 375232
URL: http://svn.apache.org/viewcvs?rev=375232&view=rev
Log:
Record level support for PPT 2000/XP comments (but not yet comment summaries or details)
Added:
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java
Modified:
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordTypes.java
Added: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java
URL: http://svn.apache.org/viewcvs/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java?rev=375232&view=auto
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java (added)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java Mon Feb 6 01:25:24 2006
@@ -0,0 +1,110 @@
+package org.apache.poi.hslf.record;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * This class represents a comment on a slide, in the format used by
+ * PPT 2000/XP/etc. (PPT 97 uses plain Escher Text Boxes for comments)
+ * @author Nick Burch
+ */
+public class Comment2000 extends RecordContainer {
+ private byte[] _header;
+ private static long _type = 12000;
+
+ // Links to our more interesting children
+ private CString authorRecord;
+ private CString authorInitialsRecord;
+ private CString commentRecord;
+ //private Comment2000Atom commentAtom;
+
+ /**
+ * Returns the Comment2000Atom of this Comment
+ */
+ //public Comment2000Atom getComment2000Atom() { return commentAtom; }
+
+ /**
+ * Get the Author of this comment
+ */
+ public String getAuthor() {
+ return authorRecord.getText();
+ }
+ /**
+ * Set the Author of this comment
+ */
+ public void setAuthor(String author) {
+ authorRecord.setText(author);
+ }
+
+ /**
+ * Get the Author's Initials of this comment
+ */
+ public String getAuthorInitials() {
+ return authorInitialsRecord.getText();
+ }
+ /**
+ * Set the Author's Initials of this comment
+ */
+ public void setAuthorInitials(String initials) {
+ authorInitialsRecord.setText(initials);
+ }
+
+ /**
+ * Get the text of this comment
+ */
+ public String getText() {
+ return commentRecord.getText();
+ }
+ /**
+ * Set the text of this comment
+ */
+ public void setText(String text) {
+ commentRecord.setText(text);
+ }
+
+ /**
+ * Set things up, and find our more interesting children
+ */
+ protected Comment2000(byte[] source, int start, int len) {
+ // Grab the header
+ _header = new byte[8];
+ System.arraycopy(source,start,_header,0,8);
+
+ // Find our children
+ _children = Record.findChildRecords(source,start+8,len-8);
+
+ // First child should be the author
+ if(_children[0] instanceof CString) {
+ authorRecord = (CString)_children[0];
+ } else {
+ throw new IllegalStateException("First child record wasn't a CString, was of type " + _children[0].getRecordType());
+ }
+ // Second child should be the text
+ if(_children[1] instanceof CString) {
+ commentRecord = (CString)_children[1];
+ } else {
+ throw new IllegalStateException("Second child record wasn't a CString, was of type " + _children[1].getRecordType());
+ }
+ // Third child should be the author's initials
+ if(_children[2] instanceof CString) {
+ authorInitialsRecord = (CString)_children[2];
+ } else {
+ throw new IllegalStateException("Third child record wasn't a CString, was of type " + _children[2].getRecordType());
+ }
+ // Fourth child should be the comment atom
+ }
+
+ /**
+ * We are of type 1200
+ */
+ public long getRecordType() { return _type; }
+
+ /**
+ * Write the contents of the record back, so it can be written
+ * to disk
+ */
+ public void writeOut(OutputStream out) throws IOException {
+ writeOut(_header[0],_header[1],_type,_children,out);
+ }
+
+}
Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordTypes.java
URL: http://svn.apache.org/viewcvs/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordTypes.java?rev=375232&r1=375231&r2=375232&view=diff
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordTypes.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordTypes.java Mon Feb 6 01:25:24 2006
@@ -152,7 +152,7 @@
// Records ~12000 seem to be related to the Comments used in PPT 2000/XP
// (Comments in PPT97 are normal Escher text boxes)
- public static final Type Comment2000 = new Type(12000,null);
+ public static final Type Comment2000 = new Type(12000,org.apache.poi.hslf.record.Comment2000.class);
public static final Type Comment2000Atom = new Type(12002,null);
public static final Type Comment2000Summary = new Type(12004,null);
public static final Type Comment2000SummaryAtom = new Type(12005,null);
---------------------------------------------------------------------
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/