/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.xpathchooser;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import de.rcenvironment.core.gui.xpathchooser.model.XSDDocument;
import de.rcenvironment.core.gui.xpathchooser.model.XSDElement;
/**
* ContentProvider for the XSD TreeView.
*
* @author Heinrich Wendel
* @author Arne Bachmann
* @author Markus Kunde
*/
public class XSDContentProvider implements ITreeContentProvider {
/**
* Get children model elements.
* We don't allow XSDDocument and XSDAttribute here.
* @param object The object
* @return The model elements or empty array
*/
@Override
public Object[] getChildren(final Object object) {
final Object[] objects;
if (object instanceof XSDElement) {
objects = ((XSDElement) object).getElements().toArray();
} else {
objects = new Object[] { };
}
return objects;
}
/**
* Get the parent model element.
* @param object The object
* @return The model element or null
*/
@Override
public Object getParent(final Object object) {
final Object parent;
if (object instanceof XSDElement) {
parent = ((XSDElement) object).getParent();
} else {
parent = null;
}
return parent;
}
/**
* Says if there are children.
* @param object The model element
* @return True if children available, false if no children
*/
@Override
public boolean hasChildren(final Object object) {
final boolean children;
if (object instanceof XSDElement) {
XSDElement element = (XSDElement) object;
if (element.getElements().size() > 0) {
children = true;
} else {
children = false;
}
} else if (object instanceof XSDDocument) {
children = ((XSDDocument) object).getElements().size() != 0;
} else {
children = false;
}
return children;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
*/
@Override
public Object[] getElements(Object object) {
return getChildren(object);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
@Override
public void dispose() {
}
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
* java.lang.Object, java.lang.Object)
*/
@Override
public void inputChanged(final Viewer arg0, final Object oldInput, final Object newInput) {
}
}