[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.webtools] Displaying Attribute Node
|
- From: italdesign99@xxxxxxxxxxx (Muneer)
- Date: Mon, 22 Oct 2007 19:50:43 +0000 (UTC)
- Newsgroups: eclipse.webtools
- Organization: Eclipse
- User-agent: NewsPortal/0.36 (http://florian-amrhein.de/newsportal)
I have instantiated WST's structured Text Editor.
I'm trying to semi mimick WTP's xml editor.
Here's my content provider:
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
import org.w3c.dom.Node;
class DOMContentProvider implements ITreeContentProvider {
public void dispose() {
}
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof INodeNotifier) {
((INodeNotifier)
parentElement).getAdapterFor(RefreshOnNotifyChangedAdapter.class);
}
if (parentElement instanceof Node) {
List children = new ArrayList();
Node child = ((Node) parentElement).getFirstChild();
while (child != null) {
if (child instanceof INodeNotifier) {
((INodeNotifier)
child).getAdapterFor(RefreshOnNotifyChangedAdapter.class);
}
children.add(child);
child = child.getNextSibling();
}
return children.toArray();
}
return new Object[0];
}
public Object[] getElements(Object inputElement) {
if (inputElement instanceof IDOMModel) {
if (inputElement instanceof INodeNotifier) {
((INodeNotifier)
inputElement).getAdapterFor(RefreshOnNotifyChangedAdapter.class);
}
return new Object[]{((IDOMModel) inputElement).getDocument()};
}
return new Object[0];
}
public Object getParent(Object element) {
if (element instanceof Node) {
if (element instanceof INodeNotifier) {
((INodeNotifier)
element).getAdapterFor(RefreshOnNotifyChangedAdapter.class);
}
return ((Node) element).getParentNode();
}
return null;
}
public boolean hasChildren(Object element) {
if (element instanceof Node) {
if (element instanceof INodeNotifier) {
((INodeNotifier)
element).getAdapterFor(RefreshOnNotifyChangedAdapter.class);
}
return ((Node) element).getFirstChild() != null;
}
return false;
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
{
}
}
Anyone know a simple way of modifying this in order to get the attribute
node to be returned as well.
Thanks