sackley     2004/03/01 22:19:42

  Modified:    src/scratchpad/src/org/apache/poi/hwpf/usermodel
                        CharacterProperties.java CharacterRun.java
                        LineSpacingDescriptor.java Paragraph.java
                        ParagraphProperties.java Section.java
                        SectionProperties.java ShadingDescriptor.java
                        TableCellDescriptor.java TableProperties.java
  Removed:     src/scratchpad/src/org/apache/poi/hwpf/usermodel
                        CharacterRange.java ParagraphRange.java
                        SectionRange.java
  Log:
  latest changes
  
  Revision  Changes    Path
  1.5       +67 -130   
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/CharacterProperties.java
  
  Index: CharacterProperties.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/CharacterProperties.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CharacterProperties.java  13 Nov 2003 03:28:33 -0000      1.4
  +++ CharacterProperties.java  2 Mar 2004 06:19:41 -0000       1.5
  @@ -54,8 +54,8 @@
   
   package org.apache.poi.hwpf.usermodel;
   
  -import org.apache.poi.hwpf.model.hdftypes.definitions.CHPAbstractType;
  -import org.apache.poi.hwpf.model.hdftypes.StyleDescription;
  +import org.apache.poi.hwpf.model.types.CHPAbstractType;
  +import org.apache.poi.hwpf.model.StyleDescription;
   
   import org.apache.poi.hwpf.sprm.SprmBuffer;
   
  @@ -113,7 +113,6 @@
     public final static short SPRM_FELID = 0x486E;
     public final static short SPRM_IDCTHINT = 0x286F;
   
  -  SprmBuffer _chpx;
   
     public CharacterProperties()
     {
  @@ -139,12 +138,7 @@
   
     public void markDeleted(boolean mark)
     {
  -    if (_chpx != null && mark != isFRMarkDel())
  -    {
  -      byte newVal = (byte)(mark ? 1 : 0);
  -      _chpx.addSprm(SPRM_FRMARKDEL, newVal);
  -      super.setFRMarkDel(mark);
  -    }
  +    super.setFRMarkDel(mark);
     }
   
     public boolean isBold()
  @@ -154,12 +148,7 @@
   
     public void setBold(boolean bold)
     {
  -    if (_chpx != null && bold != isFBold())
  -    {
  -      byte newVal = (byte)(bold ? 1 : 0);
  -      _chpx.addSprm(SPRM_FBOLD, newVal);
  -      super.setFBold(bold);
  -    }
  +    super.setFBold(bold);
     }
   
     public boolean isItalic()
  @@ -169,12 +158,7 @@
   
     public void setItalic(boolean italic)
     {
  -    if (_chpx != null && italic != isFItalic())
  -    {
  -      byte newVal = (byte)(italic ? 1 : 0);
  -      _chpx.addSprm(SPRM_FITALIC, newVal);
  -      super.setFItalic(italic);
  -    }
  +    super.setFItalic(italic);
     }
   
     public boolean isOutlined()
  @@ -184,13 +168,7 @@
   
     public void setOutline(boolean outlined)
     {
  -    if (_chpx != null && outlined != isFOutline())
  -    {
  -      byte newVal = (byte)(outlined ? 1 : 0);
  -      _chpx.addSprm(SPRM_FOUTLINE, newVal);
  -      super.setFOutline(outlined);
  -    }
  -
  +    super.setFOutline(outlined);
     }
   
     public boolean isFldVanished()
  @@ -200,14 +178,9 @@
   
     public void setFldVanish(boolean fldVanish)
     {
  -    if (_chpx != null && fldVanish != isFFldVanish())
  -    {
  -      byte newVal = (byte)(fldVanish ? 1 : 0);
  -      _chpx.addSprm(SPRM_FFLDVANISH, newVal);
  -      super.setFFldVanish(fldVanish);
  -    }
  -
  +    super.setFFldVanish(fldVanish);
     }
  +
     public boolean isSmallCaps()
     {
       return isFSmallCaps();
  @@ -215,13 +188,9 @@
   
     public void setSmallCaps(boolean smallCaps)
     {
  -    if (_chpx != null && smallCaps != isFSmallCaps())
  -    {
  -      byte newVal = (byte)(smallCaps ? 1 : 0);
  -      _chpx.addSprm(SPRM_FSMALLCAPS, newVal);
  -      super.setFSmallCaps(smallCaps);
  -    }
  +    super.setFSmallCaps(smallCaps);
     }
  +
     public boolean isCapitalized()
     {
       return isFCaps();
  @@ -229,12 +198,7 @@
   
     public void setCapitalized(boolean caps)
     {
  -    if (_chpx != null && caps != isFCaps())
  -    {
  -      byte newVal = (byte)(caps ? 1 : 0);
  -      _chpx.addSprm(SPRM_FCAPS, newVal);
  -      super.setFCaps(caps);
  -    }
  +    super.setFCaps(caps);
     }
   
     public boolean isVanished()
  @@ -244,12 +208,7 @@
   
     public void setVanished(boolean vanish)
     {
  -    if (_chpx != null && vanish != isFVanish())
  -    {
  -      byte newVal = (byte)(vanish ? 1 : 0);
  -      _chpx.addSprm(SPRM_FVANISH, newVal);
  -      super.setFVanish(vanish);
  -    }
  +    super.setFVanish(vanish);
   
     }
     public boolean isMarkedInserted()
  @@ -259,12 +218,7 @@
   
     public void markInserted(boolean mark)
     {
  -    if (_chpx != null && mark != isFRMark())
  -    {
  -      byte newVal = (byte)(mark ? 1 : 0);
  -      _chpx.addSprm(SPRM_FRMARK, newVal);
  -      super.setFRMark(mark);
  -    }
  +    super.setFRMark(mark);
     }
   
     public boolean isStrikeThrough()
  @@ -274,14 +228,9 @@
   
     public void strikeThrough(boolean strike)
     {
  -    if (_chpx != null && strike != isFStrike())
  -    {
  -      byte newVal = (byte)(strike ? 1 : 0);
  -      _chpx.addSprm(SPRM_FSTRIKE, newVal);
  -      super.setFStrike(strike);
  -    }
  -
  +    super.setFStrike(strike);
     }
  +
     public boolean isShadowed()
     {
       return isFShadow();
  @@ -289,12 +238,7 @@
   
     public void setShadow(boolean shadow)
     {
  -    if (_chpx != null && shadow != isFShadow())
  -    {
  -      byte newVal = (byte)(shadow ? 1 : 0);
  -      _chpx.addSprm(SPRM_FSHADOW, newVal);
  -      super.setFShadow(shadow);
  -    }
  +    super.setFShadow(shadow);
   
     }
   
  @@ -305,13 +249,7 @@
   
     public void setEmbossed(boolean emboss)
     {
  -    if (_chpx != null && emboss != isFEmboss())
  -    {
  -      byte newVal = (byte)(emboss ? 1 : 0);
  -      _chpx.addSprm(SPRM_FEMBOSS, newVal);
  -      super.setFEmboss(emboss);
  -    }
  -
  +    super.setFEmboss(emboss);
     }
   
     public boolean isImprinted()
  @@ -322,12 +260,6 @@
     public void setImprinted(boolean imprint)
     {
       super.setFImprint(imprint);
  -    if (_chpx != null && imprint != isFImprint())
  -    {
  -      byte newVal = (byte)(imprint ? 1 : 0);
  -      _chpx.addSprm(SPRM_FIMPRINT, newVal);
  -    }
  -
     }
   
     public boolean isDoubleStrikeThrough()
  @@ -338,38 +270,6 @@
     public void setDoubleStrikethrough(boolean dstrike)
     {
       super.setFDStrike(dstrike);
  -    if (_chpx != null && dstrike != isFDStrike())
  -    {
  -      byte newVal = (byte)(dstrike ? 1 : 0);
  -      _chpx.addSprm(SPRM_FDSTRIKE, newVal);
  -    }
  -  }
  -
  -  public void setFtcAscii(int ftcAscii)
  -  {
  -    super.setFtcAscii(ftcAscii);
  -    if (_chpx != null && ftcAscii != getFtcAscii())
  -    {
  -      _chpx.addSprm(SPRM_RGFTCASCII, (short)ftcAscii);
  -    }
  -  }
  -
  -  public void setFtcFE(int ftcFE)
  -  {
  -    super.setFtcFE(ftcFE);
  -    if (_chpx != null && ftcFE != getFtcFE())
  -    {
  -      _chpx.addSprm(SPRM_RGFTCFAREAST, (short)ftcFE);
  -    }
  -  }
  -
  -  public void setFtcOther(int ftcOther)
  -  {
  -    super.setFtcOther(ftcOther);
  -    if (_chpx != null && ftcOther != getFtcOther())
  -    {
  -      _chpx.addSprm(SPRM_RGFTCNOTFAREAST, (short)ftcOther);
  -    }
     }
   
     public int getFontSize()
  @@ -380,10 +280,6 @@
     public void setFontSize(int halfPoints)
     {
       super.setHps(halfPoints);
  -    if (_chpx != null && halfPoints != getHps())
  -    {
  -      _chpx.addSprm(SPRM_HPS, (short)halfPoints);
  -    }
     }
   
     public int getCharacterSpacing()
  @@ -393,11 +289,7 @@
   
     public void setCharacterSpacing(int twips)
     {
  -     super.setDxaSpace(twips);
  -    if (_chpx != null && twips != getDxaSpace())
  -    {
  -      _chpx.addSprm(SPRM_DXASPACE, twips);
  -    }
  +    super.setDxaSpace(twips);
     }
   
     public short getSubSuperScriptIndex()
  @@ -408,11 +300,56 @@
     public void setSubSuperScriptIndex(short iss)
     {
       super.setDxaSpace(iss);
  -    if (_chpx != null && iss != getIss())
  -    {
  -      _chpx.addSprm(SPRM_DXASPACE, iss);
  -    }
  +  }
  +
  +  public int getUnderlineCode()
  +  {
  +    return super.getKul();
  +  }
  +
  +  public void setUnderlineCode(int kul)
  +  {
  +    super.setKul((byte)kul);
  +  }
  +
  +  public int getColor()
  +  {
  +    return super.getIco();
  +  }
  +
  +  public void setColor(int color)
  +  {
  +    super.setIco((byte)color);
  +  }
  +
  +  public int getVerticalOffset()
  +  {
  +    return super.getHpsPos();
  +  }
   
  +  public void setVerticalOffset(int hpsPos)
  +  {
  +    super.setHpsPos(hpsPos);
  +  }
  +
  +  public int getKerning()
  +  {
  +    return super.getHpsKern();
  +  }
  +
  +  public void setKerning(int kern)
  +  {
  +    super.setHpsKern(kern);
  +  }
  +
  +  public boolean isHighlighted()
  +  {
  +    return super.isFHighlight();
  +  }
  +
  +  public void setHighlighted(byte color)
  +  {
  +    super.setIcoHighlight(color);
     }
   
   
  
  
  
  1.3       +188 -155  
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/CharacterRun.java
  
  Index: CharacterRun.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/CharacterRun.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CharacterRun.java 13 Nov 2003 03:28:33 -0000      1.2
  +++ CharacterRun.java 2 Mar 2004 06:19:41 -0000       1.3
  @@ -54,13 +54,17 @@
   
   package org.apache.poi.hwpf.usermodel;
   
  -import org.apache.poi.hwpf.model.hdftypes.definitions.CHPAbstractType;
  -import org.apache.poi.hwpf.model.hdftypes.StyleDescription;
  +import org.apache.poi.hwpf.model.types.CHPAbstractType;
  +import org.apache.poi.hwpf.model.StyleDescription;
  +import org.apache.poi.hwpf.model.CHPX;
  +import org.apache.poi.hwpf.model.StyleSheet;
   
   import org.apache.poi.hwpf.sprm.SprmBuffer;
  +import org.apache.poi.hwpf.sprm.CharacterSprmCompressor;
   
   public class CharacterRun
  -  extends CHPAbstractType implements Cloneable
  +  extends Range
  +  implements Cloneable
   {
     public final static short SPRM_FRMARKDEL = (short)0x0800;
     public final static short SPRM_FRMARK = 0x0801;
  @@ -114,321 +118,350 @@
     public final static short SPRM_IDCTHINT = 0x286F;
   
     SprmBuffer _chpx;
  +  CharacterProperties _props;
   
  -  public CharacterRun()
  +  CharacterRun(CHPX chpx, StyleSheet ss, short istd, Range parent)
     {
  -    field_17_fcPic = -1;
  -    field_22_dttmRMark = new DateAndTime();
  -    field_23_dttmRMarkDel = new DateAndTime();
  -    field_36_dttmPropRMark = new DateAndTime();
  -    field_40_dttmDispFldRMark = new DateAndTime();
  -    field_41_xstDispFldRMark = new byte[36];
  -    field_42_shd = new ShadingDescriptor();
  -    field_43_brc = new BorderCode();
  -    field_7_hps = 20;
  -    field_24_istd = 10;
  -    field_16_wCharScale = 100;
  -    field_13_lidDefault = 0x0400;
  -    field_14_lidFE = 0x0400;
  +    super(chpx.getStart(), chpx.getEnd(), parent);
  +    _props = chpx.getCharacterProperties(ss, istd);
  +    _chpx = chpx.getSprmBuf();
     }
   
  +//  SprmBuffer initProperties(CharacterProperties baseStyle)
  +//  {
  +//    byte[] grpprl = CharacterSprmCompressor.compressCharacterProperty(_props, 
baseStyle);
  +//    _chpx = new SprmBuffer(grpprl);
  +//    return _chpx;
  +//  }
  +
     public boolean isMarkedDeleted()
     {
  -    return isFRMarkDel();
  +    return _props.isFRMarkDel();
     }
   
     public void markDeleted(boolean mark)
     {
  -    super.setFRMarkDel(mark);
  -    if (_chpx != null && mark != isFRMarkDel())
  -    {
  -      byte newVal = (byte)(mark ? 1 : 0);
  -      _chpx.addSprm(SPRM_FRMARKDEL, newVal);
  -    }
  +    _props.setFRMarkDel(mark);
  +
  +    byte newVal = (byte)(mark ? 1 : 0);
  +    _chpx.addSprm(SPRM_FRMARKDEL, newVal);
  +
     }
   
     public boolean isBold()
     {
  -    return isFBold();
  +    return _props.isFBold();
     }
   
     public void setBold(boolean bold)
     {
  -    super.setFBold(bold);
  -    if (_chpx != null && bold != isFBold())
  -    {
  -      byte newVal = (byte)(bold ? 1 : 0);
  -      _chpx.addSprm(SPRM_FBOLD, newVal);
  -    }
  +    _props.setFBold(bold);
  +
  +    byte newVal = (byte)(bold ? 1 : 0);
  +    _chpx.addSprm(SPRM_FBOLD, newVal);
  +
     }
   
     public boolean isItalic()
     {
  -    return isFItalic();
  +    return _props.isFItalic();
     }
   
     public void setItalic(boolean italic)
     {
  -    super.setFItalic(italic);
  -    if (_chpx != null && italic != isFItalic())
  -    {
  -      byte newVal = (byte)(italic ? 1 : 0);
  -      _chpx.addSprm(SPRM_FITALIC, newVal);
  -    }
  +    _props.setFItalic(italic);
  +
  +    byte newVal = (byte)(italic ? 1 : 0);
  +    _chpx.addSprm(SPRM_FITALIC, newVal);
  +
     }
   
     public boolean isOutlined()
     {
  -    return isFOutline();
  +    return _props.isFOutline();
     }
   
     public void setOutline(boolean outlined)
     {
  -    super.setFOutline(outlined);
  -    if (_chpx != null && outlined != isFOutline())
  -    {
  -      byte newVal = (byte)(outlined ? 1 : 0);
  -      _chpx.addSprm(SPRM_FOUTLINE, newVal);
  -    }
  +    _props.setFOutline(outlined);
  +
  +    byte newVal = (byte)(outlined ? 1 : 0);
  +    _chpx.addSprm(SPRM_FOUTLINE, newVal);
   
     }
   
     public boolean isFldVanished()
     {
  -    return isFFldVanish();
  +    return _props.isFFldVanish();
     }
   
     public void setFldVanish(boolean fldVanish)
     {
  -    super.setFFldVanish(fldVanish);
  -    if (_chpx != null && fldVanish != isFFldVanish())
  -    {
  -      byte newVal = (byte)(fldVanish ? 1 : 0);
  -      _chpx.addSprm(SPRM_FFLDVANISH, newVal);
  -    }
  +    _props.setFFldVanish(fldVanish);
  +
  +    byte newVal = (byte)(fldVanish ? 1 : 0);
  +    _chpx.addSprm(SPRM_FFLDVANISH, newVal);
   
     }
  +
     public boolean isSmallCaps()
     {
  -    return isFSmallCaps();
  +    return _props.isFSmallCaps();
     }
   
     public void setSmallCaps(boolean smallCaps)
     {
  -    super.setFSmallCaps(smallCaps);
  -    if (_chpx != null && smallCaps != isFSmallCaps())
  -    {
  -      byte newVal = (byte)(smallCaps ? 1 : 0);
  -      _chpx.addSprm(SPRM_FSMALLCAPS, newVal);
  -    }
  +    _props.setFSmallCaps(smallCaps);
  +
  +    byte newVal = (byte)(smallCaps ? 1 : 0);
  +    _chpx.addSprm(SPRM_FSMALLCAPS, newVal);
  +
     }
  +
     public boolean isCapitalized()
     {
  -    return isFCaps();
  +    return _props.isFCaps();
     }
   
     public void setCapitalized(boolean caps)
     {
  -    super.setFCaps(caps);
  -    if (_chpx != null && caps != isFCaps())
  -    {
  -      byte newVal = (byte)(caps ? 1 : 0);
  -      _chpx.addSprm(SPRM_FCAPS, newVal);
  -    }
  +    _props.setFCaps(caps);
  +
  +    byte newVal = (byte)(caps ? 1 : 0);
  +    _chpx.addSprm(SPRM_FCAPS, newVal);
  +
     }
   
     public boolean isVanished()
     {
  -    return isFVanish();
  +    return _props.isFVanish();
     }
   
     public void setVanished(boolean vanish)
     {
  -    super.setFVanish(vanish);
  -    if (_chpx != null && vanish != isFVanish())
  -    {
  -      byte newVal = (byte)(vanish ? 1 : 0);
  -      _chpx.addSprm(SPRM_FVANISH, newVal);
  -    }
  +    _props.setFVanish(vanish);
  +
  +    byte newVal = (byte)(vanish ? 1 : 0);
  +    _chpx.addSprm(SPRM_FVANISH, newVal);
   
     }
  +
     public boolean isMarkedInserted()
     {
  -    return isFRMark();
  +    return _props.isFRMark();
     }
   
     public void markInserted(boolean mark)
     {
  -    super.setFRMark(mark);
  -    if (_chpx != null && mark != isFRMark())
  -    {
  -      byte newVal = (byte)(mark ? 1 : 0);
  -      _chpx.addSprm(SPRM_FRMARK, newVal);
  -    }
  +    _props.setFRMark(mark);
  +
  +    byte newVal = (byte)(mark ? 1 : 0);
  +    _chpx.addSprm(SPRM_FRMARK, newVal);
  +
     }
   
     public boolean isStrikeThrough()
     {
  -    return isFStrike();
  +    return _props.isFStrike();
     }
   
     public void strikeThrough(boolean strike)
     {
  -    super.setFStrike(strike);
  -    if (_chpx != null && strike != isFStrike())
  -    {
  -      byte newVal = (byte)(strike ? 1 : 0);
  -      _chpx.addSprm(SPRM_FSTRIKE, newVal);
  -    }
  +    _props.setFStrike(strike);
  +
  +    byte newVal = (byte)(strike ? 1 : 0);
  +    _chpx.addSprm(SPRM_FSTRIKE, newVal);
   
     }
  +
     public boolean isShadowed()
     {
  -    return isFShadow();
  +    return _props.isFShadow();
     }
   
     public void setShadow(boolean shadow)
     {
  -    super.setFShadow(shadow);
  -    if (_chpx != null && shadow != isFShadow())
  -    {
  -      byte newVal = (byte)(shadow ? 1 : 0);
  -      _chpx.addSprm(SPRM_FSHADOW, newVal);
  -    }
  +    _props.setFShadow(shadow);
  +
  +    byte newVal = (byte)(shadow ? 1 : 0);
  +    _chpx.addSprm(SPRM_FSHADOW, newVal);
   
     }
   
     public boolean isEmbossed()
     {
  -    return isFEmboss();
  +    return _props.isFEmboss();
     }
   
     public void setEmbossed(boolean emboss)
     {
  -    super.setFEmboss(emboss);
  -    if (_chpx != null && emboss != isFEmboss())
  -    {
  -      byte newVal = (byte)(emboss ? 1 : 0);
  -      _chpx.addSprm(SPRM_FEMBOSS, newVal);
  -    }
  +    _props.setFEmboss(emboss);
  +
  +    byte newVal = (byte)(emboss ? 1 : 0);
  +    _chpx.addSprm(SPRM_FEMBOSS, newVal);
   
     }
   
     public boolean isImprinted()
     {
  -    return isFImprint();
  +    return _props.isFImprint();
     }
   
     public void setImprinted(boolean imprint)
     {
  -    super.setFImprint(imprint);
  -    if (_chpx != null && imprint != isFImprint())
  -    {
  -      byte newVal = (byte)(imprint ? 1 : 0);
  -      _chpx.addSprm(SPRM_FIMPRINT, newVal);
  -    }
  +    _props.setFImprint(imprint);
  +
  +    byte newVal = (byte)(imprint ? 1 : 0);
  +    _chpx.addSprm(SPRM_FIMPRINT, newVal);
   
     }
   
     public boolean isDoubleStrikeThrough()
     {
  -    return isFDStrike();
  +    return _props.isFDStrike();
     }
   
     public void setDoubleStrikethrough(boolean dstrike)
     {
  -    super.setFDStrike(dstrike);
  -    if (_chpx != null && dstrike != isFDStrike())
  -    {
  -      byte newVal = (byte)(dstrike ? 1 : 0);
  -      _chpx.addSprm(SPRM_FDSTRIKE, newVal);
  -    }
  +    _props.setFDStrike(dstrike);
  +
  +    byte newVal = (byte)(dstrike ? 1 : 0);
  +    _chpx.addSprm(SPRM_FDSTRIKE, newVal);
  +
     }
   
     public void setFtcAscii(int ftcAscii)
     {
  -    super.setFtcAscii(ftcAscii);
  -    if (_chpx != null && ftcAscii != getFtcAscii())
  -    {
  -      _chpx.addSprm(SPRM_RGFTCASCII, (short)ftcAscii);
  -    }
  +    _props.setFtcAscii(ftcAscii);
  +
  +    _chpx.addSprm(SPRM_RGFTCASCII, (short)ftcAscii);
  +
     }
   
     public void setFtcFE(int ftcFE)
     {
  -    super.setFtcFE(ftcFE);
  -    if (_chpx != null && ftcFE != getFtcFE())
  -    {
  -      _chpx.addSprm(SPRM_RGFTCFAREAST, (short)ftcFE);
  -    }
  +    _props.setFtcFE(ftcFE);
  +
  +    _chpx.addSprm(SPRM_RGFTCFAREAST, (short)ftcFE);
  +
     }
   
     public void setFtcOther(int ftcOther)
     {
  -    super.setFtcOther(ftcOther);
  -    if (_chpx != null && ftcOther != getFtcOther())
  -    {
  -      _chpx.addSprm(SPRM_RGFTCNOTFAREAST, (short)ftcOther);
  -    }
  +    _props.setFtcOther(ftcOther);
  +
  +    _chpx.addSprm(SPRM_RGFTCNOTFAREAST, (short)ftcOther);
  +
     }
   
     public int getFontSize()
     {
  -    return getHps();
  +    return _props.getHps();
     }
   
     public void setFontSize(int halfPoints)
     {
  -    super.setHps(halfPoints);
  -    if (_chpx != null && halfPoints != getHps())
  -    {
  -      _chpx.addSprm(SPRM_HPS, (short)halfPoints);
  -    }
  +    _props.setHps(halfPoints);
  +
  +    _chpx.addSprm(SPRM_HPS, (short)halfPoints);
  +
     }
   
     public int getCharacterSpacing()
     {
  -    return getDxaSpace();
  +    return _props.getDxaSpace();
     }
   
     public void setCharacterSpacing(int twips)
     {
  -     super.setDxaSpace(twips);
  -    if (_chpx != null && twips != getDxaSpace())
  -    {
  -      _chpx.addSprm(SPRM_DXASPACE, twips);
  -    }
  +    _props.setDxaSpace(twips);
  +
  +    _chpx.addSprm(SPRM_DXASPACE, twips);
  +
     }
   
     public short getSubSuperScriptIndex()
     {
  -    return getIss();
  +    return _props.getIss();
     }
   
     public void setSubSuperScriptIndex(short iss)
     {
  -    super.setDxaSpace(iss);
  -    if (_chpx != null && iss != getIss())
  -    {
  -      _chpx.addSprm(SPRM_DXASPACE, iss);
  -    }
  +    _props.setDxaSpace(iss);
  +
  +    _chpx.addSprm(SPRM_DXASPACE, iss);
  +
  +  }
   
  +  public int getUnderlineCode()
  +  {
  +    return _props.getKul();
  +  }
  +
  +  public void setUnderlineCode(int kul)
  +  {
  +    _props.setKul((byte)kul);
  +    _chpx.addSprm(SPRM_KUL, (byte)kul);
     }
   
  +  public int getColor()
  +  {
  +    return _props.getIco();
  +  }
  +
  +  public void setColor(int color)
  +  {
  +    _props.setIco((byte)color);
  +    _chpx.addSprm(SPRM_ICO, (byte)color);
  +  }
  +
  +  public int getVerticalOffset()
  +  {
  +    return _props.getHpsPos();
  +  }
  +
  +  public void setVerticalOffset(int hpsPos)
  +  {
  +    _props.setHpsPos(hpsPos);
  +    _chpx.addSprm(SPRM_HPSPOS, (byte)hpsPos);
  +  }
  +
  +  public int getKerning()
  +  {
  +    return _props.getHpsKern();
  +  }
  +
  +  public void setKerning(int kern)
  +  {
  +    _props.setHpsKern(kern);
  +    _chpx.addSprm(SPRM_HPSKERN, (short)kern);
  +  }
  +
  +  public boolean isHighlighted()
  +  {
  +    return _props.isFHighlight();
  +  }
  +
  +  public void setHighlighted(byte color)
  +  {
  +    _props.setFHighlight(true);
  +    _props.setIcoHighlight(color);
  +    _chpx.addSprm(SPRM_HIGHLIGHT, color);
  +  }
   
     public Object clone()
       throws CloneNotSupportedException
     {
       CharacterRun cp = (CharacterRun)super.clone();
  -    cp.field_22_dttmRMark = (DateAndTime)field_22_dttmRMark.clone();
  -    cp.field_23_dttmRMarkDel = (DateAndTime)field_23_dttmRMarkDel.clone();
  -    cp.field_36_dttmPropRMark = (DateAndTime)field_36_dttmPropRMark.clone();
  -    cp.field_40_dttmDispFldRMark = (DateAndTime)field_40_dttmDispFldRMark.clone();
  -    cp.field_41_xstDispFldRMark = (byte[])field_41_xstDispFldRMark.clone();
  -    cp.field_42_shd = (ShadingDescriptor)field_42_shd.clone();
  +    cp._props.setDttmRMark((DateAndTime)_props.getDttmRMark().clone());
  +    cp._props.setDttmRMarkDel((DateAndTime)_props.getDttmRMarkDel().clone());
  +    cp._props.setDttmPropRMark((DateAndTime)_props.getDttmPropRMark().clone());
  +    cp._props.setDttmDispFldRMark((DateAndTime)_props.getDttmDispFldRMark().
  +                                  clone());
  +    cp._props.setXstDispFldRMark((byte[])_props.getXstDispFldRMark().clone());
  +    cp._props.setShd((ShadingDescriptor)_props.getShd().clone());
   
       return cp;
     }
  -
   
   }
  
  
  
  1.3       +7 -0      
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/LineSpacingDescriptor.java
  
  Index: LineSpacingDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/LineSpacingDescriptor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LineSpacingDescriptor.java        11 Nov 2003 11:42:51 -0000      1.2
  +++ LineSpacingDescriptor.java        2 Mar 2004 06:19:41 -0000       1.3
  @@ -83,6 +83,13 @@
       _fMultiLinespace = fMultiLinespace;
     }
   
  +  public int toInt()
  +  {
  +    byte[] intHolder = new byte[4];
  +    serialize(intHolder, 0);
  +    return LittleEndian.getInt(intHolder);
  +  }
  +
     public void serialize(byte[] buf, int offset)
     {
       LittleEndian.putShort(buf, offset, _dyaLine);
  
  
  
  1.2       +372 -30   
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Paragraph.java
  
  Index: Paragraph.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Paragraph.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Paragraph.java    11 Nov 2003 11:42:57 -0000      1.1
  +++ Paragraph.java    2 Mar 2004 06:19:41 -0000       1.2
  @@ -54,13 +54,17 @@
   
   package org.apache.poi.hwpf.usermodel;
   
  -import org.apache.poi.hwpf.model.hdftypes.definitions.PAPAbstractType;
  -import org.apache.poi.hwpf.model.hdftypes.StyleDescription;
  +import org.apache.poi.hwpf.model.types.PAPAbstractType;
  +import org.apache.poi.hwpf.model.StyleDescription;
  +import org.apache.poi.hwpf.model.StyleSheet;
  +import org.apache.poi.hwpf.model.PAPX;
   
   import org.apache.poi.hwpf.sprm.SprmBuffer;
  +import org.apache.poi.hwpf.sprm.ParagraphSprmCompressor;
  +import org.apache.poi.hwpf.sprm.TableSprmCompressor;
   
   public class Paragraph
  -  extends PAPAbstractType
  +  extends Range
       implements Cloneable
   {
     public final static short SPRM_JC = 0x2403;
  @@ -121,41 +125,379 @@
     public final static short SPRM_FADJUSTRIGHT = 0x2448;
   
   
  -  private StyleDescription _baseStyle;
  -  private SprmBuffer _papx;
  +  private short _istd;
  +  private ParagraphProperties _props;
  +  protected SprmBuffer _papx;
   
  -  public Paragraph()
  +  protected Paragraph(int startIdx, int endIdx, Table parent)
     {
  -    field_21_lspd = new LineSpacingDescriptor();
  -    field_24_phe = new byte[12];
  -    field_46_brcTop = new BorderCode();
  -    field_47_brcLeft = new BorderCode();
  -    field_48_brcBottom = new BorderCode();
  -    field_49_brcRight = new BorderCode();
  -    field_50_brcBetween = new BorderCode();
  -    field_51_brcBar = new BorderCode();
  -    field_60_anld = new byte[84];
  -    this.field_17_fWidowControl = 1;
  -    this.field_21_lspd.setMultiLinespace((short)1);
  -    this.field_21_lspd.setDyaLine((short)240);
  -    this.field_12_ilvl = (byte)9;
  +    super(startIdx, endIdx, Range.PARAGRAPH_INDEX, parent);
  +    PAPX papx = (PAPX)_paragraphs.get(_parEnd - 1);
  +    _props = papx.getParagraphProperties(_doc.getStyleSheet());
  +    _papx = papx.getSprmBuf();
  +  }
  +
  +  public Paragraph(int start, int end, ParagraphProperties pap, SprmBuffer papx, 
Range parent)
  +  {
  +    super(start, end, parent);
  +    _props = pap;
  +    _papx = papx;
  +  }
  +
  +  public boolean isInTable()
  +  {
  +    return _props.getFInTable() != 0;
  +  }
  +
  +  public boolean isTableRowEnd()
  +  {
  +    return _props.getFTtp() != 0 || _props.getFTtpEmbedded() != 0;
  +  }
  +
  +  public int getTableLevel()
  +  {
  +    return _props.getTableLevel();
  +  }
  +
  +  public boolean isEmbeddedCellMark()
  +  {
  +    return _props.getEmbeddedCellMark() != 0;
  +  }
  +
  +  public int getJustification()
  +  {
  +    return _props.getJc();
  +  }
  +
  +  public void setJustification(byte jc)
  +  {
  +    _props.setJc(jc);
  +    _papx.addSprm(SPRM_JC, jc);
  +  }
  +
  +  public boolean keepOnPage()
  +  {
  +    return _props.getFKeep() != 0;
  +  }
  +
  +  public void setKeepOnPage(boolean fKeep)
  +  {
  +    byte keep = (byte)(fKeep ? 1 : 0);
  +    _props.setFKeep(keep);
  +    _papx.addSprm(SPRM_FKEEP, keep);
  +  }
  +
  +  public boolean keepWithNext()
  +  {
  +    return _props.getFKeepFollow() != 0;
  +  }
  +
  +  public void setKeepWithNext(boolean fKeepFollow)
  +  {
  +    byte keepFollow = (byte)(fKeepFollow ? 1 : 0);
  +    _props.setFKeepFollow(keepFollow);
  +    _papx.addSprm(SPRM_FKEEPFOLLOW, keepFollow);
  +  }
  +
  +  public boolean pageBreakBefore()
  +  {
  +    return _props.getFPageBreakBefore() != 0;
  +  }
  +
  +  public void setPageBreakBefore(boolean fPageBreak)
  +  {
  +    byte pageBreak = (byte)(fPageBreak ? 1 : 0);
  +    _props.setFPageBreakBefore(pageBreak);
  +    _papx.addSprm(SPRM_FPAGEBREAKBEFORE, pageBreak);
  +  }
  +
  +  public boolean isLineNotNumbered()
  +  {
  +    return _props.getFNoLnn() != 0;
  +  }
  +
  +  public void setLineNotNumbered(boolean fNoLnn)
  +  {
  +    byte noLnn = (byte)(fNoLnn ? 1 : 0);
  +    _props.setFNoLnn(noLnn);
  +    _papx.addSprm(SPRM_FNOLINENUMB, noLnn);
  +  }
  +
  +  public boolean isSideBySide()
  +  {
  +    return _props.getFSideBySide() != 0;
  +  }
  +
  +  public void setSideBySide(boolean fSideBySide)
  +  {
  +    byte sideBySide = (byte)(fSideBySide ? 1 : 0);
  +    _props.setFSideBySide(sideBySide);
  +    _papx.addSprm(SPRM_FSIDEBYSIDE, sideBySide);
  +  }
  +
  +  public boolean isAutoHyphenated()
  +  {
  +    return _props.getFNoAutoHyph() == 0;
  +  }
   
  +  public void setAutoHyphenated(boolean autoHyph)
  +  {
  +    byte auto = (byte)(!autoHyph ? 1 : 0);
  +    _props.setFNoAutoHyph(auto);
  +    _papx.addSprm(SPRM_FNOAUTOHYPH, auto);
  +  }
  +
  +  public boolean isWidowControlled()
  +  {
  +    return _props.getFWidowControl() != 0;
  +  }
  +
  +  public void setWidowControl(boolean widowControl)
  +  {
  +    byte widow = (byte)(widowControl ? 1 : 0);
  +    _props.setFWidowControl(widow);
  +    _papx.addSprm(SPRM_FWIDOWCONTROL, widow);
  +  }
  +
  +  public int getIndentFromRight()
  +  {
  +    return _props.getDxaRight();
  +  }
  +
  +  public void setIndentFromRight(int dxaRight)
  +  {
  +    _props.setDxaRight(dxaRight);
  +    _papx.addSprm(SPRM_DXARIGHT, (short)dxaRight);
  +  }
  +
  +  public int getIndentFromLeft()
  +  {
  +    return _props.getDxaLeft();
  +  }
  +
  +  public void setIndentFromLeft(int dxaLeft)
  +  {
  +    _props.setDxaLeft(dxaLeft);
  +    _papx.addSprm(SPRM_DXALEFT, (short)dxaLeft);
  +  }
  +
  +  public int getFirstLineIndent()
  +  {
  +    return _props.getDxaLeft1();
  +  }
  +
  +  public void setFirstLineIndent(int first)
  +  {
  +    _props.setDxaLeft1(first);
  +    _papx.addSprm(SPRM_DXALEFT1, (short)first);
  +  }
  +
  +  public LineSpacingDescriptor getLineSpacing()
  +  {
  +    return _props.getLspd();
  +  }
  +
  +  public void setLineSpacing(LineSpacingDescriptor lspd)
  +  {
  +    _props.setLspd(lspd);
  +    _papx.addSprm(SPRM_DYALINE, lspd.toInt());
  +  }
  +
  +  public int getSpacingBefore()
  +  {
  +    return _props.getDyaBefore();
  +  }
  +
  +  public void setSpacingBefore(int before)
  +  {
  +    _props.setDyaBefore(before);
  +    _papx.addSprm(SPRM_DYABEFORE, (short)before);
  +  }
  +
  +  public int getSpacingAfter()
  +  {
  +    return _props.getDyaAfter();
  +  }
  +
  +  public void setSpacingAfter(int after)
  +  {
  +    _props.setDyaAfter(after);
  +    _papx.addSprm(SPRM_DYAAFTER, (short)after);
  +  }
  +
  +  public boolean isKinsoku()
  +  {
  +    return _props.getFKinsoku() != 0;
  +  }
  +
  +  public void setKinsoku(boolean kinsoku)
  +  {
  +    byte kin = (byte)(kinsoku ? 1 : 0);
  +    _props.setFKinsoku(kin);
  +    _papx.addSprm(SPRM_FKINSOKU, kin);
  +  }
  +
  +  public boolean isWordWrapped()
  +  {
  +    return _props.getFWordWrap() != 0;
  +  }
  +
  +  public void setWordWrapped(boolean wrap)
  +  {
  +    byte wordWrap = (byte)(wrap ? 1 : 0);
  +    _props.setFWordWrap(wordWrap);
  +    _papx.addSprm(SPRM_FWORDWRAP, wordWrap);
  +  }
  +
  +  public int getFontAlignment()
  +  {
  +    return _props.getWAlignFont();
  +  }
  +
  +  public void setFontAlignment(int align)
  +  {
  +    _props.setWAlignFont(align);
  +    _papx.addSprm(SPRM_WALIGNFONT, (short)align);
  +  }
  +
  +  public boolean isVertical()
  +  {
  +    return _props.isFVertical();
  +  }
  +
  +  public void setVertical(boolean vertical)
  +  {
  +    _props.setFVertical(vertical);
  +    _papx.addSprm(SPRM_FRAMETEXTFLOW, getFrameTextFlow());
  +  }
  +
  +  public boolean isBackward()
  +  {
  +    return _props.isFBackward();
  +  }
  +
  +  public void setBackward(boolean bward)
  +  {
  +    _props.setFBackward(bward);
  +    _papx.addSprm(SPRM_FRAMETEXTFLOW, getFrameTextFlow());
  +  }
  +
  +  public BorderCode getTopBorder()
  +  {
  +    return _props.getBrcTop();
  +  }
  +
  +  public void setTopBorder(BorderCode top)
  +  {
  +    _props.setBrcTop(top);
  +    _papx.addSprm(SPRM_BRCTOP, top.toInt());
  +  }
  +
  +  public BorderCode getLeftBorder()
  +  {
  +    return _props.getBrcLeft();
  +  }
  +
  +  public void setLeftBorder(BorderCode left)
  +  {
  +    _props.setBrcLeft(left);
  +    _papx.addSprm(SPRM_BRCLEFT, left.toInt());
  +  }
  +
  +  public BorderCode getBottomBorder()
  +  {
  +    return _props.getBrcBottom();
  +  }
  +
  +  public void setBottomBorder(BorderCode bottom)
  +  {
  +    _props.setBrcBottom(bottom);
  +    _papx.addSprm(SPRM_BRCBOTTOM, bottom.toInt());
  +  }
  +
  +  public BorderCode getRightBorder()
  +  {
  +    return _props.getBrcRight();
  +  }
  +
  +  public void setRightBorder(BorderCode right)
  +  {
  +    _props.setBrcRight(right);
  +    _papx.addSprm(SPRM_BRCRIGHT, right.toInt());
  +  }
  +
  +  public BorderCode getBarBorder()
  +  {
  +    return _props.getBrcBar();
  +  }
  +
  +  public void setBarBorder(BorderCode bar)
  +  {
  +    _props.setBrcBar(bar);
  +    _papx.addSprm(SPRM_BRCBAR, bar.toInt());
  +  }
  +
  +  public ShadingDescriptor getShading()
  +  {
  +    return _props.getShd();
  +  }
  +
  +  public void setShading(ShadingDescriptor shd)
  +  {
  +    _props.setShd(shd);
  +    _papx.addSprm(SPRM_SHD, shd.toShort());
  +  }
  +
  +  public DropCapSpecifier getDropCap()
  +  {
  +    return _props.getDcs();
  +  }
  +
  +  public void setDropCap(DropCapSpecifier dcs)
  +  {
  +    _props.setDcs(dcs);
  +    _papx.addSprm(SPRM_DCS, dcs.toShort());
  +  }
  +
  +  void setTableRowEnd(TableProperties props)
  +  {
  +    setTableRowEnd((byte)1);
  +    byte[] grpprl = TableSprmCompressor.compressTableProperty(props);
  +    _papx.append(grpprl);
  +  }
  +
  +  private void setTableRowEnd(byte val)
  +  {
  +    _props.setFTtp(val);
  +    _papx.addSprm(SPRM_FTTP, val);
     }
   
     public Object clone()
       throws CloneNotSupportedException
     {
  -    Paragraph pp = (Paragraph)super.clone();
  -    pp.field_21_lspd = (LineSpacingDescriptor)field_21_lspd.clone();
  -    pp.field_24_phe = (byte[])field_24_phe.clone();
  -    pp.field_46_brcTop = (BorderCode)field_46_brcTop.clone();
  -    pp.field_47_brcLeft = (BorderCode)field_47_brcLeft.clone();
  -    pp.field_48_brcBottom = (BorderCode)field_48_brcBottom.clone();
  -    pp.field_49_brcRight = (BorderCode)field_49_brcRight.clone();
  -    pp.field_50_brcBetween = (BorderCode)field_50_brcBetween.clone();
  -    pp.field_51_brcBar = (BorderCode)field_51_brcBar.clone();
  -    pp.field_60_anld = (byte[])field_60_anld.clone();
  -    return pp;
  +    Paragraph p = (Paragraph)super.clone();
  +    p._props = (ParagraphProperties)_props.clone();
  +    //p._baseStyle = _baseStyle;
  +    p._papx = new SprmBuffer();
  +    return p;
  +  }
  +
  +  private short getFrameTextFlow()
  +  {
  +    short retVal = 0;
  +    if (_props.isFVertical())
  +    {
  +      retVal |= 1;
  +    }
  +    if (_props.isFBackward())
  +    {
  +      retVal |= 2;
  +    }
  +    if (_props.isFRotateFont())
  +    {
  +      retVal |= 4;
  +    }
  +    return retVal;
     }
   
   }
  
  
  
  1.3       +265 -2    
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ParagraphProperties.java
  
  Index: ParagraphProperties.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ParagraphProperties.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ParagraphProperties.java  10 Nov 2003 11:53:54 -0000      1.2
  +++ ParagraphProperties.java  2 Mar 2004 06:19:41 -0000       1.3
  @@ -54,8 +54,8 @@
   
   package org.apache.poi.hwpf.usermodel;
   
  -import org.apache.poi.hwpf.model.hdftypes.definitions.PAPAbstractType;
  -import org.apache.poi.hwpf.model.hdftypes.StyleDescription;
  +import org.apache.poi.hwpf.model.types.PAPAbstractType;
  +import org.apache.poi.hwpf.model.StyleDescription;
   
   import org.apache.poi.hwpf.sprm.SprmBuffer;
   
  @@ -139,7 +139,270 @@
       this.field_21_lspd.setMultiLinespace((short)1);
       this.field_21_lspd.setDyaLine((short)240);
       this.field_12_ilvl = (byte)9;
  +    this.field_66_rgdxaTab = new int[0];
  +    this.field_67_rgtbd = new byte[0];
  +    this.field_63_dttmPropRMark = new DateAndTime();
   
  +  }
  +
  +  public int getJustification()
  +  {
  +    return super.getJc();
  +  }
  +
  +  public void setJustification(byte jc)
  +  {
  +    super.setJc(jc);
  +  }
  +
  +  public boolean keepOnPage()
  +  {
  +    return super.getFKeep() != 0;
  +  }
  +
  +  public void setKeepOnPage(boolean fKeep)
  +  {
  +    super.setFKeep((byte)(fKeep ? 1 : 0));
  +  }
  +
  +  public boolean keepWithNext()
  +  {
  +    return super.getFKeepFollow() != 0;
  +  }
  +
  +  public void setKeepWithNext(boolean fKeepFollow)
  +  {
  +    super.setFKeepFollow((byte)(fKeepFollow ? 1 : 0));
  +  }
  +
  +  public boolean pageBreakBefore()
  +  {
  +    return super.getFPageBreakBefore() != 0;
  +  }
  +
  +  public void setPageBreakBefore(boolean fPageBreak)
  +  {
  +    super.setFPageBreakBefore((byte)(fPageBreak ? 1 : 0));
  +  }
  +
  +  public boolean isLineNotNumbered()
  +  {
  +    return super.getFNoLnn() != 0;
  +  }
  +
  +  public void setLineNotNumbered(boolean fNoLnn)
  +  {
  +    super.setFNoLnn((byte)(fNoLnn ? 1 : 0));
  +  }
  +
  +  public boolean isSideBySide()
  +  {
  +    return super.getFSideBySide() != 0;
  +  }
  +
  +  public void setSideBySide(boolean fSideBySide)
  +  {
  +    super.setFSideBySide((byte)(fSideBySide ? 1 : 0));
  +  }
  +
  +  public boolean isAutoHyphenated()
  +  {
  +    return super.getFNoAutoHyph() == 0;
  +  }
  +
  +  public void setAutoHyphenated(boolean auto)
  +  {
  +    super.setFNoAutoHyph((byte)(!auto ? 1 : 0));
  +  }
  +
  +  public boolean isWidowControlled()
  +  {
  +    return super.getFWidowControl() != 0;
  +  }
  +
  +  public void setWidowControl(boolean widowControl)
  +  {
  +    super.setFWidowControl((byte)(widowControl ? 1 : 0));
  +  }
  +
  +  public int getIndentFromRight()
  +  {
  +    return super.getDxaRight();
  +  }
  +
  +  public void setIndentFromRight(int dxaRight)
  +  {
  +    super.setDxaRight(dxaRight);
  +  }
  +
  +  public int getIndentFromLeft()
  +  {
  +    return super.getDxaLeft();
  +  }
  +
  +  public void setIndentFromLeft(int dxaLeft)
  +  {
  +    super.setDxaLeft(dxaLeft);
  +  }
  +
  +  public int getFirstLineIndent()
  +  {
  +    return super.getDxaLeft1();
  +  }
  +
  +  public void setFirstLineIndent(int first)
  +  {
  +    super.setDxaLeft1(first);
  +  }
  +
  +  public LineSpacingDescriptor getLineSpacing()
  +  {
  +    return super.getLspd();
  +  }
  +
  +  public void setLineSpacing(LineSpacingDescriptor lspd)
  +  {
  +    super.setLspd(lspd);
  +  }
  +
  +  public int getSpacingBefore()
  +  {
  +    return super.getDyaBefore();
  +  }
  +
  +  public void setSpacingBefore(int before)
  +  {
  +    super.setDyaBefore(before);
  +  }
  +
  +  public int getSpacingAfter()
  +  {
  +    return super.getDyaAfter();
  +  }
  +
  +  public void setSpacingAfter(int after)
  +  {
  +    super.setDyaAfter(after);
  +  }
  +
  +  public boolean isKinsoku()
  +  {
  +    return super.getFKinsoku() != 0;
  +  }
  +
  +  public void setKinsoku(boolean kinsoku)
  +  {
  +    super.setFKinsoku((byte)(kinsoku ? 1 : 0));
  +  }
  +
  +  public boolean isWordWrapped()
  +  {
  +    return super.getFWordWrap() != 0;
  +  }
  +
  +  public void setWordWrapped(boolean wrap)
  +  {
  +    super.setFWordWrap((byte)(wrap ? 1 : 0));
  +  }
  +
  +  public int getFontAlignment()
  +  {
  +    return super.getWAlignFont();
  +  }
  +
  +  public void setFontAlignment(int align)
  +  {
  +    super.setWAlignFont(align);
  +  }
  +
  +  public boolean isVertical()
  +  {
  +    return super.isFVertical();
  +  }
  +
  +  public void setVertical(boolean vertical)
  +  {
  +    super.setFVertical(vertical);
  +  }
  +
  +  public boolean isBackward()
  +  {
  +    return super.isFBackward();
  +  }
  +
  +  public void setBackward(boolean bward)
  +  {
  +    super.setFBackward(bward);
  +  }
  +
  +  public BorderCode getTopBorder()
  +  {
  +    return super.getBrcTop();
  +  }
  +
  +  public void setTopBorder(BorderCode top)
  +  {
  +    super.setBrcTop(top);
  +  }
  +
  +  public BorderCode getLeftBorder()
  +  {
  +    return super.getBrcLeft();
  +  }
  +
  +  public void setLeftBorder(BorderCode left)
  +  {
  +    super.setBrcLeft(left);
  +  }
  +
  +  public BorderCode getBottomBorder()
  +  {
  +    return super.getBrcBottom();
  +  }
  +
  +  public void setBottomBorder(BorderCode bottom)
  +  {
  +    super.setBrcBottom(bottom);
  +  }
  +
  +  public BorderCode getRightBorder()
  +  {
  +    return super.getBrcRight();
  +  }
  +
  +  public void setRightBorder(BorderCode right)
  +  {
  +    super.setBrcRight(right);
  +  }
  +
  +  public BorderCode getBarBorder()
  +  {
  +    return super.getBrcBar();
  +  }
  +
  +  public void setBarBorder(BorderCode bar)
  +  {
  +    super.setBrcBar(bar);
  +  }
  +
  +  public ShadingDescriptor getShading()
  +  {
  +    return super.getShd();
  +  }
  +
  +  public void setShading(ShadingDescriptor shd)
  +  {
  +    super.setShd(shd);
  +  }
  +
  +  public DropCapSpecifier getDropCap()
  +  {
  +    return super.getDcs();
  +  }
  +
  +  public void setDropCap(DropCapSpecifier dcs)
  +  {
  +    super.setDcs(dcs);
     }
   
     public Object clone()
  
  
  
  1.2       +14 -18    
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Section.java
  
  Index: Section.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Section.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Section.java      11 Nov 2003 11:43:07 -0000      1.1
  +++ Section.java      2 Mar 2004 06:19:41 -0000       1.2
  @@ -54,31 +54,27 @@
   
   package org.apache.poi.hwpf.usermodel;
   
  -import org.apache.poi.hwpf.model.hdftypes.definitions.SEPAbstractType;
  +import org.apache.poi.hwpf.model.SEPX;
   
   public class Section
  -  extends SEPAbstractType
  +  extends Range
   {
  -  public Section()
  +
  +  private SectionProperties _props;
  +
  +  public Section(SEPX sepx, Range parent)
     {
  -    field_20_brcTop = new BorderCode();
  -    field_21_brcLeft = new BorderCode();
  -    field_22_brcBottom = new BorderCode();
  -    field_23_brcRight = new BorderCode();
  -    field_26_dttmPropRMark = new DateAndTime();
  +    super(sepx.getStart(), sepx.getEnd(), parent);
  +    _props = sepx.getSectionProperties();
     }
   
     public Object clone()
  -    throws CloneNotSupportedException
  -  {
  -    Section copy = (Section)super.clone();
  -    copy.field_20_brcTop = (BorderCode)field_20_brcTop.clone();
  -    copy.field_21_brcLeft = (BorderCode)field_21_brcLeft.clone();
  -    copy.field_22_brcBottom = (BorderCode)field_22_brcBottom.clone();
  -    copy.field_23_brcRight = (BorderCode)field_23_brcRight.clone();
  -    copy.field_26_dttmPropRMark = (DateAndTime)field_26_dttmPropRMark.clone();
  +     throws CloneNotSupportedException
  +   {
  +     Section s = (Section)super.clone();
  +     s._props = (SectionProperties)_props.clone();
  +     return s;
  +   }
   
  -    return copy;
  -  }
   
   }
  
  
  
  1.2       +32 -1     
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/SectionProperties.java
  
  Index: SectionProperties.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/SectionProperties.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SectionProperties.java    10 Nov 2003 11:54:42 -0000      1.1
  +++ SectionProperties.java    2 Mar 2004 06:19:41 -0000       1.2
  @@ -54,7 +54,11 @@
   
   package org.apache.poi.hwpf.usermodel;
   
  -import org.apache.poi.hwpf.model.hdftypes.definitions.SEPAbstractType;
  +import org.apache.poi.hwpf.model.types.SEPAbstractType;
  +
  +import java.lang.reflect.Field;
  +import java.lang.reflect.AccessibleObject;
  +import java.lang.reflect.Array;
   
   public class SectionProperties
     extends SEPAbstractType
  @@ -79,6 +83,33 @@
       copy.field_26_dttmPropRMark = (DateAndTime)field_26_dttmPropRMark.clone();
   
       return copy;
  +  }
  +
  +  public boolean equals(Object obj)
  +  {
  +    Field[] fields = SectionProperties.class.getSuperclass().getDeclaredFields();
  +    AccessibleObject.setAccessible(fields, true);
  +    try
  +    {
  +      for (int x = 0; x < fields.length; x++)
  +      {
  +        Object obj1 = fields[x].get(this);
  +        Object obj2 = fields[x].get(obj);
  +        if (obj1 == null && obj2 == null)
  +        {
  +          continue;
  +        }
  +        if (!obj1.equals(obj2))
  +        {
  +          return false;
  +        }
  +      }
  +      return true;
  +    }
  +    catch (Exception e)
  +    {
  +      return false;
  +    }
     }
   
   }
  
  
  
  1.2       +6 -1      
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ShadingDescriptor.java
  
  Index: ShadingDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ShadingDescriptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ShadingDescriptor.java    10 Nov 2003 11:54:56 -0000      1.1
  +++ ShadingDescriptor.java    2 Mar 2004 06:19:41 -0000       1.2
  @@ -73,7 +73,12 @@
   
     public ShadingDescriptor(byte[] buf, int offset)
     {
  -    _info = LittleEndian.getShort(buf, offset);
  +    this(LittleEndian.getShort(buf, offset));
  +  }
  +
  +  public ShadingDescriptor(short info)
  +  {
  +    _info = info;
     }
   
     public short toShort()
  
  
  
  1.2       +6 -1      
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableCellDescriptor.java
  
  Index: TableCellDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableCellDescriptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TableCellDescriptor.java  10 Nov 2003 11:55:03 -0000      1.1
  +++ TableCellDescriptor.java  2 Mar 2004 06:19:41 -0000       1.2
  @@ -54,7 +54,7 @@
   
   package org.apache.poi.hwpf.usermodel;
   
  -import org.apache.poi.hwpf.model.hdftypes.definitions.TCAbstractType;
  +import org.apache.poi.hwpf.model.types.TCAbstractType;
   
   public class TableCellDescriptor
     extends TCAbstractType
  @@ -63,6 +63,11 @@
   
     public TableCellDescriptor()
     {
  +    field_3_brcTop = new BorderCode();
  +    field_4_brcLeft = new BorderCode();
  +    field_5_brcBottom = new BorderCode();
  +    field_6_brcRight = new BorderCode();
  +
     }
   
     public Object clone()
  
  
  
  1.2       +24 -1     
jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableProperties.java
  
  Index: TableProperties.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableProperties.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TableProperties.java      10 Nov 2003 11:55:11 -0000      1.1
  +++ TableProperties.java      2 Mar 2004 06:19:41 -0000       1.2
  @@ -54,14 +54,37 @@
   
   package org.apache.poi.hwpf.usermodel;
   
  -import org.apache.poi.hwpf.model.hdftypes.definitions.TAPAbstractType;
  +import org.apache.poi.hwpf.model.types.TAPAbstractType;
   
   public class TableProperties
     extends TAPAbstractType
       implements Cloneable
   {
  +
     public TableProperties()
     {
  +
  +  }
  +  public TableProperties(int columns)
  +  {
  +    field_7_itcMac = (short)columns;
  +    field_10_rgshd = new ShadingDescriptor[columns];
  +    for (int x = 0; x < columns; x++)
  +    {
  +      field_10_rgshd[x] = new ShadingDescriptor();
  +    }
  +    field_11_brcBottom =  new BorderCode();
  +    field_12_brcTop = new BorderCode();
  +    field_13_brcLeft = new BorderCode();
  +    field_14_brcRight = new BorderCode();
  +    field_15_brcVertical = new BorderCode();
  +    field_16_brcHorizontal = new BorderCode();
  +    field_8_rgdxaCenter = new short[columns];
  +    field_9_rgtc = new TableCellDescriptor[columns];
  +    for (int x = 0; x < columns; x++)
  +    {
  +      field_9_rgtc[x] = new TableCellDescriptor();
  +    }
     }
   
     public Object clone()
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to