X-Git-Url: http://git.phpeclipse.com

diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/html/TableElementModel.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/html/TableElementModel.java
index 891d8f9..b9aeef8 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/html/TableElementModel.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/html/TableElementModel.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TableElementModel.java,v 1.1 2004-10-05 20:51:57 jsurfer Exp $
+ * $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;
@@ -29,59 +29,70 @@ 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{
+	public TableElementModel(String content, boolean parse)
+			throws FactoryConfigurationError, ParserConfigurationException,
+			SAXException, IOException {
 		docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-		if(parse){
+		if (parse) {
 			initAsParse(content);
-		}else{
+		} 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("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 {
+
+	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() ){
+				if (!cell.hasChildNodes()) {
 					cell.appendChild(document.createTextNode(""));
 				}
 			}
 		}
 	}
 
-	public void initAsParse(String content) throws ParserConfigurationException, FactoryConfigurationError {
+	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){
+		if (cells.length > 0) {
 			for (int i = 0; i < cells.length; i++) {
 				String[] rows = cells[i];
 				Element tr = document.createElement("tr");
@@ -92,144 +103,143 @@ public class TableElementModel {
 				}
 				tableElement.appendChild(tr);
 			}
-			
+
 			setColumnCount(cells[0].length);
-		}else{
+		} 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(){
+	String[] createColumnProperties() {
 		int len = getColumnCount();
 		String[] props = new String[len];
-		for(int i=0; i<len; i++){
+		for (int i = 0; i < len; i++) {
 			props[i] = toColumnName(i);
 		}
 		return props;
 	}
 
-	public void setRowCount(int rowCount){
+	public void setRowCount(int rowCount) {
 		Element[] rows = getRows();
-		if(rowCount > rows.length){
-			for(int i=rows.length; i<rowCount; i++){
-				tableElement.appendChild( createRowElement());
+		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++){
+		} else if (rowCount < rows.length) {
+			for (int i = rowCount; i < rows.length; i++) {
 				tableElement.removeChild(rows[i]);
 			}
 		}
 	}
-	
-	public Element[] getRows(){
+
+	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) );
+		for (int i = 0; i < nodes.getLength(); i++) {
+			rows.add(nodes.item(i));
 		}
-		return (Element[])rows.toArray(new Element[rows.size()]);
+		return (Element[]) rows.toArray(new Element[rows.size()]);
 	}
-	
-	public int getRowCount(){
+
+	public int getRowCount() {
 		return getRows().length;
 	}
-	
-	Element createRowElement(){
+
+	Element createRowElement() {
 		Element tr = document.createElement("tr");
-		for(int i=0, columnCount = getColumnCount(); i<columnCount; i++){
+		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){
+
+	public void setColumnCount(int newLength) {
 		NodeList trs = tableElement.getElementsByTagName("tr");
-		for(int i=0; i<trs.getLength(); i++){
-			Element tr = (Element)trs.item(i);
+		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++){
+
+			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]);
+			} else if (newLength < colLen) {
+				for (int j = newLength; j < colLen; j++) {
+					tr.removeChild(cells[j]);
 				}
 			}
 		}
 		columnProperties = createColumnProperties();
 	}
-	
-	public int getColumnCount(){
+
+	public int getColumnCount() {
 		NodeList trs = tableElement.getElementsByTagName("tr");
-		if( trs.getLength() > 0){
-			Element tr = (Element)trs.item(0);
+		if (trs.getLength() > 0) {
+			Element tr = (Element) trs.item(0);
 			return chooseCellElements(tr).length;
-		}else{
+		} else {
 			return 0;
 		}
 	}
-	
-	public static Element[] chooseCellElements(Element tr){
+
+	public static Element[] chooseCellElements(Element tr) {
 		NodeList nodeList = tr.getChildNodes();
-		
+
 		ArrayList result = new ArrayList();
-		for(int i=0; i<nodeList.getLength(); i++){
+		for (int i = 0; i < nodeList.getLength(); i++) {
 			Node node = nodeList.item(i);
-			if(node instanceof Element){
+			if (node instanceof Element) {
 				String nodeName = node.getNodeName();
-				if(nodeName.equals("td") || nodeName.equals("th") ){
+				if (nodeName.equals("td") || nodeName.equals("th")) {
 					result.add(node);
 				}
 			}
 		}
-		
-		return (Element[])result.toArray(new Element[result.size()]);
+
+		return (Element[]) result.toArray(new Element[result.size()]);
 	}
 
-	public String expandCodes(){
+	public String expandCodes() {
 		return writer.expandTag(tableElement);
 	}
 
-
-	public static String toColumnName(int i){
+	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]);
+		if (u > 0) {
+			buff.append(CHAR_TABLE[u - 1]);
 		}
-		buff.append( CHAR_TABLE[i % CHAR_TABLE.length] );
+		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){
+	 */
+	public static int toNumeric(String code) {
 		int result = -1;
-		for(int i=0; i<code.length(); i++){
+		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){
+			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);
+				int u = code.length() - 1 - i;
+				if (u > 0) {
+					v = CHAR_TABLE.length * u * (v + 1);
 				}
 				result += v;
 			}
@@ -237,47 +247,48 @@ public class TableElementModel {
 		return result;
 	}
 
-	public void move(Element tr, int moveCount){
+	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])){
+		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 (index == -1) {
+			throw new IllegalArgumentException(
+					"Invalid row node (not countained in this table):" + tr);
 		}
-		if(moveCount > 0){
+		if (moveCount > 0) {
 			// move down;
-			for(int i=index; i<moveCount+index && i<rows.length-1; i++){
-				tableElement.insertBefore(rows[i+1], rows[i]);
+			for (int i = index; i < moveCount + index && i < rows.length - 1; i++) {
+				tableElement.insertBefore(rows[i + 1], rows[i]);
 			}
-		}else if(moveCount < 0){
+		} else if (moveCount < 0) {
 			// move up
-			for(int i=index; i>=moveCount+index+1 && i >= 1; i--){
-				tableElement.insertBefore(rows[index], rows[i-1]);
+			for (int i = index; i >= moveCount + index + 1 && i >= 1; i--) {
+				tableElement.insertBefore(rows[index], rows[i - 1]);
 			}
-		}else{
+		} else {
 			return;
 		}
 	}
-	
-	public void insertNewRowBefore(Element tr){
+
+	public void insertNewRowBefore(Element tr) {
 		Element newRow = createRowElement();
-		if( tr == null){
+		if (tr == null) {
 			tableElement.appendChild(newRow);
-		}else{
+		} else {
 			tableElement.insertBefore(newRow, tr);
 		}
 	}
-	
-	public void removeRow(Element tr){
+
+	public void removeRow(Element tr) {
 		tableElement.removeChild(tr);
 	}
 
 	public String[] getColumnProperties() {
-		return (String[])columnProperties.clone();
+		return (String[]) columnProperties.clone();
 	}
 
 }