package com.quantum.view.bookmark; import java.sql.SQLException; import com.quantum.model.NotConnectedException; import com.quantum.ui.dialog.ExceptionDisplayDialog; import com.quantum.ui.dialog.SQLExceptionDialog; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IViewPart; public class BookmarkContentProvider implements ITreeContentProvider { private final IViewPart view; public BookmarkContentProvider(IViewPart view) { this.view = view; } public Object[] getChildren(Object element) { if (element != null && element instanceof TreeNode) { TreeNode node = (TreeNode) element; try { return node.getChildren(); } catch (NotConnectedException e) { ExceptionDisplayDialog.openError(getShell(), null, null, e); } catch (SQLException e) { SQLExceptionDialog.openException(getShell(), node.getBookmark(), e); } } return BookmarkListNode.EMPTY_ARRAY; } /** * @return */ private Shell getShell() { return this.view.getSite().getShell(); } public Object[] getElements(Object inputElement) { return getChildren(inputElement); } public Object getParent(Object element) { if (element instanceof TreeNode) { TreeNode node = (TreeNode) element; return node.getParent(); } return null; } public boolean hasChildren(Object element) { if (element instanceof TreeNode) { TreeNode node = (TreeNode) element; return node.hasChildren(); } return false; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } public void dispose() { } }