Author: berlog
Date: Sat Feb  2 23:10:34 2013
New Revision: 1441829

URL: http://svn.apache.org/viewvc?rev=1441829&view=rev
Log:
set isHidden flag 'true' for invisible comment and 'false' for visible comments

Modified:
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java?rev=1441829&r1=1441828&r2=1441829&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java Sat Feb  
2 23:10:34 2013
@@ -30,6 +30,10 @@ public class HSSFComment extends HSSFTex
     private final static int FILL_TYPE_SOLID = 0;
     private final static int FILL_TYPE_PICTURE = 3;
 
+    private final static int GROUP_SHAPE_PROPERTY_DEFAULT_VALUE = 655362;
+    private final static int GROUP_SHAPE_HIDDEN_MASK = 0x1000002;
+    private final static int GROUP_SHAPE_NOT_HIDDEN_MASK = 0xFEFFFFFD;
+
     /*
       * TODO - make HSSFComment more consistent when created vs read from file.
       * Currently HSSFComment has two main forms (corresponding to the two 
constructors).   There
@@ -85,7 +89,7 @@ public class HSSFComment extends HSSFTex
         opt.removeEscherProperty(EscherProperties.TEXT__TEXTRIGHT);
         opt.removeEscherProperty(EscherProperties.TEXT__TEXTTOP);
         opt.removeEscherProperty(EscherProperties.TEXT__TEXTBOTTOM);
-        opt.setEscherProperty(new 
EscherSimpleProperty(EscherProperties.GROUPSHAPE__PRINT, false, false, 655362));
+        opt.setEscherProperty(new 
EscherSimpleProperty(EscherProperties.GROUPSHAPE__PRINT, false, false, 
GROUP_SHAPE_PROPERTY_DEFAULT_VALUE));
         return spContainer;
     }
 
@@ -129,6 +133,7 @@ public class HSSFComment extends HSSFTex
      */
     public void setVisible(boolean visible) {
         _note.setFlags(visible ? NoteRecord.NOTE_VISIBLE : 
NoteRecord.NOTE_HIDDEN);
+        setHidden(!visible);
     }
 
     /**
@@ -251,4 +256,14 @@ public class HSSFComment extends HSSFTex
         EscherSimpleProperty property = 
getOptRecord().lookup(EscherProperties.FILL__PATTERNTEXTURE);
         return property == null ? 0 : property.getPropertyValue();
     }
+
+    private void setHidden(boolean value){
+        EscherSimpleProperty property = 
getOptRecord().lookup(EscherProperties.GROUPSHAPE__PRINT);
+        // see 
http://msdn.microsoft.com/en-us/library/dd949807(v=office.12).aspx
+        if (value){
+            setPropertyValue(new 
EscherSimpleProperty(EscherProperties.GROUPSHAPE__PRINT, false, false, 
property.getPropertyValue() | GROUP_SHAPE_HIDDEN_MASK));
+        } else {
+            setPropertyValue(new 
EscherSimpleProperty(EscherProperties.GROUPSHAPE__PRINT, false, false, 
property.getPropertyValue() & GROUP_SHAPE_NOT_HIDDEN_MASK));
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to