| /******************************************************************************* |
| * Copyright (c) 1998, 2008 IBM Corporation and Others |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Goh KONDOH - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.actf.model.dom.html.impl; |
| |
| import org.w3c.dom.Node; |
| import org.w3c.dom.NodeList; |
| import org.w3c.dom.html.HTMLTableCellElement; |
| import org.w3c.dom.html.HTMLTableRowElement; |
| |
| public class SHTableCellElement extends SHElement implements |
| HTMLTableCellElement { |
| protected SHTableCellElement(String name, SHDocument doc) { |
| super(name, doc); |
| } |
| |
| public int getCellIndex() { |
| Node parent = getParentNode(); |
| if (parent instanceof HTMLTableRowElement) { |
| int ret = 0; |
| for (Node prev = getPreviousSibling(); prev != null; prev = prev |
| .getPreviousSibling()) |
| ret++; |
| return ret; |
| } else { // error. |
| int ret = 0; |
| for (Node prev = getPreviousSibling(); prev != null |
| && !(prev instanceof HTMLTableRowElement); prev = prev |
| .getPreviousSibling()) |
| ret++; |
| return ret; |
| } |
| } |
| |
| public void setCellIndex(int cellIndex) { |
| if (cellIndex < 0) |
| return; |
| Node parent = getParentNode(); |
| if (parent instanceof HTMLTableRowElement) { |
| parent.removeChild(this); |
| NodeList siblings = parent.getChildNodes(); |
| if (siblings.getLength() <= cellIndex) { |
| parent.insertBefore(this, null); |
| } else { |
| parent.insertBefore(this, siblings.item(cellIndex)); |
| } |
| } else { // error. |
| Node leftMost = this; |
| int currentIndex = 0; |
| for (Node prev = getPreviousSibling(); prev != null |
| && !(prev instanceof HTMLTableRowElement); prev = prev |
| .getPreviousSibling()) { |
| leftMost = prev; |
| currentIndex++; |
| } |
| parent.removeChild(this); |
| Node before = leftMost; |
| for (int i = 0; i < cellIndex; i++) { |
| Node next = before.getNextSibling(); |
| if (next == null || next instanceof HTMLTableRowElement) { // out |
| // of |
| // bounds |
| parent.insertBefore(this, null); |
| return; |
| } else { |
| before = before.getNextSibling(); |
| } |
| } |
| parent.insertBefore(this, before); |
| } |
| } |
| |
| public String getAbbr() { |
| return getAttribute("abbr"); |
| } |
| |
| public void setAbbr(String abbr) { |
| setAttribute("abbr", abbr); |
| } |
| |
| public String getAlign() { |
| return getAttribute("align"); |
| } |
| |
| public void setAlign(String align) { |
| setAttribute("aling", align); |
| } |
| |
| public String getAxis() { |
| return getAttribute("axis"); |
| } |
| |
| public void setAxis(String axis) { |
| setAttribute("axis", axis); |
| } |
| |
| public String getBgColor() { |
| return getAttribute("bgcolor"); |
| } |
| |
| public void setBgColor(String bgColor) { |
| setAttribute("bgcolor", bgColor); |
| } |
| |
| public String getCh() { |
| return getAttribute("char"); |
| } |
| |
| public void setCh(String ch) { |
| setAttribute("char", ch); |
| } |
| |
| public String getChOff() { |
| return getAttribute("charoff"); |
| } |
| |
| public void setChOff(String chOff) { |
| setAttribute("charoff", chOff); |
| } |
| |
| /** |
| * @exception NumberFormatException |
| */ |
| public int getColSpan() { |
| return Integer.parseInt(getAttribute("colspan")); |
| } |
| |
| public void setColSpan(int colSpan) { |
| setAttribute("colspan", Integer.toString(colSpan)); |
| } |
| |
| public String getHeaders() { |
| return getAttribute("headers"); |
| } |
| |
| public void setHeaders(String headers) { |
| setAttribute("headers", headers); |
| } |
| |
| public String getHeight() { |
| return getAttribute("height"); |
| } |
| |
| public void setHeight(String height) { |
| setAttribute("height", height); |
| } |
| |
| public boolean getNoWrap() { |
| String val = getAttribute("nowrap"); |
| return val != null && val.length() != 0; |
| } |
| |
| public void setNoWrap(boolean noWrap) { |
| setAttribute("nowrap", noWrap ? "nowrap" : null); |
| } |
| |
| /** |
| * @exception NumberFormatException |
| */ |
| public int getRowSpan() { |
| return Integer.parseInt(getAttribute("rowspan")); |
| } |
| |
| public void setRowSpan(int rowSpan) { |
| setAttribute("rowspan", Integer.toString(rowSpan)); |
| } |
| |
| public String getScope() { |
| return getAttribute("scope"); |
| } |
| |
| public void setScope(String scope) { |
| setAttribute("scope", scope); |
| } |
| |
| public String getVAlign() { |
| return getAttribute("valign"); |
| } |
| |
| public void setVAlign(String vAlign) { |
| setAttribute("valign", vAlign); |
| } |
| |
| public String getWidth() { |
| return getAttribute("width"); |
| } |
| |
| public void setWidth(String width) { |
| setAttribute("width", width); |
| } |
| } |