glens       02/03/25 02:29:27

  Modified:    src/records/styles record_test.xsl
  Added:       src/java/org/apache/poi/hssf/record SeriesLabelsRecord.java
               src/records/definitions attached_label_record.xml
               src/testcases/org/apache/poi/hssf/record
                        TestSeriesLabelsRecord.java
  Log:
  Series label record
  
  Revision  Changes    Path
  1.1                  
jakarta-poi/src/java/org/apache/poi/hssf/record/SeriesLabelsRecord.java
  
  Index: SeriesLabelsRecord.java
  ===================================================================
  
  /* ====================================================================
   * 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 [EMAIL PROTECTED]
   *
   * 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.record;
  
  
  
  import org.apache.poi.util.BitField;
  import org.apache.poi.util.LittleEndian;
  import org.apache.poi.util.StringUtil;
  import org.apache.poi.util.HexDump;
  
  /**
   * The series label record defines the type of label associated with the data format 
record.
   * NOTE: This source is automatically generated please do not modify this file.  
Either subclass or
   *       remove the record in src/records/definitions.
  
   * @author Glen Stampoultzis (glens at apache.org)
   */
  public class SeriesLabelsRecord
      extends Record
  {
      public final static short      sid                             = 0x100c;
      private  short      field_1_formatFlags;
      private BitField   showActual                                 = new 
BitField(0x1);
      private BitField   showPercent                                = new 
BitField(0x2);
      private BitField   labelAsPercentage                          = new 
BitField(0x4);
      private BitField   smoothedLine                               = new 
BitField(0x8);
      private BitField   showLabel                                  = new 
BitField(0x10);
      private BitField   showBubbleSizes                            = new 
BitField(0x20);
  
  
      public SeriesLabelsRecord()
      {
  
      }
  
      /**
       * Constructs a SeriesLabels record and sets its fields appropriately.
       *
       * @param id    id must be 0x100c or an exception
       *              will be throw upon validation
       * @param size  size the size of the data area of the record
       * @param data  data of the record (should not contain sid/len)
       */
  
      public SeriesLabelsRecord(short id, short size, byte [] data)
      {
          super(id, size, data);
      }
  
      /**
       * Constructs a SeriesLabels record and sets its fields appropriately.
       *
       * @param id    id must be 0x100c or an exception
       *              will be throw upon validation
       * @param size  size the size of the data area of the record
       * @param data  data of the record (should not contain sid/len)
       * @param offset of the record's data
       */
  
      public SeriesLabelsRecord(short id, short size, byte [] data, int offset)
      {
          super(id, size, data, offset);
      }
  
      /**
       * Checks the sid matches the expected side for this record
       *
       * @param id   the expected sid.
       */
      protected void validateSid(short id)
      {
          if (id != sid)
          {
              throw new RecordFormatException("Not a SeriesLabels record");
          }
      }
  
      protected void fillFields(byte [] data, short size, int offset)
      {
          field_1_formatFlags             = LittleEndian.getShort(data, 0x0 + offset);
  
      }
  
      public String toString()
      {
          StringBuffer buffer = new StringBuffer();
  
          buffer.append("[SeriesLabels]\n");
  
          buffer.append("    .formatFlags          = ")
              .append("0x")
              .append(HexDump.toHex((short)getFormatFlags()))
              .append(" (").append(getFormatFlags()).append(" )\n");
          buffer.append("         .showActual               = ").append(isShowActual   
       ()).append('\n');
          buffer.append("         .showPercent              = ").append(isShowPercent  
       ()).append('\n');
          buffer.append("         .labelAsPercentage        = 
").append(isLabelAsPercentage   ()).append('\n');
          buffer.append("         .smoothedLine             = ").append(isSmoothedLine 
       ()).append('\n');
          buffer.append("         .showLabel                = ").append(isShowLabel    
       ()).append('\n');
          buffer.append("         .showBubbleSizes          = 
").append(isShowBubbleSizes     ()).append('\n');
  
          buffer.append("[/SeriesLabels]\n");
          return buffer.toString();
      }
  
      public int serialize(int offset, byte[] data)
      {
          LittleEndian.putShort(data, 0 + offset, sid);
          LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
  
          LittleEndian.putShort(data, 4 + offset, field_1_formatFlags);
  
          return getRecordSize();
      }
  
      /**
       * Size of record (exluding 4 byte header)
       */
      public int getRecordSize()
      {
          return 4 + 2;
      }
  
      public short getSid()
      {
          return this.sid;
      }
  
  
      /**
       * Get the format flags field for the SeriesLabels record.
       */
      public short getFormatFlags()
      {
          return field_1_formatFlags;
      }
  
      /**
       * Set the format flags field for the SeriesLabels record.
       */
      public void setFormatFlags(short field_1_formatFlags)
      {
          this.field_1_formatFlags = field_1_formatFlags;
      }
  
      /**
       * Sets the show actual field value.
       * show actual value of the data point
       */
      public void setShowActual(boolean value)
      {
          field_1_formatFlags = showActual.setShortBoolean(field_1_formatFlags, value);
      }
  
      /**
       * show actual value of the data point
       * @return  the show actual field value.
       */
      public boolean isShowActual()
      {
          return showActual.isSet(field_1_formatFlags);
      }
  
      /**
       * Sets the show percent field value.
       * show value as percentage of total (pie charts only)
       */
      public void setShowPercent(boolean value)
      {
          field_1_formatFlags = showPercent.setShortBoolean(field_1_formatFlags, 
value);
      }
  
      /**
       * show value as percentage of total (pie charts only)
       * @return  the show percent field value.
       */
      public boolean isShowPercent()
      {
          return showPercent.isSet(field_1_formatFlags);
      }
  
      /**
       * Sets the label as percentage field value.
       * show category label/value as percentage (pie charts only)
       */
      public void setLabelAsPercentage(boolean value)
      {
          field_1_formatFlags = labelAsPercentage.setShortBoolean(field_1_formatFlags, 
value);
      }
  
      /**
       * show category label/value as percentage (pie charts only)
       * @return  the label as percentage field value.
       */
      public boolean isLabelAsPercentage()
      {
          return labelAsPercentage.isSet(field_1_formatFlags);
      }
  
      /**
       * Sets the smoothed line field value.
       * show smooth line
       */
      public void setSmoothedLine(boolean value)
      {
          field_1_formatFlags = smoothedLine.setShortBoolean(field_1_formatFlags, 
value);
      }
  
      /**
       * show smooth line
       * @return  the smoothed line field value.
       */
      public boolean isSmoothedLine()
      {
          return smoothedLine.isSet(field_1_formatFlags);
      }
  
      /**
       * Sets the show label field value.
       * display category label
       */
      public void setShowLabel(boolean value)
      {
          field_1_formatFlags = showLabel.setShortBoolean(field_1_formatFlags, value);
      }
  
      /**
       * display category label
       * @return  the show label field value.
       */
      public boolean isShowLabel()
      {
          return showLabel.isSet(field_1_formatFlags);
      }
  
      /**
       * Sets the show bubble sizes field value.
       * ??
       */
      public void setShowBubbleSizes(boolean value)
      {
          field_1_formatFlags = showBubbleSizes.setShortBoolean(field_1_formatFlags, 
value);
      }
  
      /**
       * ??
       * @return  the show bubble sizes field value.
       */
      public boolean isShowBubbleSizes()
      {
          return showBubbleSizes.isSet(field_1_formatFlags);
      }
  
  
  }  // END OF CLASS
  
  
  
  
  
  
  
  1.2       +6 -1      jakarta-poi/src/records/styles/record_test.xsl
  
  Index: record_test.xsl
  ===================================================================
  RCS file: /home/cvs/jakarta-poi/src/records/styles/record_test.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- record_test.xsl   10 Feb 2002 04:32:07 -0000      1.1
  +++ record_test.xsl   25 Mar 2002 10:29:26 -0000      1.2
  @@ -87,7 +87,8 @@
       public void testLoad()
               throws Exception
       {
  -
  +        fail("Not implemented");
  +        /*
           <xsl:value-of select="@name"/>Record record = new <xsl:value-of 
select="@name"/>Record((short)<xsl:value-of select="@id"/>, (short)data.length, data);
   <xsl:for-each select="//fields/field">        assertEquals( XXX, 
record.get<xsl:value-of select="recutil:getFieldName1stCap(@name,0)"/>());
   <xsl:apply-templates select="./bit" mode="get"/>
  @@ -96,10 +97,13 @@
           assertEquals( XXX, record.getRecordSize() );
   
           record.validateSid((short)<xsl:value-of select="@id"/>);
  +        */
       }
   
       public void testStore()
       {
  +        fail("Not implemented");
  +        /*
           <xsl:value-of select="@name"/>Record record = new <xsl:value-of 
select="@name"/>Record();
   <xsl:for-each select="//fields/field">        record.set<xsl:value-of 
select="recutil:getFieldName1stCap(@name,0)"/>( XXXX );
   <xsl:apply-templates select="./bit" mode="set"/>
  @@ -109,6 +113,7 @@
           assertEquals(recordBytes.length - 4, data.length);
           for (int i = 0; i &lt; data.length; i++)
               assertEquals("At offset " + i, data[i], recordBytes[i+4]);
  +        */
       }
   }
   </xsl:template>
  
  
  
  1.1                  jakarta-poi/src/records/definitions/attached_label_record.xml
  
  Index: attached_label_record.xml
  ===================================================================
  <record id="0x100c" name="SeriesLabels" package="org.apache.poi.hssf.record">
      <suffix>Record</suffix>
      <extends>Record</extends>
      <description>The series label record defines the type of label associated with 
the data format record.</description>
      <author>Glen Stampoultzis (glens at apache.org)</author>
      <fields>
          <field type="int" size="2" name="format flags">
              <bit number="0" name="show actual" description="show actual value of the 
data point"/>
              <bit number="1" name="show percent" description="show value as 
percentage of total (pie charts only)"/>
              <bit number="2" name="label as percentage" description="show category 
label/value as percentage (pie charts only)"/>
              <bit number="3" name="smoothed line" description="show smooth line"/>
              <bit number="4" name="show label" description="display category label"/>
              <bit number="5" name="show bubble sizes" description="??"/>
          </field>
      </fields>
  </record>
  
  
  
  1.1                  
jakarta-poi/src/testcases/org/apache/poi/hssf/record/TestSeriesLabelsRecord.java
  
  Index: TestSeriesLabelsRecord.java
  ===================================================================
  
  /* ====================================================================
   * 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 [EMAIL PROTECTED]
   *
   * 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.record;
  
  
  import junit.framework.TestCase;
  
  /**
   * Tests the serialization and deserialization of the SeriesLabelsRecord
   * class works correctly.  Test data taken directly from a real
   * Excel file.
   *
  
   * @author Glen Stampoultzis (glens at apache.org)
   */
  public class TestSeriesLabelsRecord
          extends TestCase
  {
      byte[] data = new byte[] {
          (byte)0x03,(byte)0x00
      };
  
      public TestSeriesLabelsRecord(String name)
      {
          super(name);
      }
  
      public void testLoad()
              throws Exception
      {
          SeriesLabelsRecord record = new SeriesLabelsRecord((short)0x100c, 
(short)data.length, data);
          assertEquals( 3, record.getFormatFlags());
          assertEquals( true, record.isShowActual() );
          assertEquals( true, record.isShowPercent() );
          assertEquals( false, record.isLabelAsPercentage() );
          assertEquals( false, record.isSmoothedLine() );
          assertEquals( false, record.isShowLabel() );
          assertEquals( false, record.isShowBubbleSizes() );
  
  
          assertEquals( 2+4, record.getRecordSize() );
  
          record.validateSid((short)0x100c);
      }
  
      public void testStore()
      {
          SeriesLabelsRecord record = new SeriesLabelsRecord();
          record.setShowActual( true );
          record.setShowPercent( true );
          record.setLabelAsPercentage( false );
          record.setSmoothedLine( false );
          record.setShowLabel( false );
          record.setShowBubbleSizes( false );
  
  
          byte [] recordBytes = record.serialize();
          assertEquals(recordBytes.length - 4, data.length);
          for (int i = 0; i < data.length; i++)
              assertEquals("At offset " + i, data[i], recordBytes[i+4]);
      }
  }
  
  
  


Reply via email to