Mercurial > projects > dwt-addons
diff dwtx/jface/viewers/AbstractTableViewer.d @ 104:04b47443bb01
Reworked the collection uses to make use of a wrapper collection that is compatible to the Java Collections.
These new wrappers now use the tango.util.containers instead of the tango.util.collections.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 07 Aug 2008 15:01:33 +0200 |
parents | 7ffeace6c47f |
children |
line wrap: on
line diff
--- a/dwtx/jface/viewers/AbstractTableViewer.d Sun Aug 03 17:01:51 2008 +0200 +++ b/dwtx/jface/viewers/AbstractTableViewer.d Thu Aug 07 15:01:33 2008 +0200 @@ -25,9 +25,6 @@ import dwtx.jface.viewers.ViewerComparator; import dwtx.jface.viewers.IStructuredContentProvider; -import tango.util.collection.model.SeqView; -import tango.util.collection.ArraySeq; -import tango.util.collection.HashSet; import dwt.DWT; import dwt.widgets.Control; @@ -38,6 +35,7 @@ import dwtx.core.runtime.Assert; import dwt.dwthelper.utils; +import dwtx.dwtxhelper.Collection; import dwt.dwthelper.Runnable; import tango.core.Array; @@ -74,32 +72,29 @@ * Add the listener for SetData on the table */ private void addTableListener() { - getControl().addListener(DWT.SetData, new class Listener { + getControl().addListener(DWT.SetData, dgListener( (Event event){ /* * (non-Javadoc) * * @see dwt.widgets.Listener#handleEvent(dwt.widgets.Event) */ - public void handleEvent(Event event) { - Item item = cast(Item) event.item; - final int index = doIndexOf(item); - Object element = resolveElement(index); - if (element is null) { - // Didn't find it so make a request - // Keep looking if it is not in the cache. - IContentProvider contentProvider = getContentProvider(); - // If we are building lazily then request lookup now - if (auto lcp = cast(ILazyContentProvider)contentProvider ) { - lcp.updateElement(index); - return; - } + Item item = cast(Item) event.item; + final int index = doIndexOf(item); + Object element = resolveElement(index); + if (element is null) { + // Didn't find it so make a request + // Keep looking if it is not in the cache. + IContentProvider contentProvider = getContentProvider(); + // If we are building lazily then request lookup now + if (auto lcp = cast(ILazyContentProvider)contentProvider ) { + lcp.updateElement(index); + return; } - - associate(element, item); - updateItem(item, element); } - }); + associate(element, item); + updateItem(item, element); + })); } /** @@ -479,18 +474,17 @@ * * @see dwtx.jface.viewers.StructuredViewer#getSelectionFromWidget() */ - protected override SeqView!(Object) getSelectionFromWidget() { + protected override List getSelectionFromWidget() { if (virtualManager !is null) { return getVirtualSelection(); } Widget[] items = doGetSelection(); - auto list = new ArraySeq!(Object); - list.capacity(items.length); + ArrayList list = new ArrayList(items.length); for (int i = 0; i < items.length; i++) { Widget item = items[i]; Object e = item.getData(); if (e !is null) { - list.append(e); + list.add(e); } } return list; @@ -503,9 +497,9 @@ * @return List of Object */ - private SeqView!(Object) getVirtualSelection() { + private List getVirtualSelection() { - auto result = new ArraySeq!(Object); + List result = new ArrayList(); int[] selectionIndices = doGetSelectionIndices(); if (auto lazy_ = cast(ILazyContentProvider) getContentProvider() ) { for (int i = 0; i < selectionIndices.length; i++) { @@ -516,7 +510,7 @@ // If this is done deferred the selection will // be incomplete until selection is finished. if (element !is null) { - result.append(element); + result.add(element); } } } else { @@ -533,7 +527,7 @@ element = item.getData(); } if (element !is null) { - result.append(element); + result.add(element); } } @@ -587,11 +581,9 @@ protected override void inputChanged(Object input, Object oldInput) { getControl().setRedraw(false); try { - preservingSelection(new class Runnable { - public void run() { - internalRefresh(getRoot()); - } - }); + preservingSelection(dgRunnable( { + internalRefresh(getRoot()); + })); } finally { getControl().setRedraw(true); } @@ -828,15 +820,9 @@ if (elements.length is 0) { return; } - preservingSelection(new class(elements) Runnable { - Object[] elements_; - this(Object[] a){ - elements_=a; - } - public void run() { - internalRemove(elements_); - } - }); + preservingSelection(dgRunnable( (Object[] elements_){ + internalRemove(elements_); + }, elements)); } /** @@ -878,7 +864,7 @@ * @see dwtx.jface.viewers.StructuredViewer#setSelectionToWidget(java.util.List, * bool) */ - protected override void setSelectionToWidget(SeqView!(Object) list, bool reveal) { + protected override void setSelectionToWidget(List list, bool reveal) { if (list is null) { doDeselectAll(); return; @@ -895,7 +881,8 @@ int size = list.size(); Item[] items = new Item[size]; int count = 0; - foreach( o; list ) { + for (int i = 0; i < size; ++i) { + Object o = list.get(i); Widget w = findItem(o); if (auto item = cast(Item)w ) { items[count++] = item; @@ -907,13 +894,16 @@ doSetSelection(items); } else { doDeselectAll(); // Clear the selection - if( ! list.drained() ) { + if( ! list.isEmpty() ) { int[] indices = new int[list.size()]; + Iterator it = list.iterator(); Item[] items = doGetItems(); + Object modelElement; int count = 0; - foreach( modelElement; list ){ + while( it.hasNext() ) { + modelElement = it.next(); bool found = false; for (int i = 0; i < items.length && !found; i++) { if (opEquals(modelElement, items[i].getData())) { @@ -940,14 +930,15 @@ * @param reveal * Whether or not reveal the first item. */ - private void virtualSetSelectionToWidget(SeqView!(Object) list, bool reveal) { + private void virtualSetSelectionToWidget(List list, bool reveal) { int size = list.size(); int[] indices = new int[list.size()]; Item firstItem = null; int count = 0; - auto virtualElements = new HashSet!(Object); - foreach( o; list ){ + HashSet virtualElements = new HashSet(); + for (int i = 0; i < size; ++i) { + Object o = list.get(i); Widget w = findItem(o); if (auto item = cast(Item)w ) { indices[count++] = doIndexOf(item); @@ -1040,11 +1031,11 @@ * Replace the element at the given index with the given element. This * method will not call the content provider to verify. <strong>Note that * this method will materialize a TableItem the given index.</strong>. - * + * * @param element * @param index * @see ILazyContentProvider - * + * * @since 3.1 */ public void replace(Object element, int index) {