package com.amazonaws.eclipse.codedeploy.explorer.editor.table; import org.eclipse.jface.viewers.ILazyTreePathContentProvider; import org.eclipse.jface.viewers.TreePath; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; class DeploymentsTableViewContentProvider implements ILazyTreePathContentProvider { private TreePathContentProvider input; private TreeViewer viewer; public DeploymentsTableViewContentProvider(TreeViewer viewer, TreePathContentProvider input) { this.viewer = viewer; this.input = input; } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { if (newInput == null) { return; } if ( !(newInput instanceof TreePathContentProvider) ) { throw new IllegalStateException( "The new input passed to the DeploymentsTableViewContentProvider " + "is not a TreePathContentProvider!"); } this.viewer = (TreeViewer) viewer; this.input = (TreePathContentProvider) newInput; } public void updateElement(TreePath parentPath, int index) { Object[] children = input.getChildren(parentPath); if (index >= children.length) { return; } viewer.replace(parentPath, index, children[index]); updateHasChildren(parentPath.createChildPath(children[index])); } public void updateChildCount(TreePath treePath, int currentChildCount) { Object[] children = input.getChildren(treePath); viewer.setChildCount(treePath, children.length); } public void updateHasChildren(TreePath path) { Object[] children = input.getChildren(path); viewer.setHasChildren(path, children.length != 0); } public TreePath[] getParents(Object element) { return null; } }