Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* ====================================================================
     Licensed to the Apache Software Foundation (ASF) under one or more
     contributor license agreements.  See the NOTICE file distributed with
     this work for additional information regarding copyright ownership.
     The ASF licenses this file to You under the Apache License, Version 2.0
     (the "License"); you may not use this file except in compliance with
     the License.  You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
 
 package org.apache.poi.hwpf.usermodel;
 
 import java.util.List;
 
 
 public final class TableRow extends Range
 {
     private static final POILogger logger = POILogFactory
             .getLoggerTableRow.class );
 
     private final static short SPRM_DXAGAPHALF = (short) 0x9602;
     private final static short SPRM_DYAROWHEIGHT = (short) 0x9407;
     private final static short SPRM_FCANTSPLIT = 0x3403;
     private final static short SPRM_FTABLEHEADER = 0x3404;
     private final static short SPRM_TJC = 0x5400;
 
     private final static char TABLE_CELL_MARK = '\u0007';
 
     private TableCell[] _cells;
     private boolean _cellsFound = false;
 
     int _levelNum;
     private SprmBuffer _papx;
     private TableProperties _tprops;
 
     public TableRowint startIdxInclusiveint endIdxExclusiveTable parent,
             int levelNum )
     {
         superstartIdxInclusiveendIdxExclusiveparent );
 
         Paragraph last = getParagraphnumParagraphs() - 1 );
          = last._papx;
          = TableSprmUncompressor.uncompressTAP );
          = levelNum;
         initCells();
     }
 
     public boolean cantSplit()
     {
         return .getFCantSplit();
     }
 
     public BorderCode getBarBorder()
     {
         throw new UnsupportedOperationException"not applicable for TableRow" );
     }
 
     public BorderCode getBottomBorder()
     {
         return .getBrcBottom();
     }
 
     public TableCell getCellint index )
     {
         initCells();
         return [index];
     }
 
     public int getGapHalf()
     {
         return .getDxaGapHalf();
     }
 
     public BorderCode getHorizontalBorder()
     {
         return .getBrcHorizontal();
     }
 
     public BorderCode getLeftBorder()
     {
         return .getBrcLeft();
     }
 
     public BorderCode getRightBorder()
     {
         return .getBrcRight();
     }
    public int getRowHeight()
    {
        return .getDyaRowHeight();
    }
    public int getRowJustification()
    {
        return .getJc();
    }
    public BorderCode getTopBorder()
    {
        return .getBrcTop();
    }
    public BorderCode getVerticalBorder()
    {
        return .getBrcVertical();
    }
    private void initCells()
    {
        if (  )
            return;
        final short expectedCellsCount = .getItcMac();
        int lastCellStart = 0;
        List<TableCellcells = new ArrayList<TableCell>(
                expectedCellsCount + 1 );
        for ( int p = 0; p < numParagraphs(); p++ )
        {
            Paragraph paragraph = getParagraphp );
            String s = paragraph.text();
            if ( ( ( s.length() > 0 && s.charAts.length() - 1 ) ==  ) || paragraph
                    .isEmbeddedCellMark() )
                    && paragraph.getTableLevel() ==  )
            {
                TableCellDescriptor tableCellDescriptor = .getRgtc() != null
                        && .getRgtc().length > cells.size() ? 
                        .getRgtc()[cells.size()] : new TableCellDescriptor();
                final short leftEdge = .getRgdxaCenter() != null
                        && .getRgdxaCenter().length > cells.size() ? 
                        .getRgdxaCenter()[cells.size()] : 0;
                final short rightEdge = .getRgdxaCenter() != null
                        && .getRgdxaCenter().length > cells.size() + 1 ? 
                        .getRgdxaCenter()[cells.size() + 1] : 0;
                TableCell tableCell = new TableCellgetParagraph(
                        lastCellStart ).getStartOffset(), getParagraphp )
                        .getEndOffset(), thistableCellDescriptor,
                        leftEdgerightEdge - leftEdge );
                cells.addtableCell );
                lastCellStart = p + 1;
            }
        }
        if ( lastCellStart < ( numParagraphs() - 1 ) )
        {
            TableCellDescriptor tableCellDescriptor = .getRgtc() != null
                    && .getRgtc().length > cells.size() ? 
                    .getRgtc()[cells.size()] : new TableCellDescriptor();
            final short leftEdge = .getRgdxaCenter() != null
                    && .getRgdxaCenter().length > cells.size() ? 
                    .getRgdxaCenter()[cells.size()] : 0;
            final short rightEdge = .getRgdxaCenter() != null
                    && .getRgdxaCenter().length > cells.size() + 1 ? 
                    .getRgdxaCenter()[cells.size() + 1] : 0;
            TableCell tableCell = new TableCelllastCellStart,
                    ( numParagraphs() - 1 ), this,
                    tableCellDescriptorleftEdgerightEdge - leftEdge );
            cells.addtableCell );
        }
        if ( !cells.isEmpty() )
        {
            TableCell lastCell = cells.getcells.size() - 1 );
            if ( lastCell.numParagraphs() == 1
                    && ( lastCell.getParagraph( 0 ).isTableRowEnd() ) )
            {
                // remove "fake" cell
                cells.removecells.size() - 1 );
            }
        }
        if ( cells.size() != expectedCellsCount )
        {
            .log.,
                    "Number of found table cells (" + cells.size()
                            + ") for table row [" + getStartOffset() + "c; "
                            + getEndOffset()
                            + "c] not equals to stored property value "
                            + expectedCellsCount );
            .setItcMac( (shortcells.size() );
        }
         = cells.toArraynew TableCell[cells.size()] );
         = true;
    }
    public boolean isTableHeader()
    {
        return .getFTableHeader();
    }
    public int numCells()
    {
        initCells();
        return .;
    }
    @Override
    protected void reset()
    {
         = false;
    }
    public void setCantSplitboolean cantSplit )
    {
        .setFCantSplitcantSplit );
        .updateSprm, (byte) ( cantSplit ? 1 : 0 ) );
    }
    public void setGapHalfint dxaGapHalf )
    {
        .setDxaGapHalfdxaGapHalf );
        .updateSprm, (shortdxaGapHalf );
    }
    public void setRowHeightint dyaRowHeight )
    {
        .setDyaRowHeightdyaRowHeight );
        .updateSprm, (shortdyaRowHeight );
    }
    public void setRowJustificationint jc )
    {
        .setJc( (shortjc );
        .updateSprm, (shortjc );
    }
    public void setTableHeaderboolean tableHeader )
    {
        .setFTableHeadertableHeader );
        .updateSprm, (byte) ( tableHeader ? 1 : 0 ) );
    }
New to GrepCode? Check out our FAQ X