/* * $Id: TableElementCellModifier.java,v 1.2 2005-05-06 00:57:33 stefanbjarni Exp $ * Copyright Narushima Hironori. All rights reserved. */ package net.sourceforge.phpeclipse.wizards.html; import javax.xml.parsers.DocumentBuilderFactory; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.ICellModifier; import org.eclipse.swt.widgets.Item; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Text; /** * */ public class TableElementCellModifier implements ICellModifier { DocumentBuilderFactory builderFactory; IPropertyChangeListener listener; public TableElementCellModifier(IPropertyChangeListener listener) { builderFactory = DocumentBuilderFactory.newInstance(); this.listener = listener; } public boolean canModify(Object element, String property) { return getValue(element, property) != null; } public Object getValue(Object trElem, String property) { if(trElem instanceof Element){ Element e = (Element)trElem; if( e.getNodeName().equals("tr") ){ int v = TableElementModel.toNumeric(property); Element[] cells = TableElementModel.chooseCellElements(e); if(v >= 0 && v < cells.length){ NodeList nodes = cells[v].getChildNodes(); if(nodes.getLength() == 1){ Node n = nodes.item(0); if(n instanceof Text){ return n.getNodeValue(); } } } } } return null; } public void modify(Object element, String property, Object value) { if (element instanceof Item) { element = ((Item) element).getData(); } Element trElem = (Element)element; int index = TableElementModel.toNumeric(property); Element cellElem = TableElementModel.chooseCellElements(trElem)[index]; NodeList nodes = cellElem.getChildNodes(); for(int i=0; i