blob: e19d138699dc4ec98c940b644e8cf2a76c9ead00 [file] [log] [blame]
package org.eclipse.tea.core.ui.live.internal;
import java.util.Deque;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.tea.core.ui.live.internal.model.VisualizationRootNode;
import org.eclipse.tea.core.ui.live.internal.model.VisualizationStatusNode;
import org.eclipse.tea.core.ui.live.internal.model.VisualizationTaskNode;
public class TreeModelProvider implements ITreeContentProvider {
@Override
public Object[] getElements(Object inputElement) {
if (inputElement instanceof Deque<?>) {
return ((Deque<?>) inputElement).toArray();
}
return null;
}
@Override
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof VisualizationRootNode) {
return ((VisualizationRootNode) parentElement).getNodes().toArray();
} else if (parentElement instanceof VisualizationTaskNode) {
return ((VisualizationTaskNode) parentElement).getStatusNodes().toArray();
} else if (parentElement instanceof VisualizationStatusNode) {
return ((VisualizationStatusNode) parentElement).getChildren().toArray();
}
return null;
}
@Override
public Object getParent(Object element) {
return null;
}
@Override
public boolean hasChildren(Object element) {
return element instanceof VisualizationRootNode || ((element instanceof VisualizationTaskNode
&& !((VisualizationTaskNode) element).getStatusNodes().isEmpty())
|| ((element instanceof VisualizationStatusNode)
&& !((VisualizationStatusNode) element).getChildren().isEmpty()));
}
}