Package org.odftoolkit.odfdom.dom.element.table

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


    OdfTableColumn firstColumn;
    for (int i = 0; i < deleteColCount; i++) {
      firstColumn = getColumnByIndex(startIndex);
      int repeatedAttr = firstColumn.getColumnsRepeatedNumber();
      if (repeatedAttr == 1) {
        TableTableColumnElement columnEle = OdfElement.findNextChildNode(TableTableColumnElement.class, firstColumn.getOdfElement());
        mTableElement.removeChild(firstColumn.getOdfElement());
        if (i < (deleteColCount - 1)) {
          firstColumn = this.getColumnInstance(columnEle, 0);
        }
      } else {
View Full Code Here


   *
   * @return a list of table columns
   */
  public List<OdfTableColumn> getColumnList() {
    ArrayList<OdfTableColumn> list = new ArrayList<OdfTableColumn>();
    TableTableColumnElement colEle = null;
    for (Node n : new DomNodeList(mTableElement.getChildNodes())) {
      if (n instanceof TableTableHeaderColumnsElement) {
        TableTableHeaderColumnsElement headers = (TableTableHeaderColumnsElement) n;
        for (Node m : new DomNodeList(headers.getChildNodes())) {
          if (m instanceof TableTableColumnElement) {
View Full Code Here

    }
  }

  TableTableColumnElement getColumnElementByIndex(int colIndex) {
    int result = 0;
    TableTableColumnElement columnEle = null;
    for (Node n : new DomNodeList(mTableElement.getChildNodes())) {
      if (n instanceof TableTableHeaderColumnsElement) {
        TableTableHeaderColumnsElement headers = (TableTableHeaderColumnsElement) n;
        for (Node m : new DomNodeList(headers.getChildNodes())) {
          if (m instanceof TableTableColumnElement) {
            columnEle = (TableTableColumnElement) m;
            if (columnEle.getTableNumberColumnsRepeatedAttribute() == null) {
              result += 1;
            } else {
              result += columnEle.getTableNumberColumnsRepeatedAttribute();
            }
          }
          if (result > colIndex) {
            break;
          }
        }
      }
      if (n instanceof TableTableColumnElement) {
        columnEle = (TableTableColumnElement) n;
        if (columnEle.getTableNumberColumnsRepeatedAttribute() == null) {
          result += 1;
        } else {
          result += columnEle.getTableNumberColumnsRepeatedAttribute();
        }
      }
      if (result > colIndex) {
        break;
      }
View Full Code Here

    }
    // 2.1 create header column elements
    if (headerColumnNumber > 0) {
      TableTableHeaderColumnsElement headercolumns = (TableTableHeaderColumnsElement) OdfXMLFactory
          .newOdfElement(dom, OdfName.newName(OdfDocumentNamespace.TABLE, "table-header-columns"));
      TableTableColumnElement headercolumn = (TableTableColumnElement) OdfXMLFactory.newOdfElement(dom, OdfName
          .newName(OdfDocumentNamespace.TABLE, "table-column"));
      if (headerColumnNumber > 1) {
        headercolumn.setTableNumberColumnsRepeatedAttribute(headerColumnNumber);
      } else {
        headercolumn.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-columns-repeated");
      }
      headercolumns.appendChild(headercolumn);
      newTEle.appendChild(headercolumns);
      headercolumn.setStyleName(columnStylename);
    }
    // 2.2 create common column elements
    TableTableColumnElement columns = (TableTableColumnElement) OdfXMLFactory.newOdfElement(dom, OdfName.newName(
        OdfDocumentNamespace.TABLE, "table-column"));
    int tableNumberColumnsRepeatedValue = numCols - headerColumnNumber;
    if (tableNumberColumnsRepeatedValue > 1) {
      columns.setTableNumberColumnsRepeatedAttribute(tableNumberColumnsRepeatedValue);
    }
    columns.setStyleName(columnStylename);
    newTEle.appendChild(columns);

    // 3. create row elements
    // 3.0 create 4 kinds of styles
    OdfStyle lefttopStyle = null, leftbottomStyle = null, righttopStyle = null, rightbottomStyle = null;
View Full Code Here

   */
  public Column appendColumn() {
    List<Column> columnList = getColumnList();
    int columnCount = columnList.size();

    TableTableColumnElement newColumn;
    OdfElement positonElement = getRowElementByIndex(0);
    if (positonElement.getParentNode() instanceof TableTableHeaderRowsElement) {
      positonElement = (OdfElement) positonElement.getParentNode();
    }

    // Moved before column elements inserted
    // insert cells firstly
    // Or else, wrong column number will be gotten in updateCellRepository,
    // which will cause a NPE.
    // insertCellBefore()->splitRepeatedRows()->updateRowRepository()->updateCellRepository()
    List<Row> rowList = getRowList();
    for (int i = 0; i < rowList.size();) {
      Row row1 = rowList.get(i);
      row1.insertCellBefore(row1.getCellByIndex(columnCount - 1), null);
      i = i + row1.getRowsRepeatedNumber();
    }

    // insert columns secondly
    if (columnList.size() == 0) // no column, create a new column
    {
      OdfStyle columnStyle = mTableElement.getAutomaticStyles().newStyle(OdfStyleFamily.TableColumn);
      String columnStylename = columnStyle.getStyleNameAttribute();
      columnStyle.setProperty(StyleTableColumnPropertiesElement.ColumnWidth, DEFAULT_TABLE_WIDTH + "in");
      columnStyle.setProperty(StyleTableColumnPropertiesElement.RelColumnWidth, DEFAULT_REL_TABLE_WIDTH + "*");

      newColumn = (TableTableColumnElement) OdfXMLFactory.newOdfElement((OdfFileDom) mTableElement
          .getOwnerDocument(), OdfName.newName(OdfDocumentNamespace.TABLE, "table-column"));
      newColumn.setStyleName(columnStylename);
      mTableElement.insertBefore(newColumn, positonElement);
    } else { // has column, append a same column as the last one.
      TableTableColumnElement refColumn = columnList.get(columnList.size() - 1).getOdfElement();
      newColumn = (TableTableColumnElement) refColumn.cloneNode(true);
      String tableNameSpace = OdfDocumentNamespace.TABLE.getUri();
      newColumn.removeAttributeNS(tableNameSpace, "number-columns-repeated");
      mTableElement.insertBefore(newColumn, positonElement);
    }

View Full Code Here

      }
      refColumn = getColumnByIndex(index);
      positionCol = refColumn;
      // add a single column element to describe columns.
      if (isUseRepeat()) {
        TableTableColumnElement newColumnEle = (TableTableColumnElement) refColumn.getOdfElement().cloneNode(
            true);
        if (columnCount > 1) {
          newColumnEle.setTableNumberColumnsRepeatedAttribute(columnCount);
        } else {
          newColumnEle.removeAttributeNS(tableNameSpace, "number-columns-repeated");
        }
        mTableElement.insertBefore(newColumnEle, positionCol.getOdfElement());
        for (int i = 0; i < columnCount; i++) {
          list.add(getColumnInstance(newColumnEle, i));
        }
      } else {
        for (int i = 0; i < columnCount; i++) {
          TableTableColumnElement newColumnEle = (TableTableColumnElement) refColumn.getOdfElement()
              .cloneNode(true);
          mTableElement.insertBefore(newColumnEle, positionCol.getOdfElement());
          newColumnEle.removeAttributeNS(tableNameSpace, "number-columns-repeated");
          list.add(getColumnInstance(newColumnEle, 0));
        }
      }
      return list;
    }

    // 1. insert the cell
    int iRowCount = getRowCount();
    for (int i = iRowCount - 1; i >= 0;) {
      Row row = getRowByIndex(i);
      Cell refCell = row.getCellByIndex(index - 1);
      Cell positionCell = null;
      positionCell = row.getCellByIndex(index);
      row.insertCellBefore(refCell, positionCell, columnCount);
      i = i - row.getRowsRepeatedNumber();
    }

    refColumn = getColumnByIndex(index - 1);
    positionCol = getColumnByIndex(index);
    // 2. insert a <table:table-column>
    if (refColumn.getOdfElement() == positionCol.getOdfElement()) {
      TableTableColumnElement column = refColumn.getOdfElement();
      int repeatedCount = column.getTableNumberColumnsRepeatedAttribute();
      TableTableColumnElement columnEle = positionCol.getOdfElement();
      // add a single column element to describe columns.
      if (isUseRepeat()) {
        column.setTableNumberColumnsRepeatedAttribute(repeatedCount + columnCount);
        Column startCol = getColumnInstance(positionCol.getOdfElement(), 0);
        for (int i = repeatedCount + columnCount - 1; i >= columnCount + (index - startCol.getColumnIndex()); i--) {
          updateColumnRepository(columnEle, i - columnCount, columnEle, i);
        }
        for (int i = 0; i < columnCount; i++) {
          list.add(getColumnInstance(column, refColumn.mnRepeatedIndex + 1 + i));
        }
      } else {
        TableTableColumnElement newBeforeColumnEle = (TableTableColumnElement) refColumn.getOdfElement()
            .cloneNode(true);
        if (index > 1) {
          newBeforeColumnEle.setTableNumberColumnsRepeatedAttribute(index);
        } else {
          newBeforeColumnEle.removeAttributeNS(tableNameSpace, "number-columns-repeated");
        }
        mTableElement.insertBefore(newBeforeColumnEle, positionCol.getOdfElement());
        for (int i = 0; i < index; i++) {
          updateColumnRepository(columnEle, i, newBeforeColumnEle, i);
        }
        int newAfterCount = repeatedCount - index;
        if (newAfterCount > 1) {
          positionCol.setColumnsRepeatedNumber(newAfterCount);
        } else {
          positionCol.getOdfElement().removeAttributeNS(tableNameSpace, "number-columns-repeated");
        }
        for (int i = repeatedCount - 1; i >= index; i--) {
          updateColumnRepository(columnEle, i, columnEle, i - index);
        }
        for (int i = 0; i < columnCount; i++) {
          TableTableColumnElement newColumnEle = (TableTableColumnElement) refColumn.getOdfElement()
              .cloneNode(true);
          newColumnEle.removeAttributeNS(tableNameSpace, "number-columns-repeated");
          mTableElement.insertBefore(newColumnEle, positionCol.getOdfElement());
          list.add(getColumnInstance(newColumnEle, 0));
        }
      }
    } else {
      // add a single column element to describe columns.
      if (isUseRepeat()) {
        TableTableColumnElement newColumnEle = (TableTableColumnElement) refColumn.getOdfElement().cloneNode(
            true);
        if (columnCount > 1) {
          newColumnEle.setTableNumberColumnsRepeatedAttribute(columnCount);
        } else {
          newColumnEle.removeAttributeNS(tableNameSpace, "number-columns-repeated");
        }
        mTableElement.insertBefore(newColumnEle, positionCol.getOdfElement());
        for (int i = 0; i < columnCount; i++) {
          list.add(getColumnInstance(newColumnEle, i));
        }
      } else {
        for (int i = 0; i < columnCount; i++) {
          TableTableColumnElement newColumnEle = (TableTableColumnElement) refColumn.getOdfElement()
              .cloneNode(true);
          newColumnEle.removeAttributeNS(tableNameSpace, "number-columns-repeated");
          mTableElement.insertBefore(newColumnEle, positionCol.getOdfElement());
          list.add(getColumnInstance(newColumnEle, 0));
        }
      }
    }
View Full Code Here

    Column firstColumn;
    for (int i = 0; i < deleteColCount; i++) {
      firstColumn = getColumnByIndex(startIndex);
      int repeatedAttr = firstColumn.getColumnsRepeatedNumber();
      if (repeatedAttr == 1) {
        TableTableColumnElement columnEle = OdfElement.findNextChildNode(TableTableColumnElement.class,
            firstColumn.getOdfElement());
        mTableElement.removeChild(firstColumn.getOdfElement());
        if (i < (deleteColCount - 1)) {
          firstColumn = this.getColumnInstance(columnEle, 0);
        }
View Full Code Here

   *
   * @return a list of table columns
   */
  public List<Column> getColumnList() {
    ArrayList<Column> list = new ArrayList<Column>();
    TableTableColumnElement colEle = null;
    for (Node n : new DomNodeList(mTableElement.getChildNodes())) {
      if (n instanceof TableTableHeaderColumnsElement) {
        TableTableHeaderColumnsElement headers = (TableTableHeaderColumnsElement) n;
        for (Node m : new DomNodeList(headers.getChildNodes())) {
          if (m instanceof TableTableColumnElement) {
            colEle = (TableTableColumnElement) m;
            int columnsRepeatedNumber = colEle.getTableNumberColumnsRepeatedAttribute();
            for (int i = 0; i < columnsRepeatedNumber; i++) {
              list.add(getColumnInstance(colEle, i));
            }
          }
        }
      }
      if (n instanceof TableTableColumnElement) {
        colEle = (TableTableColumnElement) n;
        int columnsRepeatedNumber = colEle.getTableNumberColumnsRepeatedAttribute();
        for (int i = 0; i < columnsRepeatedNumber; i++) {
          list.add(getColumnInstance(colEle, i));
        }
      }
    }
View Full Code Here

      TableTableElement table = sheet.newTableTableElement();
      //table.setOdfAttribute( OdfName.newName( OdfNamespace.newName(OdfDocumentNamespace.TABLE), "name" ), "newtable" );
      //table.setOdfAttribute( OdfName.newName( OdfNamespace.newName(OdfDocumentNamespace.TABLE), "style-name" ), "ta1" );
      table.setTableNameAttribute("newtable");
      table.setTableStyleNameAttribute("ta1");
      TableTableColumnElement column = table.newTableTableColumnElement();
      //column.setOdfAttribute( OdfName.newName( OdfNamespace.newName(OdfDocumentNamespace.TABLE), "style-name" ), "co1" );
      //column.setOdfAttribute( OdfName.newName( OdfNamespace.newName(OdfDocumentNamespace.TABLE), "default-cell-style-name" ), "Default" );
      column.setTableStyleNameAttribute("co1");
      column.setTableDefaultCellStyleNameAttribute("Default");
      XPath xpath = contentDom.getXPath();
      TableTableElement spreadsheetTest = (TableTableElement) xpath.evaluate("//table:table[last()]", contentDom, XPathConstants.NODE);
      Assert.assertNotNull(spreadsheetTest.getChildNodes());

      Assert.assertTrue(spreadsheetTest.getChildNodes().item(0) instanceof TableTableColumnElement);
View Full Code Here

    OdfTable table = getTable();
    TableTableElement tableEle = table.getOdfElement();
    int repeateNum = getColumnsRepeatedNumber();
    if (repeateNum > 1) {
      //change this repeated column to several single columns
      TableTableColumnElement ownerColumnElement = null;
      int repeatedColumnIndex = mnRepeatedIndex;
      Node refElement = maColumnElement;
      maColumnElement.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-columns-repeated");
      String originalWidth = maColumnElement.getProperty(OdfTableColumnProperties.ColumnWidth);
      String originalRelWidth = maColumnElement.getProperty(OdfTableColumnProperties.RelColumnWidth);
      for (int i = repeateNum - 1; i >= 0; i--) {
        TableTableColumnElement newColumn = (TableTableColumnElement) OdfXMLFactory.newOdfElement((OdfFileDom) maColumnElement.getOwnerDocument(),
            OdfName.newName(OdfDocumentNamespace.TABLE, "table-column"));
        if (originalWidth != null && originalWidth.length() > 0) {
          newColumn.setProperty(OdfTableColumnProperties.ColumnWidth, originalWidth);
        }
        if (originalRelWidth != null && originalRelWidth.length() > 0) {
          newColumn.setProperty(OdfTableColumnProperties.RelColumnWidth, originalRelWidth);
        }
        tableEle.insertBefore(newColumn, refElement);
        refElement = newColumn;
        if (repeatedColumnIndex == i) {
          ownerColumnElement = newColumn;
View Full Code Here

TOP

Related Classes of org.odftoolkit.odfdom.dom.element.table.TableTableColumnElement

Copyright © 2018 www.massapicom. 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.