diff dwtx/jface/viewers/AbstractListViewer.d @ 70:46a6e0e6ccd4

Merge with d-fied sources of 3.4M7
author Frank Benoit <benoit@tionex.de>
date Thu, 22 May 2008 01:36:46 +0200
parents ea8ff534f622
children 04b47443bb01
line wrap: on
line diff
--- a/dwtx/jface/viewers/AbstractListViewer.d	Mon May 19 13:41:06 2008 +0200
+++ b/dwtx/jface/viewers/AbstractListViewer.d	Thu May 22 01:36:46 2008 +0200
@@ -264,11 +264,6 @@
         }
     }
 
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    public override abstract Control getControl();
-
     /**
      * Returns the element with the given index from this list viewer.
      * Returns <code>null</code> if the index is out of range.
@@ -385,24 +380,28 @@
                 topIndex = listGetTopIndex();
             }
 
+            Object[] children = null;
             list.setRedraw(false);
-            listRemoveAll();
-
-            Object[] 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);
-                mapElement(el, list); // must map it, since findItem only looks in map, if enabled
+            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);
+                    mapElement(el, list); // must map it, since findItem only looks in map, if enabled
+                }
+                
+                listSetItems(items);
+            } finally {
+                list.setRedraw(true);
             }
 
-            listSetItems(items);
-            list.setRedraw(true);
-
             if (topIndex is -1) {
                 setSelectionToWidget(selection, false);
             } else {