Examples of TableTableRowElement


Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

    return columnEle;
  }

  TableTableRowElement getRowElementByIndex(int rowIndex) {
    int result = 0;
    TableTableRowElement rowEle = null;
    for (Node n : new DomNodeList(mTableElement.getChildNodes())) {
      if (n instanceof TableTableHeaderRowsElement) {
        TableTableHeaderRowsElement headers = (TableTableHeaderRowsElement) n;
        for (Node m : new DomNodeList(headers.getChildNodes())) {
          if (m instanceof TableTableRowElement) {
            rowEle = (TableTableRowElement) m;
            result += rowEle.getTableNumberRowsRepeatedAttribute();
          }
          if (result > rowIndex) {
            break;
          }
        }
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

    // 3.1 create header row elements
    if (headerRowNumber > 0) {
      TableTableHeaderRowsElement headerrows = (TableTableHeaderRowsElement) OdfXMLFactory.newOdfElement(dom,
          OdfName.newName(OdfDocumentNamespace.TABLE, "table-header-rows"));
      for (int i = 0; i < headerRowNumber; i++) {
        TableTableRowElement aRow = (TableTableRowElement) OdfXMLFactory.newOdfElement(dom, OdfName.newName(
            OdfDocumentNamespace.TABLE, "table-row"));
        for (int j = 0; j < numCols; j++) {
          TableTableCellElement aCell = (TableTableCellElement) OdfXMLFactory.newOdfElement(dom, OdfName
              .newName(OdfDocumentNamespace.TABLE, "table-cell"));
          if (isTextDocument) {
            if ((j + 1 == numCols) && (i == 0)) {
              aCell.setStyleName(righttopStyle.getStyleNameAttribute());
            } else if (i == 0) {
              aCell.setStyleName(lefttopStyle.getStyleNameAttribute());
            } else if ((j + 1 == numCols) && (i > 0)) {
              aCell.setStyleName(rightbottomStyle.getStyleNameAttribute());
            } else {
              aCell.setStyleName(leftbottomStyle.getStyleNameAttribute());
            }
          }
          aRow.appendChild(aCell);
        }
        headerrows.appendChild(aRow);
      }
      newTEle.appendChild(headerrows);
    }

    // 3.2 create common row elements
    for (int i = headerRowNumber; i < numRows; i++) {
      TableTableRowElement aRow = (TableTableRowElement) OdfXMLFactory.newOdfElement(dom, OdfName.newName(
          OdfDocumentNamespace.TABLE, "table-row"));
      for (int j = 0; j < numCols; j++) {
        TableTableCellElement aCell = (TableTableCellElement) OdfXMLFactory.newOdfElement(dom, OdfName.newName(
            OdfDocumentNamespace.TABLE, "table-cell"));
        if (isTextDocument) {
          if ((j + 1 == numCols) && (i == 0)) {
            aCell.setStyleName(righttopStyle.getStyleNameAttribute());
          } else if (i == 0) {
            aCell.setStyleName(lefttopStyle.getStyleNameAttribute());
          } else if ((j + 1 == numCols) && (i > 0)) {
            aCell.setStyleName(rightbottomStyle.getStyleNameAttribute());
          } else {
            aCell.setStyleName(leftbottomStyle.getStyleNameAttribute());
          }
        }
        aRow.appendChild(aCell);
      }
      newTEle.appendChild(aRow);
    }

    return newTEle;
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

   * This method is invoked by appendRow. When a table has no row, the first
   * row is a default row.
   */
  private TableTableRowElement createDefaultRow(int columnCount, boolean createRepeatedCell) {
    OdfFileDom dom = (OdfFileDom) mTableElement.getOwnerDocument();
    TableTableRowElement aRow = (TableTableRowElement) OdfXMLFactory.newOdfElement(dom, OdfName.newName(
        OdfDocumentNamespace.TABLE, "table-row"));
    if (createRepeatedCell) {
      TableTableCellElement aCell = (TableTableCellElement) OdfXMLFactory.newOdfElement(dom, OdfName.newName(
          OdfDocumentNamespace.TABLE, "table-cell"));
      if (columnCount > 1) {
        aCell.setTableNumberColumnsRepeatedAttribute(columnCount);
      }
      if (!mIsSpreadsheet) {
        OdfOfficeAutomaticStyles automaticStyles = mTableElement.getAutomaticStyles();
        OdfStyle borderStyle = automaticStyles.newStyle(OdfStyleFamily.TableCell);
        setRightTopBorderStyleProperties(borderStyle);
        aCell.setStyleName(borderStyle.getStyleNameAttribute());
      }
    } else {
      OdfStyle lefttopStyle = null, righttopStyle = null;
      // create 2 kinds of styles
      if (!mIsSpreadsheet) {
        OdfOfficeAutomaticStyles automaticStyles = mTableElement.getAutomaticStyles();
        lefttopStyle = automaticStyles.newStyle(OdfStyleFamily.TableCell);
        setLeftTopBorderStyleProperties(lefttopStyle);
        righttopStyle = automaticStyles.newStyle(OdfStyleFamily.TableCell);
        setRightTopBorderStyleProperties(righttopStyle);
      }
      for (int j = 0; j < columnCount; j++) {
        TableTableCellElement aCell = (TableTableCellElement) OdfXMLFactory.newOdfElement(dom, OdfName.newName(
            OdfDocumentNamespace.TABLE, "table-cell"));
        if (!mIsSpreadsheet) {
          if (j + 1 == columnCount) {
            aCell.setStyleName(righttopStyle.getStyleNameAttribute());
          } else {
            aCell.setStyleName(lefttopStyle.getStyleNameAttribute());
          }
        }
        aRow.appendChild(aCell);
      }
    }
    return aRow;
  }
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

    // find append position
    Node childNode = mTableElement.getLastChild();
    // where is the new row inserted before.
    Node positionNode = null;
    // row style and structure clone from.
    TableTableRowElement refRowElement = null;
    TableTableRowElement newRow = null;
    if (childNode instanceof TableNamedExpressionsElement) {
      childNode = childNode.getPreviousSibling();
      positionNode = childNode;
    }
    if (childNode instanceof TableTableRowElement) {
      refRowElement = (TableTableRowElement) childNode;
    }
    // TODO: what about childNode instanceof TableTableHeaderRowsElement,
    // TableTableRowsElement or TableTableRowGroupElement
    int columnCount = getColumnCount();
    // no row, create a default row
    if (refRowElement == null) {
      newRow = createDefaultRow(columnCount, true);
      mTableElement.appendChild(newRow);
    } else {
      newRow = (TableTableRowElement) OdfXMLFactory.newOdfElement((OdfFileDom) mTableElement.getOwnerDocument(),
          OdfName.newName(OdfDocumentNamespace.TABLE, "table-row"));
      TableTableCellElementBase cellElement = (TableTableCellElementBase) refRowElement.getFirstChild();
      int i = 1;
      while (cellElement != null && i <= columnCount) {
        // covered element
        String tableNameSpace = OdfDocumentNamespace.TABLE.getUri();
        if (cellElement instanceof TableCoveredTableCellElement) {
          TableCoveredTableCellElement coveredCellEle = (TableCoveredTableCellElement) cellElement;
          // find cover cell element
          TableTableRowElement aRowEle = (TableTableRowElement) (coveredCellEle.getParentNode()
              .getPreviousSibling());
          while (aRowEle != null) {
            // the cover cell and the first covered cell must have
            // the same column index.
            TableTableCellElementBase coverCellEle = (TableTableCellElementBase) (aRowEle.getFirstChild());
            int j = coverCellEle.getTableNumberColumnsRepeatedAttribute();
            while (j < i) {
              coverCellEle = (TableTableCellElementBase) (coverCellEle.getNextSibling());
              if (coverCellEle instanceof TableTableCellElement) {
                j += (coverCellEle.getTableNumberColumnsRepeatedAttribute() * (((TableTableCellElement) coverCellEle)
                    .getTableNumberColumnsSpannedAttribute()));
              } else {
                j += coverCellEle.getTableNumberColumnsRepeatedAttribute();
              }
            }
            // find the cover cell, now start cell clone.
            if (coverCellEle instanceof TableTableCellElement) {
              TableTableCellElement newCellEle = (TableTableCellElement) (coverCellEle.cloneNode(true));
              cleanCell(newCellEle);
              newCellEle.removeAttributeNS(tableNameSpace, "number-rows-spanned");
              newRow.appendChild(newCellEle);
              // deal with the following covered cell, spread
              // sheet need change these covered cell to cell.
              if (mIsSpreadsheet) {
                // update column repeated number.
                int columnsSpannedNumber = newCellEle.getTableNumberColumnsSpannedAttribute();
                newCellEle.removeAttributeNS(tableNameSpace, "number-columns-spanned");
                int newColumnRepeatedNumber = newCellEle.getTableNumberColumnsRepeatedAttribute()
                    * columnsSpannedNumber;
                if (newColumnRepeatedNumber > 1) {
                  newCellEle.setTableNumberColumnsRepeatedAttribute(newColumnRepeatedNumber);
                } else {
                  newCellEle.removeAttributeNS(tableNameSpace, "number-columns-repeated");
                }
                // ignore the following covered cell of
                // reference row.
                // added by Daisy because of a bug in demo4
                // cellElement is a covered cell. coverCellEle
                // is its cover cell.
                // below codes will count
                // newColumnRepeatedNumber covered cell.
                int tempi = newColumnRepeatedNumber;
                while (tempi > 0) {
                  int iColumnRepeatedNumber = cellElement.getTableNumberColumnsRepeatedAttribute();
                  if (iColumnRepeatedNumber > tempi) {
                    // split covered cell
                    if (cellElement instanceof TableCoveredTableCellElement) {
                      cellElement.setTableNumberColumnsRepeatedAttribute(iColumnRepeatedNumber
                          - tempi);
                      TableTableCellElementBase newCoveredCellEle = (TableTableCellElementBase) cellElement
                          .cloneNode(true);
                      cleanCell(newCoveredCellEle);
                      if (tempi > 1) {
                        newCoveredCellEle.setTableNumberColumnsRepeatedAttribute(tempi);
                      } else {
                        newCoveredCellEle.removeAttributeNS(
                            OdfDocumentNamespace.TABLE.getUri(), "number-columns-repeated");
                      }
                      refRowElement.insertBefore(newCoveredCellEle, cellElement);
                      cellElement = newCoveredCellEle;
                    }
                  }
                  tempi = tempi - cellElement.getTableNumberColumnsRepeatedAttribute();
                  i = i + cellElement.getTableNumberColumnsRepeatedAttribute();
                  if (!(cellElement instanceof TableCoveredTableCellElement) && (tempi > 0)){
                    Logger.getLogger(Table.class.getName()).log(Level.FINE,  "Not covered cell was ignored");
                  }
                  cellElement = (TableTableCellElementBase) (cellElement.getNextSibling());
                  // while ((cellElement != null) &&
                  // (cellElement instanceof
                  // TableCoveredTableCellElement)) {
                  // cellElement = (TableTableCellElementBase)
                  // (cellElement.getNextSibling());
                  // }
                }
                // i += newColumnRepeatedNumber;
              } else {
                // clone the following covered cell of reference
                // row.
                // added by Daisy because of a bug in demo4
                cellElement = (TableTableCellElementBase) cellElement.getNextSibling();
                i += cellElement.getTableNumberColumnsRepeatedAttribute();
                int newColumnSpanNumber = newCellEle.getTableNumberColumnsSpannedAttribute();
                while ((cellElement != null) && (cellElement instanceof TableCoveredTableCellElement)
                    && (newColumnSpanNumber > 1)) {
                  TableCoveredTableCellElement newCoveredCellElement = (TableCoveredTableCellElement) cellElement
                      .cloneNode(true);
                  cleanCell(newCoveredCellElement);
                  newRow.appendChild(newCoveredCellElement);
                  i += cellElement.getTableNumberColumnsRepeatedAttribute();
                  cellElement = (TableTableCellElementBase) cellElement.getNextSibling();
                  newColumnSpanNumber--;
                }
              }
              break;
            }
            // continue find cover cell
            Node preNode = aRowEle.getPreviousSibling();
            if (preNode instanceof TableTableRowElement) {
              aRowEle = (TableTableRowElement) preNode;
            } else {
              // </table:table-header-rows>
              aRowEle = (TableTableRowElement) (preNode.getLastChild());
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

    if (isUseRepeat()) {
      Row firstRow = appendRow();
      resultList.add(firstRow);
      if (rowCount > 1) {
        firstRow.setRowsRepeatedNumber(rowCount);
        TableTableRowElement firstRowEle = firstRow.getOdfElement();
        for (int i = 1; i < rowCount; i++) {
          Row row = getRowInstance(firstRowEle, i);
          resultList.add(row);
        }
      }
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

    resultList.add(firstRow);

    if (count == 1) {
      return resultList;
    }
    TableTableRowElement rowEle = firstRow.getOdfElement();
    for (int i = 0; i < getColumnCount();) {
      Cell refCell = refRow.getCellByIndex(i);
      if (!refCell.isCoveredElement()) {
        int coveredHeigth = refCell.getRowSpannedNumber();
        if (coveredHeigth > 1) {
          refCell.setRowSpannedNumber(coveredHeigth + 1);
        }
      }
      i += refCell.getColumnsRepeatedNumber();
    }
    if (isUseRepeat()) {
      firstRow.setRowsRepeatedNumber(count);
      while (j < count) {
        resultList.add(getRowInstance(rowEle, j));
        j++;
      }
    } else {
      while (j < count) {
        TableTableRowElement newRowEle = (TableTableRowElement) rowEle.cloneNode(true);
        newRowEle.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-rows-repeated");
        mTableElement.insertBefore(newRowEle, positionRow.getOdfElement());
        resultList.add(getRowInstance(newRowEle, 0));
        j++;
      }
    }
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

    return resultList;
  }

  // only insert one Row
  private Row insertRowBefore(Row refRow, Row positionRow, int columnCount) {
    TableTableRowElement aRow = (TableTableRowElement) OdfXMLFactory.newOdfElement((OdfFileDom) mTableElement
        .getOwnerDocument(), OdfName.newName(OdfDocumentNamespace.TABLE, "table-row"));
    int coveredLength = 0, coveredHeigth = 0;
    for (int i = 0; i < columnCount;) {
      Cell refCell = refRow.getCellByIndex(i);
      int columnsRepeatedNumber = refCell.getColumnsRepeatedNumber();
      if (!refCell.isCoveredElement()) // not cover element
      {
        TableTableCellElement aCellEle = (TableTableCellElement) refCell.getOdfElement();
        coveredHeigth = aCellEle.getTableNumberRowsSpannedAttribute();
        if (coveredHeigth == 1) {
          TableTableCellElement newCellEle = (TableTableCellElement) aCellEle.cloneNode(true);
          cleanCell(newCellEle);
          aRow.appendChild(newCellEle);
        } else { // cover more rows
          aCellEle.setTableNumberRowsSpannedAttribute(coveredHeigth + 1);
          TableCoveredTableCellElement newCellEle = (TableCoveredTableCellElement) OdfXMLFactory
              .newOdfElement((OdfFileDom) mTableElement.getOwnerDocument(), OdfName.newName(
                  OdfDocumentNamespace.TABLE, "covered-table-cell"));
          if (columnsRepeatedNumber > 1) {
            newCellEle.setTableNumberColumnsRepeatedAttribute(columnsRepeatedNumber);
          } else {
            newCellEle.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-columns-repeated");
          }
          aRow.appendChild(newCellEle);
        }

        coveredLength = aCellEle.getTableNumberColumnsSpannedAttribute() - columnsRepeatedNumber;
        i = i + columnsRepeatedNumber;
      } else {
        TableCoveredTableCellElement aCellEle = (TableCoveredTableCellElement) refCell.getOdfElement();
        if (coveredLength >= 1) {
          TableCoveredTableCellElement newCellEle = (TableCoveredTableCellElement) aCellEle.cloneNode(true);
          aRow.appendChild(newCellEle);
          coveredLength -= newCellEle.getTableNumberColumnsRepeatedAttribute();
        } else {
          TableTableCellElement coveredCell = (TableTableCellElement) refCell.getCoverCell().getOdfElement();
          TableTableCellElement newCellEle = (TableTableCellElement) coveredCell.cloneNode(true);
          cleanCell(newCellEle);
          newCellEle.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-rows-spanned");
          aRow.appendChild(newCellEle);
          coveredLength = coveredCell.getTableNumberColumnsSpannedAttribute() - columnsRepeatedNumber;
        }
        i = i + columnsRepeatedNumber;
      }
    }
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

    Row refRow = getRowByIndex(index - 1);
    Row positionRow = getRowByIndex(index);
    // 1. insert a <table:table-row>
    if (refRow.getOdfElement() == positionRow.getOdfElement()) {
      TableTableRowElement row = refRow.getOdfElement();
      int repeatedCount = refRow.getRowsRepeatedNumber();
      refRow.setRowsRepeatedNumber(repeatedCount + rowCount);
      TableTableRowElement rowEle = positionRow.getOdfElement();
      Row startRow = getRowInstance(positionRow.getOdfElement(), 0);
      for (int i = repeatedCount + rowCount - 1; i >= rowCount + (index - startRow.getRowIndex()); i--) {
        updateRowRepository(rowEle, i - rowCount, rowEle, i);
      }
      for (int i = 0; i < rowCount; i++) {
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

   *
   * @return a list of table rows
   */
  public List<Row> getRowList() {
    ArrayList<Row> list = new ArrayList<Row>();
    TableTableRowElement rowEle = null;
    for (Node n : new DomNodeList(mTableElement.getChildNodes())) {
      if (n instanceof TableTableHeaderRowsElement) {
        TableTableHeaderRowsElement headers = (TableTableHeaderRowsElement) n;
        for (Node m : new DomNodeList(headers.getChildNodes())) {
          if (m instanceof TableTableRowElement) {
            rowEle = (TableTableRowElement) m;
            for (int i = 0; i < rowEle.getTableNumberRowsRepeatedAttribute(); i++) {
              list.add(getRowInstance(rowEle, i));
            }
          }
        }
      }
      if (n instanceof TableTableRowElement) {
        rowEle = (TableTableRowElement) n;
        for (int i = 0; i < rowEle.getTableNumberRowsRepeatedAttribute(); i++) {
          list.add(getRowInstance(rowEle, i));
        }
      }
    }
    return list;
View Full Code Here

Examples of org.odftoolkit.odfdom.dom.element.table.TableTableRowElement

    // 1. remove row
    Row firstRow = getRowByIndex(startIndex);
    for (int i = startIndex; i < startIndex + deleteRowCount; i++) {
      int repeatedAttr = firstRow.getRowsRepeatedNumber();
      if (repeatedAttr == 1) {
        TableTableRowElement rowEle = OdfElement.findNextChildNode(TableTableRowElement.class, firstRow
            .getOdfElement());
        firstRow.removeAllCellsRelationship();
        firstRow.getOdfElement().getParentNode().removeChild(firstRow.getOdfElement());
        updateRowRepository(firstRow.getOdfElement(), firstRow.mnRepeatedIndex, null, 0);
        if (i < (startIndex + deleteRowCount - 1)) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.