Mercurial > projects > dwt-addons
diff dwtx/jface/viewers/AbstractListViewer.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 | 46a6e0e6ccd4 |
children |
line wrap: on
line diff
--- a/dwtx/jface/viewers/AbstractListViewer.d Sun Aug 03 17:01:51 2008 +0200 +++ b/dwtx/jface/viewers/AbstractListViewer.d Thu Aug 07 15:01:33 2008 +0200 @@ -22,15 +22,13 @@ import dwtx.jface.viewers.ViewerComparator; import dwtx.jface.viewers.IElementComparer; -import tango.util.collection.ArraySeq; -import tango.util.collection.model.Seq; -import tango.util.collection.model.SeqView; import dwt.widgets.Control; import dwt.widgets.Widget; import dwtx.core.runtime.Assert; import dwt.dwthelper.utils; +import dwtx.dwtxhelper.Collection; import dwt.dwthelper.Runnable; /** @@ -50,7 +48,7 @@ /** * A list of viewer elements (element type: <code>Object</code>). */ - private Seq!(Object) listMap; + private dwtx.dwtxhelper.Collection.List listMap; /** * Adds the given string to the underlying widget at the given index @@ -132,7 +130,7 @@ protected abstract void listDeselectAll(); public this(){ - listMap = new ArraySeq!(Object); + listMap = new ArrayList(); } /** @@ -160,7 +158,7 @@ private void insertItem(ILabelProvider labelProvider, Object element, int index) { listAdd(getLabelProviderText(labelProvider, element), index); - listMap.addAt(index, element); + listMap.add(index, element); mapElement(element, getControl()); // must map it, since findItem only looks in map, if enabled } @@ -294,14 +292,13 @@ /* (non-Javadoc) * Method declared on StructuredViewer. */ - protected override SeqView!(Object) getSelectionFromWidget() { + protected override List getSelectionFromWidget() { int[] ixs = listGetSelectionIndices(); - ArraySeq!(Object) list = new ArraySeq!(Object); - list.capacity(ixs.length); + ArrayList list = new ArrayList(ixs.length); for (int i = 0; i < ixs.length; i++) { Object e = getElementAt(ixs[i]); if (e !is null) { - list.append(e); + list.add(e); } } return list; @@ -356,7 +353,7 @@ for (int i = 0; i < size; i++) { Object el = children[i]; labels[i] = getLabelProviderText(cast(ILabelProvider) getLabelProvider(),el); - listMap.append(el); + listMap.add(el); mapElement(el, getControl()); // must map it, since findItem only looks in map, if enabled } listSetItems(labels); @@ -373,10 +370,10 @@ listMap.clear(); } unmapAllElements(); - auto selection = getSelectionFromWidget(); + List selection = getSelectionFromWidget(); int topIndex = -1; - if (selection is null || selection.drained()) { + if (selection is null || selection.isEmpty()) { topIndex = listGetTopIndex(); } @@ -384,19 +381,19 @@ list.setRedraw(false); try { listRemoveAll(); - + children = getSortedChildren(getRoot()); String[] items = new String[children.length]; - + ILabelProvider labelProvider = cast(ILabelProvider) getLabelProvider(); - + for (int i = 0; i < items.length; i++) { Object el = children[i]; items[i] = getLabelProviderText(labelProvider, el); - listMap.append(el); + listMap.add(el); mapElement(el, list); // must map it, since findItem only looks in map, if enabled } - + listSetItems(items); } finally { list.setRedraw(true); @@ -450,7 +447,7 @@ int ix = getElementIndex(elements[i]); if (ix >= 0) { listRemove(ix); - listMap.removeAt(ix); + listMap.remove(ix); unmapElement(elements[i], getControl()); } } @@ -472,15 +469,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)); } /** @@ -516,7 +507,7 @@ /* (non-Javadoc) * Method declared on StructuredViewer. */ - protected override void setSelectionToWidget(SeqView!(Object) in_, bool reveal) { + protected override void setSelectionToWidget(List in_, bool reveal) { if (in_ is null || in_.size() is 0) { // clear selection listDeselectAll(); } else { @@ -550,14 +541,7 @@ int getElementIndex(Object element) { IElementComparer comparer = getComparer(); if (comparer is null) { - int idx = 0; - foreach( e; listMap ){ - if( e == element ){ - return idx; - } - idx++; - } - return -1; + return listMap.indexOf(element); } int size = listMap.size(); for (int i = 0; i < size; i++) {