/*******************************************************************************
* Copyright (c) 2008 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.smooks.configuration.editors.xml;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.jboss.tools.smooks.configuration.editors.IXMLStructuredObject;
/**
* @author Dart Peng
* @Date Aug 18, 2008
*/
public class XMLStructuredDataContentProvider implements ITreeContentProvider {
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
*/
public Object[] getChildren(Object obj) {
// for AbstractXMLObject (come from xml file fragment)
if(obj instanceof TagList){
return ((TagList)obj).getRootTagList().toArray();
}
if(obj instanceof TagObject){
List c = new ArrayList();
List pros = ((TagObject)obj).getProperties();
c.addAll(pros);
c.addAll(((TagObject)obj).getXMLNodeChildren());
return c.toArray();
}
if(obj instanceof IXMLStructuredObject){
return ((IXMLStructuredObject)obj).getChildren().toArray();
}
return new Object[] {};
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object )
*/
public Object getParent(Object arg0) {
if(arg0 instanceof IXMLStructuredObject){
return ((IXMLStructuredObject)arg0).getParent();
}
return null;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.
* Object)
*/
public boolean hasChildren(Object obj) {
// for AbstractXMLObject (come from xml file fragment)
if(obj instanceof TagList){
return true;
}
if(obj instanceof TagObject){
List<?> pros = ((TagObject)obj).getProperties();
List<?> c = (((TagObject)obj).getXMLNodeChildren());
return !pros.isEmpty() || !c.isEmpty();
}
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java
* .lang.Object)
*/
public Object[] getElements(Object arg0) {
if(arg0 instanceof TagList){
return ((TagList)arg0).getRootTagList().toArray();
}
if(arg0 instanceof IXMLStructuredObject){
return ((IXMLStructuredObject)arg0).getChildren().toArray();
}
return new Object[] {};
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
public void dispose() {
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
* .viewers.Viewer, java.lang.Object, java.lang.Object)
*/
public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
}
}