You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2008/06/16 14:54:13 UTC

svn commit: r668144 - in /poi/branches/ooxml: ./ src/java/org/apache/poi/hssf/record/formula/ src/scratchpad/src/org/apache/poi/hwpf/usermodel/ src/scratchpad/testcases/org/apache/poi/hwpf/data/ src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/ s...

Author: nick
Date: Mon Jun 16 05:54:12 2008
New Revision: 668144

URL: http://svn.apache.org/viewvc?rev=668144&view=rev
Log:
Merged revisions 638786-638802,638805-638811,638813-638814,638816-639230,639233-639241,639243-639253,639255-639486,639488-639601,639603-639835,639837-639917,639919-640056,640058-640710,640712-641156,641158-641184,641186-641795,641797-641798,641800-641933,641935-641963,641965-641966,641968-641995,641997-642230,642232-642562,642564-642565,642568-642570,642572-642573,642576-642736,642739-642877,642879,642881-642890,642892-642903,642905-642945,642947-643624,643626-643653,643655-643669,643671,643673-643830,643832-643833,643835-644342,644344-644472,644474-644508,644510-645347,645349-645351,645353-645559,645561-645565,645568-645951,645953-646193,646195-646311,646313-646404,646406-646665,646667-646853,646855-646869,646871-647151,647153-647185,647187-647277,647279-647566,647568-647573,647575,647578-647711,647714-647737,647739-647823,647825-648155,648157-648202,648204-648273,648275,648277-648302,648304-648333,648335-648588,648590-648622,648625-648673,648675-649141,649144,649146-649556,
 649558-649795,649799,649801-649910,649912-649913,649915-650128,650131-650132,650134-650137,650140-650914,650916-651991,651993-652284,652286-652287,652289,652291,652293-652297,652299-652328,652330-652425,652427-652445,652447-652560,652562-652933,652935,652937-652993,652995-653116,653118-653124,653126-653483,653487-653519,653522-653550,653552-653607,653609-653667,653669-653674,653676-653814,653817-653830,653832-653891,653893-653944,653946-654055,654057-654355,654357-654365,654367-654648,654651-655215,655217-655277,655279-655281,655283-655911,655913-656212,656214,656216-656251,656253-656698,656700-656756,656758-656892,656894-657135,657137-657165,657168-657179,657181-657354,657356-657357,657359-657701,657703-657874,657876-658032,658034-658284,658286,658288-658301,658303-658307,658309-658321,658323-658335,658337-658348,658351,658353-658832,658834-658983,658985,658987-659066,659068-659402,659404-659428,659430-659451,659453-659454,659456-659461,659463-659477,659479-659524,659526-65
 9571,659574,659576-660255,660257-660262,660264-660279,660281-660343,660345-660473,660475-660827,660829-660833,660835-660888,660890-663321,663323-663435,663437-663764,663766-663854,663856-664219,664221-664489,664494-664514,664516-668143 via svnmerge from 
https://svn.apache.org:443/repos/asf/poi/trunk

........
  r668014 | josh | 2008-06-15 23:26:06 +0100 (Sun, 15 Jun 2008) | 1 line
  
  added extra RVA test case (for bug 45206)
........
  r668143 | nick | 2008-06-16 13:49:55 +0100 (Mon, 16 Jun 2008) | 1 line
  
  Unit test from bug #45001, and new replaceText method (no test yet)
........

Added:
    poi/branches/ooxml/src/scratchpad/testcases/org/apache/poi/hwpf/data/testRangeInsertion.doc
      - copied unchanged from r668143, poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/data/testRangeInsertion.doc
    poi/branches/ooxml/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestRangeInsertion.java
      - copied unchanged from r668143, poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestRangeInsertion.java
Modified:
    poi/branches/ooxml/   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Range.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/data/testRVA.xls
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/model/TestRVA.java

Propchange: poi/branches/ooxml/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Jun 16 05:54:12 2008
@@ -1 +1 @@
-/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-650914,650916-664671
+/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-650914,650916-668143

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java?rev=668144&r1=668143&r2=668144&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java Mon Jun 16 05:54:12 2008
@@ -15,12 +15,11 @@
    limitations under the License.
 ==================================================================== */
 
-
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.hssf.record.RecordInputStream;
 import org.apache.poi.hssf.util.RangeAddress;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.util.CellReference;
 import org.apache.poi.ss.util.SheetReferences;
 import org.apache.poi.util.BitField;
@@ -69,16 +68,15 @@
     }
 
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
-
-        buffer.append("Ref3dPtg\n");
-        buffer.append("Index to Extern Sheet = " + getExternSheetIndex()).append("\n");
-        buffer.append("Row = " + getRow()).append("\n");
-        buffer.append("Col  = " + getColumn()).append("\n");
-        buffer.append("ColRowRel= "
-        + isRowRelative()).append("\n");
-        buffer.append("ColRel   = " + isColRelative()).append("\n");
-        return buffer.toString();
+        CellReference cr = new CellReference(getRow(), getColumn(), !isRowRelative(),!isColRelative());
+        StringBuffer sb = new StringBuffer();
+        sb.append(getClass().getName());
+        sb.append(" [");
+        sb.append("sheetIx=").append(getExternSheetIndex());
+        sb.append(" ! ");
+        sb.append(cr.formatAsString());
+        sb.append("]");
+        return sb.toString();
     }
 
     public void writeBytes(byte [] array, int offset) {

Modified: poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Range.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Range.java?rev=668144&r1=668143&r2=668144&view=diff
==============================================================================
--- poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Range.java (original)
+++ poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Range.java Mon Jun 16 05:54:12 2008
@@ -632,6 +632,50 @@
     return (ListEntry)insertAfter(props, styleIndex);
   }
 
+  /**
+   * Replace (one instance of) a piece of text with another...
+   *
+   * @param pPlaceHolder    The text to be replaced (e.g., "${company}")
+   * @param pValue          The replacement text (e.g., "Cognocys, Inc.")
+   * @param pDocument       The <code>HWPFDocument</code> in which the placeholder was found
+   * @param pStartOffset    The offset or index where the <code>CharacterRun</code> begins
+   * @param pPlaceHolderIndex   The offset or index of the placeholder, 
+   *  relative to the <code>CharacterRun</code> where 
+   *  <code>pPlaceHolder</code> was found
+   */
+  protected void replaceText(String pPlaceHolder, String pValue, 
+        int pStartOffset, int pPlaceHolderIndex, HWPFDocument pDocument) {
+    int absPlaceHolderIndex = pStartOffset + pPlaceHolderIndex;
+    Range subRange = new Range(
+                absPlaceHolderIndex, 
+                (absPlaceHolderIndex + pPlaceHolder.length()), pDocument
+    );
+    if (subRange.usesUnicode()) {
+            absPlaceHolderIndex = pStartOffset + (pPlaceHolderIndex * 2);
+            subRange = new Range(
+                      absPlaceHolderIndex, 
+                      (absPlaceHolderIndex + (pPlaceHolder.length() * 2)), 
+                      pDocument
+            );
+    }
+
+    subRange.insertBefore(pValue);
+
+    // re-create the sub-range so we can delete it
+    subRange = new Range(
+            (absPlaceHolderIndex + pValue.length()),
+            (absPlaceHolderIndex + pPlaceHolder.length() + pValue.length()), 
+            pDocument
+    );
+    if (subRange.usesUnicode())
+            subRange = new Range(
+                      (absPlaceHolderIndex + (pValue.length() * 2)),
+                      (absPlaceHolderIndex + (pPlaceHolder.length() * 2) + 
+                      (pValue.length() * 2)), pDocument
+            );
+
+    subRange.delete();
+  }
 
   /**
    * Gets the character run at index. The index is relative to this range.

Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/data/testRVA.xls
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/data/testRVA.xls?rev=668144&r1=668143&r2=668144&view=diff
==============================================================================
Binary files - no diff available.

Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/model/TestRVA.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/model/TestRVA.java?rev=668144&r1=668143&r2=668144&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/model/TestRVA.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/model/TestRVA.java Mon Jun 16 05:54:12 2008
@@ -23,7 +23,6 @@
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.record.formula.AttrPtg;
 import org.apache.poi.hssf.record.formula.Ptg;
-import org.apache.poi.hssf.record.formula.RefPtgBase;
 import org.apache.poi.hssf.usermodel.FormulaExtractor;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
@@ -60,7 +59,7 @@
 			}
 			String formula = cell.getCellFormula();
 			try {
-				confirmCell(cell, formula);
+				confirmCell(cell, formula, wb);
 			} catch (AssertionFailedError e) {
 				System.err.println("Problem with row[" + rowIx + "] formula '" + formula + "'");
 				System.err.println(e.getMessage());
@@ -79,9 +78,9 @@
 		}
 	}
 
-	private void confirmCell(HSSFCell formulaCell, String formula) {
+	private void confirmCell(HSSFCell formulaCell, String formula, HSSFWorkbook wb) {
 		Ptg[] excelPtgs = FormulaExtractor.getPtgs(formulaCell);
-		Ptg[] poiPtgs = FormulaParser.parse(formula, null);
+		Ptg[] poiPtgs = FormulaParser.parse(formula, wb);
 		int nExcelTokens = excelPtgs.length;
 		int nPoiTokens = poiPtgs.length;
 		if (nExcelTokens != nPoiTokens) {
@@ -122,6 +121,10 @@
 			}
 			sb.append(NEW_LINE);
 		}
+		if (false) { // set 'true' to see trace of RVA values
+			System.out.println(formula);
+			System.out.println(sb.toString());
+		}
 		if (hasMismatch) {
 			throw new AssertionFailedError(sb.toString());
 		}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org