]> source.dussan.org Git - poi.git/commitdiff
Refactoring for names, and tests. More to follow. Only publicly viewable change is...
authorAvik Sengupta <avik@apache.org>
Mon, 1 Jul 2002 17:29:31 +0000 (17:29 +0000)
committerAvik Sengupta <avik@apache.org>
Mon, 1 Jul 2002 17:29:31 +0000 (17:29 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352736 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/NameRecord.java
src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
src/java/org/apache/poi/hssf/usermodel/HSSFName.java
src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java

index 20c5ba43baa688524d25af8c3d537fe6158288cb..96ef8bc7e939468c8445ca274e2dc8393af93560 100644 (file)
@@ -507,10 +507,10 @@ public class NameRecord extends Record {
         String result = "";
 
         if (ptg.getClass() == Area3DPtg.class){
-            result = ((Area3DPtg) ptg).getArea();
+            result = ((Area3DPtg) ptg).toFormulaString();
 
         } else if (ptg.getClass() == Ref3DPtg.class){
-            result = ((Ref3DPtg) ptg).getArea();
+            result = ((Ref3DPtg) ptg).toFormulaString();
         }
 
         return result;
index 3c3aaf3520c54cd8b02fafad530f8c759b3ec5e5..c68ab72643ce444bf4f77cb00e88692eb6eaf59f 100644 (file)
@@ -266,12 +266,12 @@ public class Area3DPtg extends Ptg
     }
     
 
-    public String getArea(){
+    /*public String getArea(){
         RangeAddress ra = new RangeAddress( getFirstColumn(),getFirstRow() + 1, getLastColumn(), getLastRow() + 1);
         String result = ra.getAddress();
 
         return result;
-    }
+    }*/
 
     public void setArea(String ref){
         RangeAddress ra = new RangeAddress(ref);
index 885267ecca389d218d99d7681ee9ff9fd2dbf087..b8db3ba666cfb6061c2695972b579b7cd8d644a2 100644 (file)
@@ -172,13 +172,13 @@ public class Ref3DPtg extends Ptg {
         field_3_column = column;
     }
 
-    public String getArea(){
+   /* public String getArea(){
         RangeAddress ra = new RangeAddress("");
 
         String result = (ra.numTo26Sys(getColumn()) + (getRow() + 1));
 
         return result;
-    }
+    }*/
 
     public void setArea(String ref){
         RangeAddress ra = new RangeAddress(ref);
index c4d3fb2583a2f4c08288df8bc6542c4db27b428c..1ca4acfe12c4336f6806d6fdbcfd237bc8096d1a 100644 (file)
 
+
 /* ====================================================================
+
  * The Apache Software License, Version 1.1
+
  *
+
  * Copyright (c) 2002 The Apache Software Foundation.  All rights
+
  * reserved.
+
  *
+
  * Redistribution and use in source and binary forms, with or without
+
  * modification, are permitted provided that the following conditions
+
  * are met:
+
  *
+
  * 1. Redistributions of source code must retain the above copyright
+
  *    notice, this list of conditions and the following disclaimer.
+
  *
+
  * 2. Redistributions in binary form must reproduce the above copyright
+
  *    notice, this list of conditions and the following disclaimer in
+
  *    the documentation and/or other materials provided with the
+
  *    distribution.
+
  *
+
  * 3. The end-user documentation included with the redistribution,
+
  *    if any, must include the following acknowledgment:
+
  *       "This product includes software developed by the
+
  *        Apache Software Foundation (http://www.apache.org/)."
+
  *    Alternately, this acknowledgment may appear in the software itself,
+
  *    if and wherever such third-party acknowledgments normally appear.
+
  *
+
  * 4. The names "Apache" and "Apache Software Foundation" and
+
  *    "Apache POI" must not be used to endorse or promote products
+
  *    derived from this software without prior written permission. For
+
  *    written permission, please contact apache@apache.org.
+
  *
+
  * 5. Products derived from this software may not be called "Apache",
+
  *    "Apache POI", nor may "Apache" appear in their name, without
+
  *    prior written permission of the Apache Software Foundation.
+
  *
+
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+
  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+
  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+
  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+
  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+
  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+
  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+
  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+
  * SUCH DAMAGE.
+
  * ====================================================================
+
  *
+
  * This software consists of voluntary contributions made by many
+
  * individuals on behalf of the Apache Software Foundation.  For more
+
  * information on the Apache Software Foundation, please see
+
  * <http://www.apache.org/>.
+
  */
 
+
+
 package org.apache.poi.hssf.usermodel;
 
+
+
 import org.apache.poi.util.POILogFactory;
+
 import org.apache.poi.hssf.model.Sheet;
+
 import org.apache.poi.hssf.model.Workbook;
+
 import org.apache.poi.hssf.record.*;
+
 import org.apache.poi.hssf.util.Region;
+
 import org.apache.poi.util.POILogger;
 
+
+
 import java.util.Iterator;
+
 import java.util.TreeMap;
+
 import org.apache.poi.hssf.util.RangeAddress;
 
+
+
 /**
+
  * Title:        High Level Represantion of Named Range <P>
+
  * REFERENCE:  <P>
+
  * @author Libin Roman (Vista Portal LDT. Developer)
+
  * @version 1.0-pre
+
  */
 
+
+
 public class HSSFName {
+
     private Workbook         book;
+
     private NameRecord       name;
+
     
+
     /** Creates new HSSFName   - called by HSSFWorkbook to create a sheet from
+
      * scratch.
+
      *
+
      * @see #org.apache.poi.hssf.usermodel.HSSFWorkbook.createName()
+
      * @param name the Name Record
+
      * @param book - lowlevel Workbook object associated with the sheet.
+
      * @param book the Workbook */
+
     
+
     protected HSSFName(Workbook book, NameRecord name) {
+
         this.book = book;
+
         this.name = name;
+
     }
+
     
+
     /** private default constructor prevents bogus initializationless construction */
+
     
+
     private HSSFName() {
+
     }
+
     
+
     /** Get the sheets name which this named range is referenced to
+
      * @return sheet name, which this named range refered to
+
      */    
+
     public String getSheetName() {
+
         String result ;
+
         short indexToExternSheet = name.getExternSheetNumber();
+
         
+
         result = book.findSheetNameFromExternSheet(indexToExternSheet);
+
         
+
         return result;
+
     }
+
     
+
     /** gets the name of the named range
+
      * @return named range name
+
      */    
+
     public String getNameName(){
+
         String result = name.getNameText();
+
         
+
         return result;
+
     }
+
     
+
     /** sets the name of the named range
+
      * @param nameName named range name to set
+
      */    
+
     public void setNameName(String nameName){
+
         name.setNameText(nameName);
+
         name.setNameTextLength((byte)nameName.length());
+
     }
+
     
+
     /** gets the reference of the named range
+
      * @return reference of the named range
+
      */    
+
     public String getReference() {
+        Workbook.currentBook.set(book);
         String result;
+
         
-        result = getSheetName() + "." + name.getAreaReference();
-        
+
+        result = name.getAreaReference();
+
+        Workbook.currentBook.set(null);
+
         return result;
+
     }
+
     
+
     /** sets the sheet name which this named range referenced to
+
      * @param sheetName the sheet name of the reference
+
      */    
-    public void setSheetName(String sheetName){
+
+    private void setSheetName(String sheetName){
+
         int sheetNumber = book.getSheetIndex(sheetName);
+
         
+
         short externSheetNumber = book.checkExternSheet(sheetNumber);
+
         name.setExternSheetNumber(externSheetNumber);
+
 //        name.setIndexToSheet(externSheetNumber);
+
     }
-    
+
+  
+
     /** sets the reference of this named range
+
      * @param ref the reference to set
+
      */    
+
     public void setReference(String ref){
+
         RangeAddress ra = new RangeAddress(ref);
+
         
+
         String sheetName = ra.getSheetName();
+
         
+
         if (ra.hasSheetName()) {
+
             setSheetName(sheetName);
+
         }
+
         
+
         if (ra.getFromCell().equals(ra.getToCell()) == false) {
+
             name.setAreaReference(ra.getFromCell() + ":" + ra.getToCell());
+
         } else {
+
             name.setAreaReference(ra.getFromCell());            
+
         }
+
         
+
     }
+
     
+
             
+
 }
+
index d75cd5100432141496ccdb86b8ae255d3fe56692..597e267c43d5c89b326ed2625c82e044e0ac190a 100644 (file)
@@ -99,6 +99,16 @@ public class TestNamedRange
         wb.write(fileOut);
         fis.close();
         fileOut.close();
+        
+        assertTrue("file exists",file.exists());
+            
+        FileInputStream in = new FileInputStream(file);
+        wb = new HSSFWorkbook(in);
+        HSSFName nm =wb.getNameAt(wb.getNameIndex("RangeTest"));
+        assertTrue("Name is "+nm.getNameName(),"RangeTest".equals(nm.getNameName()));
+        assertTrue("Reference is "+nm.getReference(),(wb.getSheetName(0)+"!$D$4:$E$8").equals(nm.getReference()));
+        
+        
     }
         
 }