Mercurial > projects > dwt-samples
diff jface/snippets/Snippet047VirtualLazyTreeViewer.d @ 140:2b4e94cafb85
tabs vs. spaces
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 07 Aug 2008 17:16:24 +0200 |
parents | 96a2d0b35360 |
children | 42c3056512ba |
line wrap: on
line diff
--- a/jface/snippets/Snippet047VirtualLazyTreeViewer.d Thu Aug 07 17:13:16 2008 +0200 +++ b/jface/snippets/Snippet047VirtualLazyTreeViewer.d Thu Aug 07 17:16:24 2008 +0200 @@ -55,130 +55,130 @@ alias ArrayWrapperT!(IntermediateNode) ArrayWrapperIntermediateNode; alias ArrayWrapperT!(LeafNode) ArrayWrapperLeafNode; - private class MyContentProvider : ILazyTreeContentProvider { - private TreeViewer viewer; - private IntermediateNode[] elements; + private class MyContentProvider : ILazyTreeContentProvider { + private TreeViewer viewer; + private IntermediateNode[] elements; - public this(TreeViewer viewer) { - this.viewer = viewer; - } + public this(TreeViewer viewer) { + this.viewer = viewer; + } - public void dispose() { + public void dispose() { - } + } - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { if(cast(ArrayWrapperIntermediateNode) newInput) this.elements = (cast(ArrayWrapperIntermediateNode) newInput).array; - } + } - /* - * (non-Javadoc) - * - * @see dwtx.jface.viewers.ILazyTreeContentProvider#getParent(java.lang.Object) - */ - public Object getParent(Object element) { - if (cast(LeafNode)element) - return (cast(LeafNode) element).parent; - return new ArrayWrapperIntermediateNode(elements); - } + /* + * (non-Javadoc) + * + * @see dwtx.jface.viewers.ILazyTreeContentProvider#getParent(java.lang.Object) + */ + public Object getParent(Object element) { + if (cast(LeafNode)element) + return (cast(LeafNode) element).parent; + return new ArrayWrapperIntermediateNode(elements); + } - /* - * (non-Javadoc) - * - * @see dwtx.jface.viewers.ILazyTreeContentProvider#updateChildCount(java.lang.Object, - * int) - */ - public void updateChildCount(Object element, int currentChildCount) { - - int length = 0; - if (cast(IntermediateNode)element) { - IntermediateNode node = cast(IntermediateNode) element; - length = node.children.length; - } + /* + * (non-Javadoc) + * + * @see dwtx.jface.viewers.ILazyTreeContentProvider#updateChildCount(java.lang.Object, + * int) + */ + public void updateChildCount(Object element, int currentChildCount) { + + int length = 0; + if (cast(IntermediateNode)element) { + IntermediateNode node = cast(IntermediateNode) element; + length = node.children.length; + } /// TODO: fix me access violation here - if(element !is null && elements !is null && (cast(ArrayWrapperIntermediateNode)element) && (cast(ArrayWrapperIntermediateNode)element).array is elements) - length = elements.length; - viewer.setChildCount(element, length); - } + if(element !is null && elements !is null && (cast(ArrayWrapperIntermediateNode)element) && (cast(ArrayWrapperIntermediateNode)element).array is elements) + length = elements.length; + viewer.setChildCount(element, length); + } - /* - * (non-Javadoc) - * - * @see dwtx.jface.viewers.ILazyTreeContentProvider#updateElement(java.lang.Object, - * int) - */ - public void updateElement(Object parent, int index) { - - Object element; - if (cast(IntermediateNode)parent) - element = (cast(IntermediateNode) parent).children[index]; - - else - element = elements[index]; - viewer.replace(parent, index, element); - updateChildCount(element, -1); - - } + /* + * (non-Javadoc) + * + * @see dwtx.jface.viewers.ILazyTreeContentProvider#updateElement(java.lang.Object, + * int) + */ + public void updateElement(Object parent, int index) { + + Object element; + if (cast(IntermediateNode)parent) + element = (cast(IntermediateNode) parent).children[index]; + + else + element = elements[index]; + viewer.replace(parent, index, element); + updateChildCount(element, -1); + + } - } + } - public class LeafNode { - public int counter; - public IntermediateNode parent; + public class LeafNode { + public int counter; + public IntermediateNode parent; - public this(int counter, IntermediateNode parent) { - this.counter = counter; - this.parent = parent; - } + public this(int counter, IntermediateNode parent) { + this.counter = counter; + this.parent = parent; + } - public String toString() { - return "Leaf " ~ to!(String)(this.counter); - } - } + public String toString() { + return "Leaf " ~ to!(String)(this.counter); + } + } - public class IntermediateNode { - public int counter; - public LeafNode[] children; + public class IntermediateNode { + public int counter; + public LeafNode[] children; - public this(int counter) { - this.counter = counter; + public this(int counter) { + this.counter = counter; children = new LeafNode[0]; - } + } - public String toString() { - return "Node " ~ to!(String)(this.counter); - } + public String toString() { + return "Node " ~ to!(String)(this.counter); + } - public void generateChildren(int i) { - children = new LeafNode[i]; - for (int j = 0; j < i; j++) { - children[j] = new LeafNode(j, this); - } + public void generateChildren(int i) { + children = new LeafNode[i]; + for (int j = 0; j < i; j++) { + children[j] = new LeafNode(j, this); + } - } - } + } + } - public this(Shell shell) { - final TreeViewer v = new TreeViewer(shell, DWT.VIRTUAL | DWT.BORDER); - v.setLabelProvider(new LabelProvider()); - v.setContentProvider(new MyContentProvider(v)); - v.setUseHashlookup(true); - IntermediateNode[] model = createModel(); - v.setInput(new ArrayWrapperIntermediateNode(model)); - v.getTree().setItemCount(model.length); + public this(Shell shell) { + final TreeViewer v = new TreeViewer(shell, DWT.VIRTUAL | DWT.BORDER); + v.setLabelProvider(new LabelProvider()); + v.setContentProvider(new MyContentProvider(v)); + v.setUseHashlookup(true); + IntermediateNode[] model = createModel(); + v.setInput(new ArrayWrapperIntermediateNode(model)); + v.getTree().setItemCount(model.length); - } + } - private IntermediateNode[] createModel() { - IntermediateNode[] elements = new IntermediateNode[10]; + private IntermediateNode[] createModel() { + IntermediateNode[] elements = new IntermediateNode[10]; - for (int i = 0; i < 10; i++) { - elements[i] = new IntermediateNode(i); - elements[i].generateChildren(1000); - } + for (int i = 0; i < 10; i++) { + elements[i] = new IntermediateNode(i); + elements[i].generateChildren(1000); + } - return elements; - } + return elements; + } -} \ No newline at end of file +}