1) Moved net.sourceforge.phpeclipse.ui\src\net\sourceforge\phpdt back to net.sourcefo...
[phpeclipse.git] / net.sourceforge.phpeclipse.ui / src / net / sourceforge / phpeclipse / wizards / html / TableElementModel.java
diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/wizards/html/TableElementModel.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/wizards/html/TableElementModel.java
deleted file mode 100644 (file)
index b9aeef8..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * $Id: TableElementModel.java,v 1.2 2006-10-21 23:18:43 pombredanne Exp $
- * Copyright Narushima Hironori. All rights reserved.
- */
-package net.sourceforge.phpeclipse.wizards.html;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * TableElementModel
- */
-public class TableElementModel {
-
-       final static char[] CHAR_TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
-
-       StringDivider stringDivider = new StringDivider();
-
-       ElementWriter writer;
-
-       DocumentBuilder docBuilder;
-
-       Document document;
-
-       Element tableElement;
-
-       String[] columnProperties;
-
-       public TableElementModel(String content, boolean parse)
-                       throws FactoryConfigurationError, ParserConfigurationException,
-                       SAXException, IOException {
-               docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-               if (parse) {
-                       initAsParse(content);
-               } else {
-                       initModel(content);
-               }
-               columnProperties = createColumnProperties();
-
-               // create elementWriter
-               writer = new ElementWriter(0, null);
-               writer.setExpandOption("caption", ElementWriter.END_CHANGELINE);
-               writer.setExpandOption("table", ElementWriter.BEGIN_CHANGELINE
-                               | ElementWriter.END_CHANGELINE);
-               writer.setExpandOption("thead", ElementWriter.BEGIN_CHANGELINE
-                               | ElementWriter.END_CHANGELINE);
-               writer.setExpandOption("tfoot", ElementWriter.BEGIN_CHANGELINE
-                               | ElementWriter.END_CHANGELINE);
-               writer.setExpandOption("tbody", ElementWriter.BEGIN_CHANGELINE
-                               | ElementWriter.END_CHANGELINE);
-               writer.setExpandOption("tr", ElementWriter.END_CHANGELINE);
-       }
-
-       void initModel(String content) throws ParserConfigurationException,
-                       SAXException, IOException {
-               StringReader strReader = new StringReader(content);
-               InputSource inputSrc = new InputSource(strReader);
-
-               document = docBuilder.parse(inputSrc);
-               tableElement = document.getDocumentElement();
-
-               Element[] rows = getRows();
-               for (int i = 0; i < rows.length; i++) {
-                       Element[] cells = chooseCellElements(rows[i]);
-                       for (int j = 0; j < cells.length; j++) {
-                               Element cell = cells[j];
-                               if (!cell.hasChildNodes()) {
-                                       cell.appendChild(document.createTextNode(""));
-                               }
-                       }
-               }
-       }
-
-       public void initAsParse(String content)
-                       throws ParserConfigurationException, FactoryConfigurationError {
-               // create new table model.
-               document = docBuilder.newDocument();
-               tableElement = document.createElement("table");
-
-               String[][] cells = stringDivider.divide(content);
-               if (cells.length > 0) {
-                       for (int i = 0; i < cells.length; i++) {
-                               String[] rows = cells[i];
-                               Element tr = document.createElement("tr");
-                               for (int j = 0; j < rows.length; j++) {
-                                       Element e = document.createElement("td");
-                                       e.appendChild(document.createTextNode(rows[j]));
-                                       tr.appendChild(e);
-                               }
-                               tableElement.appendChild(tr);
-                       }
-
-                       setColumnCount(cells[0].length);
-               } else {
-                       Element tr = document.createElement("tr");
-                       Element td = document.createElement("td");
-                       td.appendChild(document.createTextNode(""));
-                       tr.appendChild(td);
-                       tableElement.appendChild(tr);
-
-                       setColumnCount(1);
-               }
-       }
-
-       String[] createColumnProperties() {
-               int len = getColumnCount();
-               String[] props = new String[len];
-               for (int i = 0; i < len; i++) {
-                       props[i] = toColumnName(i);
-               }
-               return props;
-       }
-
-       public void setRowCount(int rowCount) {
-               Element[] rows = getRows();
-               if (rowCount > rows.length) {
-                       for (int i = rows.length; i < rowCount; i++) {
-                               tableElement.appendChild(createRowElement());
-                       }
-               } else if (rowCount < rows.length) {
-                       for (int i = rowCount; i < rows.length; i++) {
-                               tableElement.removeChild(rows[i]);
-                       }
-               }
-       }
-
-       public Element[] getRows() {
-               ArrayList rows = new ArrayList();
-               NodeList nodes = tableElement.getElementsByTagName("tr");
-               for (int i = 0; i < nodes.getLength(); i++) {
-                       rows.add(nodes.item(i));
-               }
-               return (Element[]) rows.toArray(new Element[rows.size()]);
-       }
-
-       public int getRowCount() {
-               return getRows().length;
-       }
-
-       Element createRowElement() {
-               Element tr = document.createElement("tr");
-               for (int i = 0, columnCount = getColumnCount(); i < columnCount; i++) {
-                       Element td = document.createElement("td");
-                       td.appendChild(document.createTextNode(""));
-                       tr.appendChild(td);
-               }
-               return tr;
-       }
-
-       public void setColumnCount(int newLength) {
-               NodeList trs = tableElement.getElementsByTagName("tr");
-               for (int i = 0; i < trs.getLength(); i++) {
-                       Element tr = (Element) trs.item(i);
-                       Element[] cells = chooseCellElements(tr);
-                       int colLen = cells.length;
-
-                       if (newLength > colLen) {
-                               for (int j = 0, len = newLength - colLen; j < len; j++) {
-                                       Element cell = document.createElement("td");
-                                       cell.appendChild(document.createTextNode(""));
-                                       tr.appendChild(cell);
-                               }
-                       } else if (newLength < colLen) {
-                               for (int j = newLength; j < colLen; j++) {
-                                       tr.removeChild(cells[j]);
-                               }
-                       }
-               }
-               columnProperties = createColumnProperties();
-       }
-
-       public int getColumnCount() {
-               NodeList trs = tableElement.getElementsByTagName("tr");
-               if (trs.getLength() > 0) {
-                       Element tr = (Element) trs.item(0);
-                       return chooseCellElements(tr).length;
-               } else {
-                       return 0;
-               }
-       }
-
-       public static Element[] chooseCellElements(Element tr) {
-               NodeList nodeList = tr.getChildNodes();
-
-               ArrayList result = new ArrayList();
-               for (int i = 0; i < nodeList.getLength(); i++) {
-                       Node node = nodeList.item(i);
-                       if (node instanceof Element) {
-                               String nodeName = node.getNodeName();
-                               if (nodeName.equals("td") || nodeName.equals("th")) {
-                                       result.add(node);
-                               }
-                       }
-               }
-
-               return (Element[]) result.toArray(new Element[result.size()]);
-       }
-
-       public String expandCodes() {
-               return writer.expandTag(tableElement);
-       }
-
-       public static String toColumnName(int i) {
-               StringBuffer buff = new StringBuffer();
-               int u = i / CHAR_TABLE.length;
-               if (u > 0) {
-                       buff.append(CHAR_TABLE[u - 1]);
-               }
-               buff.append(CHAR_TABLE[i % CHAR_TABLE.length]);
-               return buff.toString();
-       }
-
-       /**
-        * Return index of char map. If can not parse values return -1.
-        */
-       public static int toNumeric(String code) {
-               int result = -1;
-               for (int i = 0; i < code.length(); i++) {
-                       char c = code.charAt(i);
-                       int match = Arrays.binarySearch(CHAR_TABLE, c);
-                       if (match >= 0) {
-                               if (result == -1) {
-                                       result = 0;
-                               }
-                               int v = match;
-                               int u = code.length() - 1 - i;
-                               if (u > 0) {
-                                       v = CHAR_TABLE.length * u * (v + 1);
-                               }
-                               result += v;
-                       }
-               }
-               return result;
-       }
-
-       public void move(Element tr, int moveCount) {
-               Element[] rows = getRows();
-               int index = -1;
-               for (int i = 0; i < rows.length; i++) {
-                       if (tr.equals(rows[i])) {
-                               index = i;
-                       }
-               }
-               if (index == -1) {
-                       throw new IllegalArgumentException(
-                                       "Invalid row node (not countained in this table):" + tr);
-               }
-               if (moveCount > 0) {
-                       // move down;
-                       for (int i = index; i < moveCount + index && i < rows.length - 1; i++) {
-                               tableElement.insertBefore(rows[i + 1], rows[i]);
-                       }
-               } else if (moveCount < 0) {
-                       // move up
-                       for (int i = index; i >= moveCount + index + 1 && i >= 1; i--) {
-                               tableElement.insertBefore(rows[index], rows[i - 1]);
-                       }
-               } else {
-                       return;
-               }
-       }
-
-       public void insertNewRowBefore(Element tr) {
-               Element newRow = createRowElement();
-               if (tr == null) {
-                       tableElement.appendChild(newRow);
-               } else {
-                       tableElement.insertBefore(newRow, tr);
-               }
-       }
-
-       public void removeRow(Element tr) {
-               tableElement.removeChild(tr);
-       }
-
-       public String[] getColumnProperties() {
-               return (String[]) columnProperties.clone();
-       }
-
-}