# HG changeset patch # User Frank Benoit # Date 1218140510 -7200 # Node ID 42c3056512ba3f257c45d522ee87aecdd8a1762d # Parent 7dca96709d297ac6d4ea66c85dca708a6f3caad5 redirect the jface examples to the new collection wrappers diff -r 7dca96709d29 -r 42c3056512ba jface/FileTreeViewer.d --- a/jface/FileTreeViewer.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/FileTreeViewer.d Thu Aug 07 22:21:50 2008 +0200 @@ -40,8 +40,7 @@ import tango.io.FilePath; import tango.util.log.Trace; -import tango.util.collection.model.Seq; -import tango.util.collection.ArraySeq; +import dwtx.dwtxhelper.Collection; import tango.text.convert.Utf; void main(){ @@ -149,7 +148,7 @@ class FileTreeLabelProvider : ILabelProvider { - private Seq!(ILabelProviderListener) listeners; + private ArrayList listeners; private Image file; private Image dir; @@ -157,7 +156,7 @@ private bool preserveCase; public this(){ - listeners = new ArraySeq!(ILabelProviderListener); + listeners = new ArrayList(); file = new Image( null, new ImageData( new ByteArrayInputStream( cast(byte[])import( "file.png" )))); dir = new Image( null, new ImageData( new ByteArrayInputStream( cast(byte[])import( "folder.png" )))); @@ -167,7 +166,7 @@ this.preserveCase = preserveCase; auto event = new LabelProviderChangedEvent(this); for( int i = 0, n = listeners.size(); i < n; i++ ){ - auto ilpl = listeners.get(i); + auto ilpl = cast(ILabelProviderListener)listeners.get(i); ilpl.labelProviderChanged(event); } } @@ -192,7 +191,7 @@ } public void addListener( ILabelProviderListener arg0 ){ - listeners.append(arg0); + listeners.add(cast(Object)arg0); } public void dispose(){ @@ -205,7 +204,7 @@ } public void removeListener(ILabelProviderListener arg0){ - listeners.remove(arg0); + listeners.remove(cast(Object)arg0); } } diff -r 7dca96709d29 -r 42c3056512ba jface/Librarian.d --- a/jface/Librarian.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/Librarian.d Thu Aug 07 22:21:50 2008 +0200 @@ -46,7 +46,6 @@ import dwt.dwthelper.ByteArrayInputStream; import tango.text.convert.Format; -import tango.util.collection.LinkSeq; import tango.io.FilePath; import tango.io.File; import tango.io.Print; @@ -54,6 +53,7 @@ import tango.text.Util; import tango.text.stream.LineIterator; import tango.util.log.Trace; +import dwtx.dwtxhelper.Collection; version(JIVE) import jive.stacktrace; @@ -954,7 +954,7 @@ private String filename; // The books - private LinkSeq!(Book) books; + private LinkedList books; // The dirty flag private bool dirty; @@ -963,7 +963,7 @@ * Library constructor Note the signature :-) */ public this() { - books = new LinkSeq!(Book); + books = new LinkedList(); } /** @@ -997,7 +997,8 @@ public void save(String filename) { scope ostr = (new FileOutput(filename)).output; scope printer = new Print!(char)( Format, ostr ); - foreach ( book; books ) { + foreach ( o; books ) { + Book book = cast(Book)o; printer.formatln( "{}|{}",book.getTitle(), (book.getCheckedOutTo() is null ? "" : book.getCheckedOutTo())); } ostr.close(); @@ -1012,7 +1013,7 @@ * @return bool */ public bool add(Book book) { - books.append(book); + books.add(book); setDirty(); return true; } @@ -1032,7 +1033,7 @@ * * @return Collection */ - public LinkSeq!(Book) getBooks() { + public LinkedList getBooks() { return books; } diff -r 7dca96709d29 -r 42c3056512ba jface/snippets/Snippet001TableViewer.d --- a/jface/snippets/Snippet001TableViewer.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/snippets/Snippet001TableViewer.d Thu Aug 07 22:21:50 2008 +0200 @@ -25,11 +25,11 @@ import dwt.dwthelper.utils; import tango.util.Convert; -import tango.util.collection.ArraySeq; +import dwtx.dwtxhelper.Collection; /** * A simple TableViewer to demonstrate usage - * + * * @author Tom Schindl * */ @@ -40,71 +40,70 @@ * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements(Object inputElement) { - return (cast(ArraySeq!(MyModel))inputElement).toArray; + return (cast(ArrayList)inputElement).toArray; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { - + } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - + } - + } - + public class MyModel { public int counter; - + public this(int counter) { this.counter = counter; } - + public String toString() { return "Item " ~ to!(char[])(this.counter); } } - + public this(Shell shell) { final TableViewer v = new TableViewer(shell); v.setLabelProvider(new LabelProvider()); v.setContentProvider(new MyContentProvider()); - ArraySeq!(MyModel) model = createModel(); + ArrayList model = createModel(); v.setInput(model); v.getTable().setLinesVisible(true); } - - private ArraySeq!(MyModel) createModel() { - ArraySeq!(MyModel) elements = new ArraySeq!(MyModel); - elements.capacity = 10; + + private ArrayList createModel() { + ArrayList elements = new ArrayList(10); for( int i = 0; i < 10; i++ ) { - elements ~= new MyModel(i); + elements.add( new MyModel(i)); } - + return elements; } - + } -void main() +void main() { Display display = new Display (); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); new Snippet001TableViewer(shell); shell.open (); - + while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } - + display.dispose (); } diff -r 7dca96709d29 -r 42c3056512ba jface/snippets/Snippet004HideSelection.d --- a/jface/snippets/Snippet004HideSelection.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/snippets/Snippet004HideSelection.d Thu Aug 07 22:21:50 2008 +0200 @@ -27,59 +27,58 @@ import dwt.widgets.Shell; import dwt.dwthelper.utils; +import dwtx.dwtxhelper.Collection; import tango.util.Convert; -import tango.util.collection.ArraySeq; /** * Snippet that hides the selection when nothing is selected. - * + * * @author Tom Schindl * */ public class Snippet004HideSelection { - alias ArraySeq!(MyModel) MyModelArray; private class MyContentProvider : IStructuredContentProvider { /* (non-Javadoc) * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements(Object inputElement) { - return (cast(MyModelArray)inputElement).toArray; + return (cast(ArrayList)inputElement).toArray; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { - + } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - + } } - + public class MyModel { public int counter; - + public this(int counter) { this.counter = counter; } - + public String toString() { return "Item " ~ to!(char[])(this.counter); } } - + public this(Shell shell) { final TableViewer v = new TableViewer(shell,DWT.BORDER|DWT.FULL_SELECTION); v.setLabelProvider(new LabelProvider()); v.setContentProvider(new MyContentProvider()); - MyModelArray model = createModel(); + ArrayList model = createModel(); v.setInput(model); v.getTable().setLinesVisible(true); v.getTable().addMouseListener(new class(v) MouseAdapter { @@ -96,17 +95,16 @@ v.setSelection(new StructuredSelection()); } } - + }); } - - private MyModelArray createModel() { - MyModelArray elements = new MyModelArray; - elements.capacity = 10; + + private ArrayList createModel() { + ArrayList elements = new ArrayList(10); for( int i = 0; i < 10; i++ ) { - elements ~= new MyModel(i); + elements.add( new MyModel(i)); } - + return elements; } @@ -118,11 +116,11 @@ shell.setLayout(new FillLayout()); new Snippet004HideSelection(shell); shell.open (); - + while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } - + display.dispose (); } diff -r 7dca96709d29 -r 42c3056512ba jface/snippets/Snippet007FullSelection.d --- a/jface/snippets/Snippet007FullSelection.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/snippets/Snippet007FullSelection.d Thu Aug 07 22:21:50 2008 +0200 @@ -34,16 +34,15 @@ import dwt.dwthelper.utils; import tango.util.Convert; -import tango.util.collection.ArraySeq; +import dwtx.dwtxhelper.Collection; /** * TableViewer: Hide full selection - * + * * @author Tom Schindl * */ public class Snippet007FullSelection { - alias ArraySeq!(MyModel) MyModelArray; private class MyContentProvider : IStructuredContentProvider { @@ -51,37 +50,37 @@ * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements(Object inputElement) { - return (cast(MyModelArray)inputElement).toArray; + return (cast(ArrayList)inputElement).toArray; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { - + } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - + } - + } - + public class MyModel { public int counter; - + public this(int counter) { this.counter = counter; } - + public String toString() { return "Item " ~ to!(char[])(this.counter); } } - + public this(Shell shell) { final TableViewer v = new TableViewer(shell,DWT.BORDER|DWT.FULL_SELECTION); v.setLabelProvider(new LabelProvider()); @@ -104,24 +103,24 @@ (cast(MyModel)item.getData()).counter = to!(int)(valuestr.array); v.update(item.getData(), null); } - + }); v.setColumnProperties(["column1", "column2" ]); v.setCellEditors([ new TextCellEditor(v.getTable()),new TextCellEditor(v.getTable()) ]); - + TableColumn column = new TableColumn(v.getTable(),DWT.NONE); column.setWidth(100); column.setText("Column 1"); - + column = new TableColumn(v.getTable(),DWT.NONE); column.setWidth(100); column.setText("Column 2"); - - MyModelArray model = createModel(); + + ArrayList model = createModel(); v.setInput(model); v.getTable().setLinesVisible(true); v.getTable().setHeaderVisible(true); - + v.getTable().addListener(DWT.EraseItem, new class Listener { /* (non-Javadoc) @@ -131,20 +130,19 @@ event.detail &= ~DWT.SELECTED; } }); - + } - - private MyModelArray createModel() { - auto elements = new MyModelArray; - elements.capacity = 10; - + + private ArrayList createModel() { + auto elements = new ArrayList(10); + for( int i = 0; i < 10; i++ ) { - elements ~= new MyModel(i); + elements.add( new MyModel(i)); } - + return elements; } - + } @@ -154,11 +152,11 @@ shell.setLayout(new FillLayout()); new Snippet007FullSelection(shell); shell.open (); - + while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } - + display.dispose (); } diff -r 7dca96709d29 -r 42c3056512ba jface/snippets/Snippet014TreeViewerNoMandatoryLabelProvider.d --- a/jface/snippets/Snippet014TreeViewerNoMandatoryLabelProvider.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/snippets/Snippet014TreeViewerNoMandatoryLabelProvider.d Thu Aug 07 22:21:50 2008 +0200 @@ -8,7 +8,7 @@ * Contributors: * Tom Schindl - initial API and implementation * Port to the D programming language: - * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) + * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) *******************************************************************************/ module jface.snippets.Snippet014TreeViewerNoMandatoryLabelProvider; @@ -36,6 +36,7 @@ import tango.util.Convert; import tango.util.container.LinkedList; +version(JIVE) import jive.stacktrace; void main(String[] args) { @@ -55,18 +56,18 @@ /** * A simple TreeViewer to demonstrate usage - * + * * @author Tom Schindl - * + * */ public class Snippet014TreeViewerNoMandatoryLabelProvider { alias LinkedList!(MyModel) ArrayList; - + private class MyContentProvider : ITreeContentProvider { /* * (non-Javadoc) - * + * * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements(Object inputElement) { @@ -75,7 +76,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.jface.viewers.IContentProvider#dispose() */ public void dispose() { @@ -84,7 +85,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer, * java.lang.Object, java.lang.Object) */ @@ -94,7 +95,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) */ public Object[] getChildren(Object parentElement) { @@ -103,7 +104,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) */ public Object getParent(Object element) { @@ -116,7 +117,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */ public bool hasChildren(Object element) { @@ -155,7 +156,7 @@ FontRegistry registry; this() { - registry = new FontRegistry(); + registry = new FontRegistry(); } public Image getColumnImage(Object element, int columnIndex) { @@ -192,15 +193,15 @@ public this(Shell shell) { final TreeViewer v = new TreeViewer(shell); - + TreeColumn column = new TreeColumn(v.getTree(),DWT.NONE); column.setWidth(200); column.setText("Column 1"); - + column = new TreeColumn(v.getTree(),DWT.NONE); column.setWidth(200); column.setText("Column 2"); - + v.setLabelProvider(new MyLabelProvider()); v.setContentProvider(new MyContentProvider()); v.setInput(createModel()); diff -r 7dca96709d29 -r 42c3056512ba jface/snippets/Snippet026TreeViewerTabEditing.d --- a/jface/snippets/Snippet026TreeViewerTabEditing.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/snippets/Snippet026TreeViewerTabEditing.d Thu Aug 07 22:21:50 2008 +0200 @@ -8,7 +8,7 @@ * Contributors: * Tom Schindl - initial API and implementation * Port to the D programming language: - * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) + * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) *******************************************************************************/ module jface.snippets.Snippet026TreeViewerTabEditing; @@ -39,9 +39,11 @@ import dwt.widgets.Shell; import dwt.dwthelper.utils; +import dwtx.dwtxhelper.Collection; import tango.util.Convert; -import tango.util.container.LinkedList; + +version(JIVE) import jive.stacktrace; void main(String[] args) { @@ -61,12 +63,11 @@ /** * A simple TreeViewer to demonstrate usage - * + * * @author Tom Schindl - * + * */ public class Snippet026TreeViewerTabEditing { - alias LinkedList!(MyModel) ArrayList; public this(Shell shell) { Button b = new Button(shell,DWT.PUSH); b.setText("Remove column"); @@ -81,15 +82,15 @@ this.v = v_; } public void widgetDefaultSelected(SelectionEvent e) { - + } public void widgetSelected(SelectionEvent e) { v.getTree().getColumn(1).dispose(); } - + }); - + TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v)); ColumnViewerEditorActivationStrategy actSupport = new class(v) ColumnViewerEditorActivationStrategy { this(ColumnViewer v_) @@ -104,11 +105,11 @@ || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; - + TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); - + final TextCellEditor textCellEditor = new TextCellEditor(v.getTree()); TreeViewerColumn column = new TreeViewerColumn(v, DWT.NONE); @@ -178,7 +179,7 @@ v.update(element, null); } }); - + column = new TreeViewerColumn(v, DWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); @@ -211,7 +212,7 @@ v.update(element, null); } }); - + v.setContentProvider(new MyContentProvider()); v.setInput(createModel()); @@ -276,7 +277,7 @@ public this(int counter, MyModel parent) { this.parent = parent; this.counter = counter; - child = new ArrayList(); + child = new ArrayList(); } public String toString() { diff -r 7dca96709d29 -r 42c3056512ba jface/snippets/Snippet031TableViewerCustomTooltipsMultiSelection.d --- a/jface/snippets/Snippet031TableViewerCustomTooltipsMultiSelection.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/snippets/Snippet031TableViewerCustomTooltipsMultiSelection.d Thu Aug 07 22:21:50 2008 +0200 @@ -8,15 +8,14 @@ * Contributors: * Adam Neal - initial API and implementation * Port to the D programming language: - * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) + * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) *******************************************************************************/ module jface.snippets.Snippet031TableViewerCustomTooltipsMultiSelection; // http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java?view=markup -import tango.util.collection.ArrayBag; -alias ArrayBag!(MyModel) ArrayList; +import dwtx.dwtxhelper.Collection; import tango.util.Convert; import dwtx.jface.viewers.ArrayContentProvider; @@ -46,14 +45,14 @@ } /** - * A simple TableViewer to demonstrate how custom tooltips could be created easily while preserving + * A simple TableViewer to demonstrate how custom tooltips could be created easily while preserving * the multiple selection. - * + * * This is a modified example taken from Tom Schindl's Snippet023TreeViewerCustomTooltips.java - * + * * This code is for users pre 3.3 others could use newly added tooltip support in {@link CellLabelProvider} * @author Adam Neal - * + * */ public class Snippet031TableViewerCustomTooltipsMultiSelection { public class MyLableProvider : ITableLabelProvider { @@ -63,7 +62,7 @@ } public String getColumnText(Object element, int columnIndex) { - //if (element instanceof MyModel) { + //if (element instanceof MyModel) { switch (columnIndex) { case 0: return (cast(MyModel)element).col1; case 1: return (cast(MyModel)element).col2; @@ -226,7 +225,7 @@ /* Construct the new Selection[] to show */ TableItem [] newSelection = null; if (isCTRLDown(event)) { - /* We have 2 scenario's. + /* We have 2 scenario's. * 1) We are selecting an already selected element - so remove it from the selected indices * 2) We are selecting a non-selected element - so add it to the selected indices */ diff -r 7dca96709d29 -r 42c3056512ba jface/snippets/Snippet043NoColumnTreeViewerKeyboardEditing.d --- a/jface/snippets/Snippet043NoColumnTreeViewerKeyboardEditing.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/snippets/Snippet043NoColumnTreeViewerKeyboardEditing.d Thu Aug 07 22:21:50 2008 +0200 @@ -8,7 +8,7 @@ * Contributors: * Tom Schindl - initial API and implementation * Port to the D programming language: - * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) + * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) *******************************************************************************/ module dwtx.jface.snippets.Snippet043NoColumnTreeViewerKeyboardEditing; @@ -41,6 +41,8 @@ import tango.util.Convert; import tango.util.container.LinkedList; +version(JIVE) import jive.stacktrace; + void main(String[] args) { Display display = new Display(); @@ -56,12 +58,12 @@ display.dispose(); } - + /** * Demonstrates how to use keyboard-editing support in a TreeViewer with no column - * + * * @author Tom Schindl - * + * */ public class Snippet043NoColumnTreeViewerKeyboardEditing { alias LinkedList!(MyModel) ArrayList; @@ -76,7 +78,7 @@ { this.v = v_; } - + public void widgetDefaultSelected(SelectionEvent e) { } diff -r 7dca96709d29 -r 42c3056512ba jface/snippets/Snippet047VirtualLazyTreeViewer.d --- a/jface/snippets/Snippet047VirtualLazyTreeViewer.d Thu Aug 07 17:23:25 2008 +0200 +++ b/jface/snippets/Snippet047VirtualLazyTreeViewer.d Thu Aug 07 22:21:50 2008 +0200 @@ -8,7 +8,7 @@ * Contributors: * Tom Schindl - initial API and implementation * Port to the D programming language: - * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) + * yidabu at gmail dot com ( D China http://www.d-programming-language-china.org/ ) *******************************************************************************/ module jface.snippets.Snippet047VirtualLazyTreeViewer; @@ -27,6 +27,8 @@ import tango.util.Convert; import tango.util.container.LinkedList; +version(JIVE) import jive.stacktrace; + /** * @param args @@ -49,12 +51,12 @@ /** * A simple TreeViewer to demonstrate usage of an ILazyContentProvider. - * + * */ public class Snippet047VirtualLazyTreeViewer { - alias ArrayWrapperT!(IntermediateNode) ArrayWrapperIntermediateNode; - alias ArrayWrapperT!(LeafNode) ArrayWrapperLeafNode; - + alias ArrayWrapperT!(IntermediateNode) ArrayWrapperIntermediateNode; + alias ArrayWrapperT!(LeafNode) ArrayWrapperLeafNode; + private class MyContentProvider : ILazyTreeContentProvider { private TreeViewer viewer; private IntermediateNode[] elements; @@ -74,7 +76,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.jface.viewers.ILazyTreeContentProvider#getParent(java.lang.Object) */ public Object getParent(Object element) { @@ -85,40 +87,40 @@ /* * (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); + 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) + if (cast(IntermediateNode)parent) element = (cast(IntermediateNode) parent).children[index]; - + else element = elements[index]; viewer.replace(parent, index, element); updateChildCount(element, -1); - + } }