From: Josh Micich Date: Sun, 31 Aug 2008 23:59:26 +0000 (+0000) Subject: Improving AreaI interface and AreaPtg hierarchy X-Git-Tag: REL_3_2_FINAL~107 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=020bde0d66344623150ef57562523f514d011f70;p=poi.git Improving AreaI interface and AreaPtg hierarchy git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@690825 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/java/org/apache/poi/hssf/record/NameRecord.java b/src/java/org/apache/poi/hssf/record/NameRecord.java index 6c6c53a92b..729f9246b2 100644 --- a/src/java/org/apache/poi/hssf/record/NameRecord.java +++ b/src/java/org/apache/poi/hssf/record/NameRecord.java @@ -626,7 +626,7 @@ public final class NameRecord extends Record { } private Ptg createNewPtg(){ - Ptg ptg = new Area3DPtg(); + Ptg ptg = new Area3DPtg("A1", 0); // TODO - change to not be partially initialised field_13_name_definition.push(ptg); return ptg; @@ -673,9 +673,7 @@ public final class NameRecord extends Record { // Add the area reference(s) for(int i=0; i= 0) - { - Area3DPtg colArea = new Area3DPtg(); - colArea.setExternSheetIndex(externSheetIndex); - colArea.setFirstColumn((short)startColumn); - colArea.setLastColumn((short)endColumn); - colArea.setFirstRow(0); - colArea.setLastRow(MAX_ROW); - colArea.setFirstColRelative(false); - colArea.setLastColRelative(false); - colArea.setFirstRowRelative(false); - colArea.setLastRowRelative(false); + if (startColumn >= 0) { + Area3DPtg colArea = new Area3DPtg(0, MAX_ROW, startColumn, endColumn, + false, false, false, false, externSheetIndex); ptgs.add(colArea); } - if (startRow >= 0) - { - Area3DPtg rowArea = new Area3DPtg(); - rowArea.setExternSheetIndex(externSheetIndex); - rowArea.setFirstColumn((short)0); - rowArea.setLastColumn(MAX_COLUMN); - rowArea.setFirstRow(startRow); - rowArea.setLastRow(endRow); - rowArea.setFirstColRelative(false); - rowArea.setLastColRelative(false); - rowArea.setFirstRowRelative(false); - rowArea.setLastRowRelative(false); + if (startRow >= 0) { + Area3DPtg rowArea = new Area3DPtg(startRow, endRow, 0, MAX_COLUMN, + false, false, false, false, externSheetIndex); ptgs.add(rowArea); } if (settingRowAndColumn) diff --git a/src/java/org/apache/poi/hssf/util/AreaReference.java b/src/java/org/apache/poi/hssf/util/AreaReference.java index a10b9976aa..99218222f7 100644 --- a/src/java/org/apache/poi/hssf/util/AreaReference.java +++ b/src/java/org/apache/poi/hssf/util/AreaReference.java @@ -20,8 +20,6 @@ package org.apache.poi.hssf.util; import java.util.ArrayList; import java.util.StringTokenizer; -import org.apache.poi.hssf.record.formula.AreaI; - public final class AreaReference { /** The character (!) that separates sheet names from cell references */ @@ -211,18 +209,7 @@ public final class AreaReference { } return sb.toString(); } - /** - * Formats a 2-D area as it would appear in a formula. See formatAsString() (no-arg) - */ - public static String formatAsString(AreaI area) { - CellReference topLeft = new CellReference(area.getFirstRow(),area.getFirstColumn(),!area.isFirstRowRelative(),!area.isFirstColRelative()); - CellReference botRight = new CellReference(area.getLastRow(),area.getLastColumn(),!area.isLastRowRelative(),!area.isLastColRelative()); - - if(isWholeColumnReference(topLeft, botRight)) { - return (new AreaReference(topLeft, botRight)).formatAsString(); - } - return topLeft.formatAsString() + ":" + botRight.formatAsString(); - } + public String toString() { StringBuffer sb = new StringBuffer(64); sb.append(getClass().getName()).append(" ["); diff --git a/src/scratchpad/src/org/apache/poi/hssf/usermodel/HSSFChart.java b/src/scratchpad/src/org/apache/poi/hssf/usermodel/HSSFChart.java index 5f5995afb1..3a7c5c20e0 100644 --- a/src/scratchpad/src/org/apache/poi/hssf/usermodel/HSSFChart.java +++ b/src/scratchpad/src/org/apache/poi/hssf/usermodel/HSSFChart.java @@ -760,12 +760,8 @@ public final class HSSFChart { r.setIndexNumberFmtRecord( (short) 0 ); LinkedDataFormulaField formula = new LinkedDataFormulaField(); Stack tokens = new Stack(); - Area3DPtg p = new Area3DPtg(); - p.setExternSheetIndex( (short) 0 ); - p.setFirstColumn( (short) 1 ); - p.setLastColumn( (short) 1 ); - p.setFirstRow( (short) 0 ); - p.setLastRow( (short) 31 ); + Area3DPtg p = new Area3DPtg(0, 31, 1, 1, + false, false, false, false, 0); tokens.add( p ); formula.setFormulaTokens( tokens ); r.setFormulaOfLink( formula ); @@ -781,12 +777,8 @@ public final class HSSFChart { r.setIndexNumberFmtRecord( (short) 0 ); LinkedDataFormulaField formula = new LinkedDataFormulaField(); Stack tokens = new Stack(); - Area3DPtg p = new Area3DPtg(); - p.setExternSheetIndex( (short) 0 ); - p.setFirstColumn( (short) 0 ); - p.setLastColumn( (short) 0 ); - p.setFirstRow( (short) 0 ); - p.setLastRow( (short) 31 ); + Area3DPtg p = new Area3DPtg(0, 31, 0, 0, + false, false, false, false, 0); tokens.add( p ); formula.setFormulaTokens( tokens ); r.setFormulaOfLink( formula ); diff --git a/src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java b/src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java index bff51be2f1..c7ef2acc1c 100644 --- a/src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java +++ b/src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java @@ -1,4 +1,3 @@ - /* ==================================================================== Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with @@ -15,8 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. ==================================================================== */ - - package org.apache.poi.hssf.record; @@ -33,9 +30,7 @@ import java.util.Stack; * * @author Glen Stampoultzis (glens at apache.org) */ -public class TestLinkedDataRecord - extends TestCase -{ +public final class TestLinkedDataRecord extends TestCase { /* The records below are records that would appear in a simple bar chart @@ -160,14 +155,7 @@ recordid = 0x1051, size =8 (byte)0x00,(byte)0x00, // index to last column and relative flags }; - public TestLinkedDataRecord(String name) - { - super(name); - } - - public void testLoad() - throws Exception - { + public void testLoad() { LinkedDataRecord record = new LinkedDataRecord(new TestcaseRecordInputStream((short)0x1051, (short)data.length, data)); assertEquals( LinkedDataRecord.LINK_TYPE_VALUES, record.getLinkType()); @@ -176,19 +164,11 @@ recordid = 0x1051, size =8 assertEquals( false, record.isCustomNumberFormat() ); assertEquals( 0, record.getIndexNumberFmtRecord()); - Area3DPtg ptg = new Area3DPtg(); - ptg.setExternSheetIndex((short)0); - ptg.setFirstColumn((short)0); - ptg.setLastColumn((short)0); - ptg.setFirstRow((short)0); - ptg.setLastRow((short)7936); - ptg.setFirstColRelative(false); - ptg.setLastColRelative(false); - ptg.setFirstRowRelative(false); - ptg.setLastRowRelative(false); - Stack s = new Stack(); - s.push(ptg); - assertEquals( s, record.getFormulaOfLink().getFormulaTokens() ); + Area3DPtg ptgExpected = new Area3DPtg(0, 7936, 0, 0, + false, false, false, false, 0); + + Object ptgActual = record.getFormulaOfLink().getFormulaTokens().get(0); + assertEquals(ptgExpected.toString(), ptgActual.toString()); assertEquals( data.length + 4, record.getRecordSize() ); @@ -196,24 +176,15 @@ recordid = 0x1051, size =8 } - public void testStore() - { + public void testStore() { LinkedDataRecord record = new LinkedDataRecord(); record.setLinkType( LinkedDataRecord.LINK_TYPE_VALUES ); record.setReferenceType( LinkedDataRecord.REFERENCE_TYPE_WORKSHEET ); record.setOptions( (short)0 ); record.setCustomNumberFormat( false ); record.setIndexNumberFmtRecord( (short)0 ); - Area3DPtg ptg = new Area3DPtg(); - ptg.setExternSheetIndex((short)0); - ptg.setFirstColumn((short)0); - ptg.setLastColumn((short)0); - ptg.setFirstRow((short)0); - ptg.setLastRow((short)7936); - ptg.setFirstColRelative(false); - ptg.setLastColRelative(false); - ptg.setFirstRowRelative(false); - ptg.setLastRowRelative(false); + Area3DPtg ptg = new Area3DPtg(0, 7936, 0, 0, + false, false, false, false, 0); Stack s = new Stack(); s.push(ptg); LinkedDataFormulaField formulaOfLink = new LinkedDataFormulaField();