package org.objectstyle.wolips.componenteditor.inspector; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.Viewer; import org.objectstyle.wolips.bindings.api.Wo; import org.objectstyle.wolips.bindings.wod.IWodBinding; import org.objectstyle.wolips.bindings.wod.IWodElement; import org.objectstyle.wolips.bindings.wod.TypeCache; import org.objectstyle.wolips.componenteditor.ComponenteditorPlugin; public class BindingsContentProvider implements IStructuredContentProvider { private IJavaProject _javaProject; private TypeCache _cache; private Wo _api; public void setContext(IJavaProject javaProject, TypeCache cache) { _javaProject = javaProject; _cache = cache; } public Wo getApi() { return _api; } public Object[] getElements(Object inputElement) { Object[] wodBindings = null; _api = null; if (inputElement instanceof IWodElement) { IWodElement wodElement = (IWodElement) inputElement; if (wodElement == null) { wodBindings = new IWodBinding[0]; } else { if (_cache != null && _api == null) { try { _api = wodElement.getApi(_javaProject, _cache); } catch (Exception e) { _api = null; ComponenteditorPlugin.getDefault().log("Failed to load API for WO.", e); } } wodBindings = wodElement.getApiBindings(_api); } } else { wodBindings = new IWodBinding[0]; } return wodBindings; } public void dispose() { // DO NOTHING } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // DO NOTHING } }