package com.tibco.as.spacebar.ui.navigator; import org.eclipse.core.databinding.beans.BeanProperties; import org.eclipse.core.databinding.observable.IObservable; import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory; import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider; import org.eclipse.jface.databinding.viewers.TreeStructureAdvisor; import com.tibco.as.spacebar.ui.model.IElement; public class MetaspaceContentProvider extends ObservableListTreeContentProvider { public MetaspaceContentProvider() { super(getObservableListFactory(), getTreeStructureAdvisor()); } private static IObservableFactory getObservableListFactory() { return new IObservableFactory() { @Override public IObservable createObservable(Object parent) { if (parent instanceof IElement) { return BeanProperties.list("children").observe(parent); } return null; } }; } private static TreeStructureAdvisor getTreeStructureAdvisor() { return new TreeStructureAdvisor() { @Override public Object getParent(Object element) { if (element instanceof IElement) { return ((IElement) element).getParent(); } return super.getParent(element); } }; } }