Author: nick
Date: Tue Jan  5 14:08:51 2010
New Revision: 896049

URL: http://svn.apache.org/viewvc?rev=896049&view=rev
Log:
Initialise the link type of HSSFHyperLink, so that getType() on it works

Modified:
    poi/trunk/src/documentation/content/xdocs/status.xml
    poi/trunk/src/java/org/apache/poi/hssf/record/HyperlinkRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFHyperlink.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java

Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=896049&r1=896048&r2=896049&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Tue Jan  5 14:08:51 
2010
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.7-SNAPSHOT" date="2010-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">Initialise the link type of 
HSSFHyperLink, so that getType() on it works</action>
            <action dev="POI-DEVELOPERS" type="fix">48425 - improved 
performance of DateUtil.isCellDateFormatted()  </action>
            <action dev="POI-DEVELOPERS" type="fix">47215 - fixed 
InterfaceEndRecord to tolerate unexpected record contents </action>
            <action dev="POI-DEVELOPERS" type="fix">48415 - improved javadoc on 
HSSPicture.resize() </action>

Modified: poi/trunk/src/java/org/apache/poi/hssf/record/HyperlinkRecord.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/HyperlinkRecord.java?rev=896049&r1=896048&r2=896049&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/HyperlinkRecord.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/HyperlinkRecord.java Tue Jan  
5 14:08:51 2010
@@ -675,6 +675,27 @@
     }
 
     /**
+     * Based on the link options, is this a url?
+     */
+    public boolean isUrlLink() {
+       return (_linkOpts & HLINK_URL) > 0 
+           && (_linkOpts & HLINK_ABS) > 0;
+    }
+    /**
+     * Based on the link options, is this a file?
+     */
+    public boolean isFileLink() {
+       return (_linkOpts & HLINK_URL) > 0 
+           && (_linkOpts & HLINK_ABS) == 0;
+    }
+    /**
+     * Based on the link options, is this a document?
+     */
+    public boolean isDocumentLink() {
+       return (_linkOpts & HLINK_PLACE) > 0; 
+    }
+    
+    /**
      * Initialize a new url link
      */
     public void newUrlLink() {

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFHyperlink.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFHyperlink.java?rev=896049&r1=896048&r2=896049&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFHyperlink.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFHyperlink.java Tue Jan 
 5 14:08:51 2010
@@ -87,6 +87,20 @@
     protected HSSFHyperlink( HyperlinkRecord record )
     {
         this.record = record;
+        
+        // Figure out the type
+        if(record.isFileLink()) {
+           link_type = LINK_FILE;
+        } else if(record.isDocumentLink()) {
+           link_type = LINK_DOCUMENT;
+        } else {
+           if(record.getAddress() != null &&
+                 record.getAddress().startsWith("mailto:";)) {
+              link_type = LINK_EMAIL;
+           } else {
+              link_type = LINK_URL;
+           }
+        }
     }
 
     /**

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java?rev=896049&r1=896048&r2=896049&view=diff
==============================================================================
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java 
(original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java 
Tue Jan  5 14:08:51 2010
@@ -49,6 +49,7 @@
         assertEquals("POI", link.getLabel());
         assertEquals("POI", cell.getRichStringCellValue().getString());
         assertEquals("http://poi.apache.org/";, link.getAddress());
+        assertEquals(HSSFHyperlink.LINK_URL, link.getType());
 
         cell = sheet.getRow(8).getCell(0);
         link = cell.getHyperlink();
@@ -56,6 +57,7 @@
         assertEquals("HSSF", link.getLabel());
         assertEquals("HSSF", cell.getRichStringCellValue().getString());
         assertEquals("http://poi.apache.org/hssf/";, link.getAddress());
+        assertEquals(HSSFHyperlink.LINK_URL, link.getType());
 
         sheet = wb.getSheet("Emails");
         cell = sheet.getRow(4).getCell(0);
@@ -64,6 +66,7 @@
         assertEquals("dev", link.getLabel());
         assertEquals("dev", cell.getRichStringCellValue().getString());
         assertEquals("mailto:[email protected]";, link.getAddress());
+        assertEquals(HSSFHyperlink.LINK_EMAIL, link.getType());
 
         sheet = wb.getSheet("Internal");
         cell = sheet.getRow(4).getCell(0);
@@ -73,6 +76,7 @@
         assertEquals("Link To First Sheet", 
cell.getRichStringCellValue().getString());
         assertEquals("WebLinks!A1", link.getTextMark());
         assertEquals("WebLinks!A1", link.getAddress());
+        assertEquals(HSSFHyperlink.LINK_DOCUMENT, link.getType());
     }
 
     public void testModify() {



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

Reply via email to