package org.craftyourmod.mineclipse.ui.providers; import java.io.File; import org.craftyourmod.mineclipse.core.filemanager.BaseFile; import org.craftyourmod.mineclipse.core.filemanager.BinaryFile; import org.craftyourmod.mineclipse.core.filemanager.FileManager; import org.craftyourmod.mineclipse.core.filemanager.SourceFile; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; public class FileManagerContentProvider implements ITreeContentProvider { private final FileManager manager = FileManager.INSTANCE; @Override public void dispose() { } @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } @Override public Object[] getElements(final Object inputElement) { if (inputElement.equals("ROOT")) return new String[] { "BINS", "SRCS" }; if (inputElement.equals("BINS")) return manager.getBins().toArray(); if (inputElement.equals("SRCS")) return manager.getSrcs().toArray(); if (inputElement instanceof BaseFile) return null; if (inputElement instanceof File) return null; return null; } @Override public Object[] getChildren(final Object parentElement) { return getElements(parentElement); } @Override public Object getParent(final Object element) { if (element.equals("ROOT")) return null; if (element.equals("BINS") || element.equals("SRCS")) return "ROOT"; if (element instanceof BinaryFile) return "BINS"; if (element instanceof SourceFile) return "SRCS"; if (element instanceof File) return null; return null; } @Override public boolean hasChildren(final Object element) { return ((getChildren(element) != null) && (getChildren(element).length > 0)); } }