package org.eclipse.uml2.diagram.common.async;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
public class SyncModelContentProvider implements ITreeContentProvider {
private static final Object[] NOTHING = new Object[0];
public Object[] getChildren(Object parentElement) {
if (false == parentElement instanceof SyncModelNode) {
return NOTHING;
}
SyncModelNode parent = (SyncModelNode) parentElement;
return parent.getChildren().toArray();
}
public Object getParent(Object element) {
return element instanceof SyncModelNode ? ((SyncModelNode) element).getParent() : null;
}
public boolean hasChildren(Object element) {
return element instanceof SyncModelNode && !((SyncModelNode) element).isKnownLeaf();
}
public Object[] getElements(Object inputElement) {
if (inputElement instanceof SyncModelNode) {
return new Object[] { inputElement };
}
if (inputElement instanceof SyncModelNode[]) {
return (SyncModelNode[]) inputElement;
}
if (inputElement instanceof Collection<?>) {
List<SyncModelNode> input = new ArrayList<SyncModelNode>(((Collection<?>) inputElement).size());
for (Object next : (Collection<?>) inputElement) {
if (next instanceof SyncModelNode) {
input.add((SyncModelNode) next);
}
}
return input.toArray();
}
return NOTHING;
}
public void dispose() {
// TODO Auto-generated method stub
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
//
}
}