You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by av...@apache.org on 2003/08/23 20:54:28 UTC
cvs commit: jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel TestBugs.java TestHSSFSheet.java
avik 2003/08/23 11:54:28
Modified: src/java/org/apache/poi/hssf/model Tag: REL_2_BRANCH
Sheet.java
src/java/org/apache/poi/hssf/record Tag: REL_2_BRANCH
ProtectRecord.java ProtectionRev4Record.java
src/java/org/apache/poi/hssf/usermodel Tag: REL_2_BRANCH
HSSFSheet.java
src/testcases/org/apache/poi/hssf/usermodel Tag:
REL_2_BRANCH TestBugs.java TestHSSFSheet.java
Log:
Bug id 21722: Protect record to Sheets
Submitted by Rick Berman..Thanks.
Revision Changes Path
No revision
No revision
1.31.2.6 +28 -0 jakarta-poi/src/java/org/apache/poi/hssf/model/Sheet.java
Index: Sheet.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/model/Sheet.java,v
retrieving revision 1.31.2.5
retrieving revision 1.31.2.6
diff -u -r1.31.2.5 -r1.31.2.6
--- Sheet.java 25 Jul 2003 14:28:51 -0000 1.31.2.5
+++ Sheet.java 23 Aug 2003 18:54:28 -0000 1.31.2.6
@@ -122,6 +122,7 @@
private Iterator valueRecIterator = null;
private Iterator rowRecIterator = null;
protected int eofLoc = 0;
+ protected ProtectRecord protect = null;
public static final byte PANE_LOWER_RIGHT = (byte)0;
public static final byte PANE_UPPER_RIGHT = (byte)1;
@@ -287,6 +288,10 @@
{
retval.windowTwo = (WindowTwoRecord) rec;
}
+ else if ( rec.getSid() == ProtectRecord.sid )
+ {
+ retval.protect = (ProtectRecord) rec;
+ }
if (rec != null)
{
@@ -418,6 +423,8 @@
retval.selection =
(SelectionRecord) retval.createSelection();
records.add(retval.selection);
+ retval.protect = (ProtectRecord) retval.createProtect();
+ records.add(retval.protect);
records.add(retval.createEOF());
retval.records = records;
log.log(log.DEBUG, "Sheet createsheet from scratch exit");
@@ -2524,6 +2531,27 @@
{
this.selection = selection;
}
+ /**
+ * creates a Protect record with protect set to false.
+ * @see org.apache.poi.hssf.record.ProtectRecord
+ * @see org.apache.poi.hssf.record.Record
+ * @return a ProtectRecord
+ */
+
+ protected Record createProtect()
+ {
+ log.log(log.DEBUG, "create protect record with protection disabled");
+ ProtectRecord retval = new ProtectRecord();
+
+ retval.setProtect(false);
+ // by default even when we support encryption we won't
+ return retval;
+ }
+
+ public ProtectRecord getProtect()
+ {
+ return protect;
+ }
/**
* Sets whether the gridlines are shown in a viewer.
No revision
No revision
1.5.2.1 +5 -5 jakarta-poi/src/java/org/apache/poi/hssf/record/ProtectRecord.java
Index: ProtectRecord.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/ProtectRecord.java,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- ProtectRecord.java 30 Apr 2003 04:38:47 -0000 1.5
+++ ProtectRecord.java 23 Aug 2003 18:54:28 -0000 1.5.2.1
@@ -139,9 +139,9 @@
* @return whether to protect the sheet or not
*/
- public short getProtect()
+ public boolean getProtect()
{
- return field_1_protect;
+ return (field_1_protect == 1);
}
public String toString()
@@ -149,8 +149,8 @@
StringBuffer buffer = new StringBuffer();
buffer.append("[PROTECT]\n");
- buffer.append(" .protected = ")
- .append(Integer.toHexString(getProtect())).append("\n");
+ buffer.append(" .protect = ").append(getProtect())
+ .append("\n");
buffer.append("[/PROTECT]\n");
return buffer.toString();
}
@@ -160,7 +160,7 @@
LittleEndian.putShort(data, 0 + offset, sid);
LittleEndian.putShort(data, 2 + offset,
(( short ) 0x02)); // 2 bytes (6 total)
- LittleEndian.putShort(data, 4 + offset, getProtect());
+ LittleEndian.putShort(data, 4 + offset, field_1_protect);
return getRecordSize();
}
1.4.2.1 +7 -7 jakarta-poi/src/java/org/apache/poi/hssf/record/ProtectionRev4Record.java
Index: ProtectionRev4Record.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/ProtectionRev4Record.java,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- ProtectionRev4Record.java 30 Apr 2003 04:38:48 -0000 1.4
+++ ProtectionRev4Record.java 23 Aug 2003 18:54:28 -0000 1.4.2.1
@@ -139,18 +139,18 @@
* @return whether to protect the workbook or not
*/
- public short getProtect()
- {
- return field_1_protect;
- }
+ public boolean getProtect()
+ {
+ return (field_1_protect == 1);
+ }
public String toString()
{
StringBuffer buffer = new StringBuffer();
buffer.append("[PROT4REV]\n");
- buffer.append(" .rowheight = ")
- .append(Integer.toHexString(getProtect())).append("\n");
+ buffer.append(" .protect = ").append(getProtect())
+ .append("\n");
buffer.append("[/PROT4REV]\n");
return buffer.toString();
}
@@ -160,7 +160,7 @@
LittleEndian.putShort(data, 0 + offset, sid);
LittleEndian.putShort(data, 2 + offset,
(( short ) 0x02)); // 2 bytes (6 total)
- LittleEndian.putShort(data, 4 + offset, getProtect());
+ LittleEndian.putShort(data, 4 + offset, field_1_protect);
return getRecordSize();
}
No revision
No revision
1.21.2.3 +17 -1 jakarta-poi/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
Index: HSSFSheet.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java,v
retrieving revision 1.21.2.2
retrieving revision 1.21.2.3
diff -u -r1.21.2.2 -r1.21.2.3
--- HSSFSheet.java 25 Jul 2003 14:28:51 -0000 1.21.2.2
+++ HSSFSheet.java 23 Aug 2003 18:54:28 -0000 1.21.2.3
@@ -873,6 +873,22 @@
{
getSheet().setMargin( margin, size );
}
+
+ /**
+ * Answer whether protection is enabled or disabled
+ * @return true => protection enabled; false => protection disabled
+ */
+ public boolean getProtect() {
+ return getSheet().getProtect().getProtect();
+ }
+
+ /**
+ * Sets the protection on enabled or disabled
+ * @param protect true => protection enabled; false => protection disabled
+ */
+ public void setProtect(boolean protect) {
+ getSheet().getProtect().setProtect(protect);
+ }
/**
* Sets the zoom magnication for the sheet. The zoom is expressed as a
@@ -916,7 +932,7 @@
//dont check if it's not within the shifted area
if (! (inStart && inEnd)) continue;
- //only shift if the region outside the shifted rows is not merged too
+ //only shift if the region outside the shifted rows is not merged too
if (!merged.contains(startRow-1, (short)0) && !merged.contains(endRow+1, (short)0)){
merged.setRowFrom(merged.getRowFrom()+n);
merged.setRowTo(merged.getRowTo()+n);
No revision
No revision
1.1.2.3 +1 -0 jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
Index: TestBugs.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- TestBugs.java 31 Jul 2003 19:59:49 -0000 1.1.2.2
+++ TestBugs.java 23 Aug 2003 18:54:28 -0000 1.1.2.3
@@ -109,6 +109,7 @@
assertTrue("File Should Exist", file.exists());
}
+
1.12.2.5 +22 -0 jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
Index: TestHSSFSheet.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java,v
retrieving revision 1.12.2.4
retrieving revision 1.12.2.5
diff -u -r1.12.2.4 -r1.12.2.5
--- TestHSSFSheet.java 25 Jul 2003 14:28:52 -0000 1.12.2.4
+++ TestHSSFSheet.java 23 Aug 2003 18:54:28 -0000 1.12.2.5
@@ -62,6 +62,7 @@
import org.apache.poi.hssf.model.Sheet;
import org.apache.poi.hssf.record.HCenterRecord;
+import org.apache.poi.hssf.record.ProtectRecord;
import org.apache.poi.hssf.record.SCLRecord;
import org.apache.poi.hssf.record.VCenterRecord;
import org.apache.poi.hssf.record.WSBoolRecord;
@@ -238,6 +239,27 @@
cell.setCellValue("Difference Check");
assertEquals(cloned.getRow((short)0).getCell((short)0).getStringCellValue(), "clone_test");
}
+
+ /**
+ * Test that the ProtectRecord is included when creating or cloning a sheet
+ */
+ public void testProtect() {
+ HSSFWorkbook workbook = new HSSFWorkbook();
+ HSSFSheet hssfSheet = workbook.createSheet();
+ Sheet sheet = hssfSheet.getSheet();
+ ProtectRecord protect = sheet.getProtect();
+
+ assertFalse(protect.getProtect());
+
+ // This will tell us that cloneSheet, and by extension,
+ // the list forms of createSheet leave us with an accessible
+ // ProtectRecord.
+ hssfSheet.setProtect(true);
+ Sheet cloned = sheet.cloneSheet();
+ assertNotNull(cloned.getProtect());
+ assertTrue(hssfSheet.getProtect());
+ }
+
public void testZoom()
throws Exception
---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: poi-dev-help@jakarta.apache.org