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

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


    // remove first empty row of table.
    mytable.removeChild(mytable.getFirstChild().getNextSibling());

    TableTableRowElement row = (TableTableRowElement) mytable.appendChild(new TableTableRowElement(odt));
    TableTableCellElement cell = (TableTableCellElement) row.appendChild(new TableTableCellElement(odt));

    OdfTextParagraph p = new OdfTextParagraph(odt);
    p.appendChild(odt.createTextNode("Corvette"));
    cell.appendChild(p);

    // 2nd Table
    TableTableElement my2table = new TableTableElement(odt);

    Element spreadsheetElement = (Element) odt.getElementsByTagNameNS(OdfDocumentNamespace.OFFICE.getUri(), "spreadsheet").item(0);
    my2table.setAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "table:name", "BikesSheet");
    spreadsheetElement.appendChild(my2table);

    TableTableRowElement row2 = (TableTableRowElement) my2table.appendChild(new TableTableRowElement(odt));
    TableTableCellElement cell2 = (TableTableCellElement) row2.appendChild(new TableTableCellElement(odt));

    OdfTextParagraph p2 = new OdfTextParagraph(odt);
    p2.appendChild(odt.createTextNode("Bandit 600"));
    cell2.appendChild(p2);

    mysheet.save(ResourceUtilities.getTestOutput(TEST_FILE_SAVE_2TABLES_OUT));
  }
View Full Code Here


      TableTableElement table = contentDom.newOdfElement(TableTableElement.class);


      TableTableRowElement tr = table.newTableTableRowElement();

      TableTableCellElement td1 = tr.newTableTableCellElement(0,"void");

      TextPElement p1 = td1.newTextPElement();
      p1.appendChild(contentDom.createTextNode("content 1"));

      p0.getParentNode().insertBefore(table, p0);

      table.setProperty(StyleTablePropertiesElement.Width, "12cm");
      table.setProperty(StyleTablePropertiesElement.Align, "left");

      td1.setProperty(StyleTableColumnPropertiesElement.ColumnWidth, "2cm");
      XPath xpath = contentDom.getXPath();
      TableTableRowElement tableRowTest = (TableTableRowElement) xpath.evaluate("//table:table-row [last()]", contentDom, XPathConstants.NODE);
      Assert.assertNotNull(tableRowTest.getChildNodes());

      Assert.assertTrue(tableRowTest.getChildNodes().item(0) instanceof TableTableCellElement);
View Full Code Here

      TableTableElement table = doc.newOdfElement(TableTableElement.class);

      TableTableRowElement tr = (TableTableRowElement) table.appendChild(
          doc.newOdfElement(TableTableRowElement.class));
      TableTableCellElement td1 = (TableTableCellElement) tr.appendChild(
          doc.newOdfElement(TableTableCellElement.class));
      OdfTextParagraph p1 = doc.newOdfElement(OdfTextParagraph.class);
      p1.appendChild(doc.createTextNode("content 1"));
      td1.appendChild(p1);

      TableTableCellElement td2 = (TableTableCellElement) tr.appendChild(
          doc.newOdfElement(TableTableCellElement.class));
      OdfTextParagraph p2 = doc.newOdfElement(OdfTextParagraph.class);
      p2.appendChild(doc.createTextNode("cell 2"));
      td2.appendChild(p2);

      TableTableCellElement td3 = (TableTableCellElement) tr.appendChild(
          doc.newOdfElement(TableTableCellElement.class));
      OdfTextParagraph p3 = doc.newOdfElement(OdfTextParagraph.class);
      p3.appendChild(doc.createTextNode("table cell content 3"));
      td3.appendChild(p3);

      p0.getParentNode().insertBefore(table, p0);

      table.setProperty(StyleTablePropertiesElement.Width, "12cm");
      table.setProperty(StyleTablePropertiesElement.Align, "left");

      td1.setProperty(StyleTableColumnPropertiesElement.ColumnWidth, "2cm");

      td2.setProperty(StyleTableColumnPropertiesElement.ColumnWidth, "4cm");

      td3.setProperty(StyleTableColumnPropertiesElement.ColumnWidth, "6cm");

      doc.getDocument().save(ResourceUtilities.newTestOutputFile("tabletest.odt"));

    } catch (Exception e) {
      Logger.getLogger(CreateTableTest.class.getName()).log(Level.SEVERE, e.getMessage(), e);
View Full Code Here

    parent.appendChild(hEle);
    m1 = odt.getInContentMetadataFromCache();
    TestCase.assertEquals(1, m1.size());
    parent.removeChild(hEle);

    TableTableCellElement ttce = contentDom
        .newOdfElement(TableTableCellElement.class);
    parent.appendChild(ttce);
    ttce.setXhtmlAboutAttribute("[dbpedia:J._K._Rowling]");
    m1 = odt.getInContentMetadataFromCache();
    TestCase.assertEquals(0, m1.size());
    ttce.setXhtmlPropertyAttribute("dbpprop:nationality");
    ttce.setTextContent("British");
    m1 = odt.getInContentMetadataFromCache();
    TestCase.assertEquals(1, m1.size());
    ttce.setXhtmlAboutAttribute("http://dbpedia.org/page/J._R._R._Tolkien");
    m1 = odt.getInContentMetadataFromCache();
    TestCase.assertEquals(1, m1.size());
    TestCase.assertEquals("http://dbpedia.org/page/J._R._R._Tolkien", m1
        .listStatements().nextStatement().getSubject().getURI());
View Full Code Here

        if (i == startRowi && j == startColumni) {
          continue;
        }
        OdfTableCell cell = aRow.getCellByIndex(j);
        if (cell.getOdfElement() instanceof TableTableCellElement) {
          TableTableCellElement cellEle = (TableTableCellElement) cell.getOdfElement();
          if ((cellEle.getTableNumberColumnsSpannedAttribute() + j > startColumni)
              && (cellEle.getTableNumberRowsSpannedAttribute() + i > startRowi)) {
            return mOwnerTable.getCellInstance(cellEle, 0, 0);
          }
        }
      }
    }
View Full Code Here

    //rather than merge to a big cell.
    if (rowCount == (mnEndRow - mnStartRow + 1)
        && colCount == (mnEndColumn - mnStartColumn + 1)
        && !mbSpreadsheet) {
      if (firstCell.getOdfElement() instanceof TableTableCellElement) {
        TableTableCellElement firstCellElement = (TableTableCellElement) (firstCell.getOdfElement());
        firstCellElement.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-columns-spanned");
        firstCellElement.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-rows-spanned");
        firstCellElement.setOfficeValueTypeAttribute(OfficeValueTypeAttribute.Value.STRING.toString());
      }
      //just copy the text of the other cells to this first cell
      for (int i = mnStartRow; i < mnEndRow + 1; i++) {
        for (int j = mnStartColumn; j < mnEndColumn + 1; j++) {
          OdfTableCell cellBase = maOwnerTable.getCellByPosition(j, i);
          if (j != mnStartColumn || i != mnStartRow) {
            //copy the content of this cell to the first cell
            firstCell.appendContentFrom(cellBase);
          }
        }
      }
      maOwnerTable.removeRowsByIndex(1, maOwnerTable.getRowCount() - 1);
      maOwnerTable.removeColumnsByIndex(1, maOwnerTable.getColumnCount() - 1);
      OdfTableColumn firstColumn = maOwnerTable.getColumnByIndex(0);
      firstColumn.setWidth(maOwnerTable.getWidth());
      mnEndRow = mnStartRow;
      mnEndColumn = mnStartColumn;
      return;
    } //if the cell range covered all the table row, and the merged column > 1
    //the merged column can be removed
    else if (rowCount == (mnEndRow - mnStartRow + 1)
        && colCount > (mnEndColumn - mnStartColumn + 1)
        && (mnEndColumn - mnStartColumn) > 0) {
      //the first cell, set the span attribute
      if (firstCell.getOdfElement() instanceof TableTableCellElement) {
        TableTableCellElement firstCellElement = (TableTableCellElement) (firstCell.getOdfElement());
        firstCellElement.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-columns-spanned");
        firstCellElement.setTableNumberRowsSpannedAttribute(Integer.valueOf(mnEndRow - mnStartRow + 1));
        firstCellElement.setOfficeValueTypeAttribute(OfficeValueTypeAttribute.Value.STRING.toString());
      }
      //the other cell, copy the content to first cell
      //if it is also in the first column of the cell range, set to the covered cell
      //other cell not in the first column will be removed when remove the column
      for (int i = mnStartRow; i < mnEndRow + 1; i++) {
        for (int j = mnStartColumn; j < mnEndColumn + 1; j++) {
          OdfTableCell cellBase = maOwnerTable.getCellByPosition(j, i);
          if (j != mnStartColumn || i != mnStartRow) {
            //append content to first cell
            firstCell.appendContentFrom(cellBase);
            //change the cell in the first column of cell range to covered cell
            if ((j == mnStartColumn) && (cellBase.getOdfElement() instanceof TableTableCellElement)) {
              //change the normal cell to be the covered cell
              TableTableCellElement firstColumnCell = (TableTableCellElement) cellBase.getOdfElement();
              TableCoveredTableCellElement coveredCell = (TableCoveredTableCellElement) OdfXMLFactory.newOdfElement(
                  (OdfFileDom) firstColumnCell.getOwnerDocument(),
                  OdfName.newName(OdfDocumentNamespace.TABLE, "covered-table-cell"));
              OdfTableRow parentRow = cellBase.getTableRow();
              parentRow.getOdfElement().insertBefore(coveredCell, firstColumnCell);
              parentRow.getOdfElement().removeChild(firstColumnCell);
            }
          }
        }
      }
      List<Long> widthList = getCellRangeWidthList();
      long nCellRangeWidth = widthList.get(widthList.size() - 1).longValue() - widthList.get(0).longValue();
      maOwnerTable.removeColumnsByIndex(mnStartColumn + 1, mnEndColumn - mnStartColumn);
      OdfTableColumn firstColumn = maOwnerTable.getColumnByIndex(mnStartColumn);
      firstColumn.setWidth(nCellRangeWidth);
      mnEndColumn = mnStartColumn;
      return;
    } //if the cell range covered all the table column, the merged row can be removed
    else if (rowCount > (mnEndRow - mnStartRow + 1)
        && colCount == (mnEndColumn - mnStartColumn + 1)
        && (mnEndRow - mnStartRow) > 0) {
      //the first cell, set the span attribute
      if (firstCell.getOdfElement() instanceof TableTableCellElement) {
        TableTableCellElement firstCellElement = (TableTableCellElement) (firstCell.getOdfElement());
        firstCellElement.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-rows-spanned");
        firstCellElement.setTableNumberColumnsSpannedAttribute(Integer.valueOf(mnEndColumn - mnStartColumn + 1));
        firstCellElement.setOfficeValueTypeAttribute(OfficeValueTypeAttribute.Value.STRING.toString());
      }
      //the other cell, copy the content to first cell
      //if it is also in the first row of the cell range, set to the covered cell
      //other cell not in the first row will be removed when remove the row
      for (int i = mnStartRow; i < mnEndRow + 1; i++) {
        for (int j = mnStartColumn; j < mnEndColumn + 1; j++) {
          OdfTableCell cellBase = maOwnerTable.getCellByPosition(j, i);
          if (j != mnStartColumn || i != mnStartRow) {
            //append content to first cell
            firstCell.appendContentFrom(cellBase);
            //change the cell in the first row of cell range to covered cell
            if ((i == mnStartRow) && (cellBase.getOdfElement() instanceof TableTableCellElement)) {
              //change the normal cell to be the covered cell
              TableTableCellElement firstRowCell = (TableTableCellElement) cellBase.getOdfElement();
              TableCoveredTableCellElement coveredCell = (TableCoveredTableCellElement) OdfXMLFactory.newOdfElement(
                  (OdfFileDom) firstRowCell.getOwnerDocument(),
                  OdfName.newName(OdfDocumentNamespace.TABLE, "covered-table-cell"));
              OdfTableRow parentRow = cellBase.getTableRow();
              parentRow.getOdfElement().insertBefore(coveredCell, firstRowCell);
              parentRow.getOdfElement().removeChild(firstRowCell);
            }
          }
        }
      }
      maOwnerTable.removeRowsByIndex(mnStartRow + 1, mnEndRow - mnStartRow);
      mnEndRow = mnStartRow;
      return;
    } //don't remove any row/column
    else {
      //first keep the column and row count in this cell range
      //the first cell, set the span attribute
      if (firstCell.getOdfElement() instanceof TableTableCellElement) {
        TableTableCellElement firstCellElement = (TableTableCellElement) (firstCell.getOdfElement());
        firstCellElement.setTableNumberColumnsSpannedAttribute(Integer.valueOf(mnEndColumn - mnStartColumn + 1));
        firstCellElement.setTableNumberRowsSpannedAttribute(Integer.valueOf(mnEndRow - mnStartRow + 1));
        firstCellElement.setOfficeValueTypeAttribute(OfficeValueTypeAttribute.Value.STRING.toString());
      }
      //the other cell, set to the covered cell
      for (int i = mnStartRow; i < mnEndRow + 1; i++) {
        for (int j = mnStartColumn; j < mnEndColumn + 1; j++) {
          OdfTableCell cellBase = maOwnerTable.getCellByPosition(j, i);
          if (j != mnStartColumn || i != mnStartRow) {
            if (cellBase.getOdfElement() instanceof TableTableCellElement) {
              //change the normal cell to be the covered cell
              TableTableCellElement cell = (TableTableCellElement) cellBase.getOdfElement();
              TableCoveredTableCellElement coveredCell = (TableCoveredTableCellElement) OdfXMLFactory.newOdfElement(
                  (OdfFileDom) cell.getOwnerDocument(),
                  OdfName.newName(OdfDocumentNamespace.TABLE, "covered-table-cell"));

              OdfTableRow parentRow = cellBase.getTableRow();
              parentRow.getOdfElement().insertBefore(coveredCell, cell);
              //copy the content of this cell to the first cell
              firstCell.appendContentFrom(cellBase);
              cellBase.removeContent();
              //set the table column repeated attribute
              int repeatedNum = cell.getTableNumberColumnsRepeatedAttribute().intValue();
              int num = (mnEndColumn - j + 1) - repeatedNum;
              if (num >= 0) {
                coveredCell.setTableNumberColumnsRepeatedAttribute(Integer.valueOf(repeatedNum));
                parentRow.getOdfElement().removeChild(cell);
              } else {
                coveredCell.setTableNumberColumnsRepeatedAttribute(new Integer(mnEndColumn - j + 1));
                cell.setTableNumberColumnsRepeatedAttribute(Integer.valueOf(-num));
              }

            } else if (cellBase.getOdfElement() instanceof TableCoveredTableCellElement) {
              try {
                //copy the content of this cell to the first cell
View Full Code Here

            newElement = getCurrentResource().getDocument().createElement("tr");
            dstElement.add(newElement);
            newElement.setClassName(otl.getStyleName());

        } else if (e instanceof TableTableCellElement) {
            TableTableCellElement otl = (TableTableCellElement) e;
            newElement = getCurrentResource().getDocument().createElement("td");
            dstElement.add(newElement);
            newElement.setClassName(otl.getStyleName());
        } else if (e instanceof OdfTextHeading) {// text:p
            // System.out.println(e.getTextContent());
            OdfTextHeading oth = (OdfTextHeading) e;
            if (hasPageBreak(oth)) {
                createNewResource();
View Full Code Here

TOP

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

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.