changeset 54:a6683645b0d7

Fix ignored labelprovider for TreeViewer (See WrapperViewerLabelProvider.d), removed the debugging prints
author Frank Benoit <benoit@tionex.de>
date Sat, 12 Apr 2008 17:53:06 +0200
parents 28f6c339768e
children 6d1acb32839d
files dwtx/jface/viewers/AbstractTreeViewer.d dwtx/jface/viewers/CellLabelProvider.d dwtx/jface/viewers/ColumnViewer.d dwtx/jface/viewers/ContentViewer.d dwtx/jface/viewers/LabelProvider.d dwtx/jface/viewers/StructuredViewer.d dwtx/jface/viewers/TreeViewer.d dwtx/jface/viewers/ViewerColumn.d dwtx/jface/viewers/WrappedViewerLabelProvider.d
diffstat 9 files changed, 44 insertions(+), 63 deletions(-) [+]
line wrap: on
line diff
--- a/dwtx/jface/viewers/AbstractTreeViewer.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/AbstractTreeViewer.d	Sat Apr 12 17:53:06 2008 +0200
@@ -60,7 +60,6 @@
 
 import dwt.dwthelper.utils;
 import dwt.dwthelper.Runnable;
-import tango.util.log.Trace;
 
 /**
  * Abstract base implementation for tree-structure-oriented viewers (trees and
@@ -773,7 +772,7 @@
         bool oldBusy = busy;
         busy = true;
         try {
-            final Item[] tis = getChildren(widget);
+            Item[] tis = getChildren(widget);
             if (tis !is null && tis.length > 0) {
                 Object data = tis[0].getData();
                 if (data !is null) {
@@ -915,7 +914,6 @@
      *            the element
      */
     protected void doUpdateItem(Item item, Object element) {
-//         Trace.formatln( "{} {}: doUpdateItem", __FILE__, __LINE__ );
         if (item.isDisposed()) {
             unmapElement(element, item);
             return;
@@ -931,12 +929,10 @@
 
         // If the control is virtual, we cannot use the cached viewer row object. See bug 188663.
         if (isVirtual) {
-//         Trace.formatln( "{} {}: doUpdateItem", __FILE__, __LINE__ );
             viewerRowFromItem = cast(ViewerRow) viewerRowFromItem.clone();
         }
 
         for (int column = 0; column < columnCount; column++) {
-//         Trace.formatln( "{} {}: doUpdateItem", __FILE__, __LINE__ );
             ViewerColumn columnViewer = getViewerColumn(column);
             ViewerCell cellToUpdate = updateCell(viewerRowFromItem, column,
                     element);
@@ -1786,15 +1782,12 @@
 
     /* (non-Javadoc) Method declared on StructuredViewer. */
     protected override void internalRefresh(Object element, bool updateLabels) {
-//     Trace.formatln( "{} {}: ", __FILE__, __LINE__ );
-//     PrintStackTrace();
         // If element is null, do a full refresh.
         if (element is null) {
             internalRefresh(getControl(), getRoot(), true, updateLabels);
             return;
         }
         Widget[] items = findItems(element);
-//     Trace.formatln( "{} {}: ,items.length={}", __FILE__, __LINE__ ,items.length);
         if (items.length !is 0) {
             for (int i = 0; i < items.length; i++) {
                 // pick up structure changes too
@@ -2993,7 +2986,6 @@
      *      java.lang.Object)
      */
     protected override void buildLabel(ViewerLabel updateLabel, Object elementOrPath) {
-//     Trace.formatln( "{} {}:", __FILE__, __LINE__ );
         Object element;
         if (auto path = cast(TreePath)elementOrPath ) {
             IBaseLabelProvider provider = getLabelProvider();
--- a/dwtx/jface/viewers/CellLabelProvider.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/CellLabelProvider.d	Sat Apr 12 17:53:06 2008 +0200
@@ -65,13 +65,20 @@
         bool noColumnTreeViewer = ( null !is cast(AbstractTreeViewer)viewer ) && viewer
                 .doGetColumnCount_package() is 0;
 
-        if (!noColumnTreeViewer
-                && (null !is cast(ITableLabelProvider) labelProvider
-                        || null !is cast(ITableColorProvider) labelProvider || null !is cast(ITableFontProvider)labelProvider ))
-            return new TableColumnViewerLabelProvider(labelProvider);
-        if ( cast(CellLabelProvider)labelProvider )
-            return cast(CellLabelProvider) labelProvider;
-        return new WrappedViewerLabelProvider(labelProvider);
+        if (!noColumnTreeViewer &&
+          (  null !is cast(ITableLabelProvider) labelProvider
+          || null !is cast(ITableColorProvider) labelProvider
+          || null !is cast(ITableFontProvider)labelProvider )){
+            auto res = new TableColumnViewerLabelProvider(labelProvider);
+            return res;
+        }
+        if ( cast(CellLabelProvider)labelProvider ){
+            auto res = cast(CellLabelProvider) labelProvider;
+            return res;
+        }
+
+        auto res = new WrappedViewerLabelProvider(labelProvider);
+        return res;
 
     }
 
--- a/dwtx/jface/viewers/ColumnViewer.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/ColumnViewer.d	Sat Apr 12 17:53:06 2008 +0200
@@ -43,7 +43,6 @@
 import dwtx.jface.util.Policy;
 
 import dwt.dwthelper.utils;
-import tango.util.log.Trace;
 
 /**
  * The ColumnViewer is the abstract superclass of viewers that have columns
@@ -220,7 +219,6 @@
      *         there is none for the given index
      */
     /* package */ViewerColumn getViewerColumn(int columnIndex) {
-//         Trace.formatln( "{} {}: getViewerColumn", __FILE__, __LINE__ );
 
         ViewerColumn viewer;
         Widget columnOwner = getColumnViewerOwner(columnIndex);
@@ -358,7 +356,6 @@
      * @return ViewerCell
      */
     /* package */ViewerCell updateCell(ViewerRow rowItem, int column, Object element) {
-//         Trace.formatln( "{} {}: getViewerColumn", __FILE__, __LINE__ );
         cell.update(rowItem, column, element);
         return cell;
     }
@@ -405,7 +402,6 @@
      *
      */
     public override void setLabelProvider(IBaseLabelProvider labelProvider) {
-//         Trace.formatln( "{} {}: setLabelProvider", __FILE__, __LINE__ );
         Assert.isTrue( null !is cast(ITableLabelProvider)labelProvider
                 || null !is cast(ILabelProvider)labelProvider
                 || null !is cast(CellLabelProvider)labelProvider );
@@ -421,9 +417,7 @@
         ViewerColumn column;
         int i = 0;
 
-//         Trace.formatln( "{} {}: updateColumnParts", __FILE__, __LINE__ );
         while ((column = getViewerColumn(i++)) !is null) {
-//             Trace.formatln( "{} {}: updateColumnParts loop", __FILE__, __LINE__ );
             column.setLabelProvider(CellLabelProvider
                     .createViewerLabelProvider(this, labelProvider), false);
         }
@@ -687,10 +681,10 @@
      * @since 3.3
      */
     public CellLabelProvider getLabelProvider(int columnIndex) {
-//         Trace.formatln( "{} {}: getLabelProvider", __FILE__, __LINE__ );
         ViewerColumn column = getViewerColumn(columnIndex);
         if (column !is null) {
-            return column.getLabelProvider();
+            auto res = column.getLabelProvider();
+            return res;
         }
         return null;
     }
--- a/dwtx/jface/viewers/ContentViewer.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/ContentViewer.d	Sat Apr 12 17:53:06 2008 +0200
@@ -25,7 +25,6 @@
 import dwtx.core.runtime.Assert;
 
 import dwt.dwthelper.utils;
-import tango.util.log.Trace;
 
 /**
  * A content viewer is a model-based adapter on a widget which accesses its
@@ -138,12 +137,9 @@
      * @return a label provider
      */
     public IBaseLabelProvider getLabelProvider() {
-//         Trace.formatln( "{} {}:", __FILE__, __LINE__ );
         if (labelProvider is null) {
-//             Trace.formatln( "{} {}:", __FILE__, __LINE__ );
             labelProvider = new LabelProvider();
         }
-//         PrintStackTrace();
         return labelProvider;
     }
 
@@ -169,7 +165,6 @@
             labelProvider.removeListener(labelProviderListener);
             labelProvider.dispose();
             labelProvider = null;
-//             Trace.formatln( "{} {}: labelProvider = null;", __FILE__, __LINE__ );
         }
         input = null;
     }
@@ -282,7 +277,6 @@
      * @param labelProvider the label provider, or <code>null</code> if none
      */
     public void setLabelProvider(IBaseLabelProvider labelProvider) {
-//     Trace.formatln( "{} {}: setLabelProvider", __FILE__, __LINE__ );
         IBaseLabelProvider oldProvider = this.labelProvider;
         // If it hasn't changed, do nothing.
         // This also ensures that the provider is not disposed
@@ -303,6 +297,5 @@
         if (oldProvider !is null) {
             oldProvider.dispose();
         }
-//         Trace.formatln( "{} {}: setLabelProvider", __FILE__, __LINE__ );
     }
 }
--- a/dwtx/jface/viewers/LabelProvider.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/LabelProvider.d	Sat Apr 12 17:53:06 2008 +0200
@@ -18,7 +18,6 @@
 import dwt.graphics.Image;
 
 import dwt.dwthelper.utils;
-import tango.util.log.Trace;
 
 /**
  * A label provider implementation which, by default, uses an element's
@@ -59,7 +58,6 @@
      * <code>toString</code> string. Subclasses may override.
      */
     public String getText(Object element) {
-//     Trace.formatln( "{} {}: getText", __FILE__, __LINE__ );
         return element is null ? "" : element.toString();//$NON-NLS-1$
     }
 }
--- a/dwtx/jface/viewers/StructuredViewer.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/StructuredViewer.d	Sat Apr 12 17:53:06 2008 +0200
@@ -70,7 +70,6 @@
 
 import dwt.dwthelper.utils;
 import dwt.dwthelper.Runnable;
-import tango.util.log.Trace;
 
 /**
  * Abstract base implementation for structure-oriented viewers (trees, lists,
@@ -831,13 +830,15 @@
     protected void fireDoubleClick(DoubleClickEvent event) {
         Object[] listeners = doubleClickListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class(cast(IDoubleClickListener) listeners[i]) SafeRunnable {
+            SafeRunnable.run(new class(cast(IDoubleClickListener) listeners[i], event) SafeRunnable {
                 IDoubleClickListener l;
-                this(IDoubleClickListener a){
+                DoubleClickEvent event_;
+                this(IDoubleClickListener a,DoubleClickEvent b){
                     l = a;
+                    event_=b;
                 }
                 public void run() {
-                    l.doubleClick(event);
+                    l.doubleClick(event_);
                 }
             });
         }
@@ -858,13 +859,15 @@
     protected void fireOpen(OpenEvent event) {
         Object[] listeners = openListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class(cast(IOpenListener) listeners[i]) SafeRunnable {
+            SafeRunnable.run(new class(cast(IOpenListener) listeners[i],event) SafeRunnable {
                 IOpenListener l;
-                this(IOpenListener a){
+                OpenEvent event_;
+                this(IOpenListener a, OpenEvent b){
                     l = a;
+                    event_=b;
                 }
                 public void run() {
-                    l.open(event);
+                    l.open(event_);
                 }
             });
         }
@@ -886,13 +889,15 @@
     protected void firePostSelectionChanged(SelectionChangedEvent event) {
         Object[] listeners = postSelectionChangedListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class(cast(ISelectionChangedListener) listeners[i]) SafeRunnable {
+            SafeRunnable.run(new class(cast(ISelectionChangedListener) listeners[i],event) SafeRunnable {
                 ISelectionChangedListener l;
-                this(ISelectionChangedListener a){
+                SelectionChangedEvent event_;
+                this(ISelectionChangedListener a,SelectionChangedEvent b){
                     l = a;
+                    event_=b;
                 }
                 public void run() {
-                    l.selectionChanged(event);
+                    l.selectionChanged(event_);
                 }
             });
         }
@@ -1301,8 +1306,7 @@
                 elementMap.put(element, item);
             } else if ( auto w = cast(Widget)widgetOrWidgets ) {
                 if (widgetOrWidgets !is item) {
-                    elementMap.put(element, new ArrayWrapperObject([ cast(Object)
-                            w, item ]));
+                    elementMap.put(element, new ArrayWrapperT!(Widget)( [ w, item ] ));
                 }
             } else {
                 Widget[] widgets = (cast(ArrayWrapperT!(Widget)) widgetOrWidgets).array;
@@ -1318,7 +1322,7 @@
                     System.arraycopy(widgets, 0,
                             widgets = new Widget[length_ + 1], 0, length_);
                     widgets[length_] = item;
-                    elementMap.put(element, new ArrayWrapperObject(widgets));
+                    elementMap.put(element, new ArrayWrapperT!(Widget)(widgets));
                 }
             }
         }
@@ -1520,12 +1524,12 @@
      * @since 2.0
      */
     public void refresh(Object element, bool updateLabels) {
-        preservingSelection(new class Runnable {
+        preservingSelection(new class(element, updateLabels) Runnable {
             Object element_;
             bool updateLabels_;
-            this(){
-                element_ = element;
-                updateLabels_ = updateLabels;
+            this(Object a, bool b){
+                element_ = a;
+                updateLabels_ = b;
             }
             public void run() {
                 internalRefresh(element_, updateLabels_);
@@ -1621,10 +1625,11 @@
         if (filters.length is 0) {
             resetFilters();
         } else {
-            this.filters = new ArraySeq!(ViewerFilter);
+            auto tmp = new ArraySeq!(ViewerFilter);
             foreach( f; filters ){
-                this.filters.append(f);
+                tmp.append(f);
             }
+            this.filters = tmp;
             refresh();
         }
     }
@@ -1930,13 +1935,13 @@
                     } else {
                         Widget[] updatedWidgets = new Widget[length - 1];
                         System.arraycopy(widgets, 1, updatedWidgets, 0, length -1 );
-                        elementMap.put(element, new ArrayWrapperObject( updatedWidgets));
+                        elementMap.put(element, new ArrayWrapperT!(Widget)( updatedWidgets));
                     }
                 } else {
                     Widget[] updatedWidgets = new Widget[length - 1];
                     System.arraycopy(widgets, 0, updatedWidgets, 0, indexOfItem);
                     System.arraycopy(widgets, indexOfItem + 1, updatedWidgets, indexOfItem, length - indexOfItem - 1);
-                    elementMap.put(element, new ArrayWrapperObject(updatedWidgets));
+                    elementMap.put(element, new ArrayWrapperT!(Widget)(updatedWidgets));
                 }
             }
         }
@@ -2055,7 +2060,6 @@
      *            indicate unknown
      */
     protected void internalUpdate(Widget widget, Object element, String[] properties) {
-        Trace.formatln( "{} {}:", __FILE__, __LINE__ );
         bool needsRefilter_ = false;
         if (properties !is null) {
             for (int i = 0; i < properties.length; ++i) {
@@ -2163,7 +2167,6 @@
      * @param element The element being decorated.
      */
     protected void buildLabel(ViewerLabel updateLabel, Object element){
-        Trace.formatln( "{} {}:", __FILE__, __LINE__ );
 
         if ( auto vlp = cast(IViewerLabelProvider)getLabelProvider() ) {
             IViewerLabelProvider itemProvider = cast(IViewerLabelProvider) getLabelProvider();
@@ -2201,7 +2204,6 @@
      * @param labelProvider ILabelProvider the labelProvider for the receiver.
      */
     void buildLabel(ViewerLabel updateLabel, Object element, IViewerLabelProvider labelProvider){
-        Trace.formatln( "{} {}:", __FILE__, __LINE__ );
 
             labelProvider.updateLabel(updateLabel, element);
 
@@ -2228,7 +2230,6 @@
      * @param labelProvider ILabelProvider the labelProvider for the receiver.
      */
     void buildLabel(ViewerLabel updateLabel, TreePath elementPath,ITreePathLabelProvider labelProvider){
-    Trace.formatln( "{} {}:", __FILE__, __LINE__ );
 
             labelProvider.updateLabel(updateLabel, elementPath);
 
@@ -2255,7 +2256,6 @@
      * @param labelProvider ILabelProvider the labelProvider for the receiver.
      */
     void buildLabel(ViewerLabel updateLabel, Object element,ILabelProvider labelProvider){
-        Trace.formatln( "{} {}:", __FILE__, __LINE__ );
             updateLabel.setText(labelProvider.getText(element));
             updateLabel.setImage(labelProvider.getImage(element));
     }
--- a/dwtx/jface/viewers/TreeViewer.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/TreeViewer.d	Sat Apr 12 17:53:06 2008 +0200
@@ -54,7 +54,6 @@
 
 import dwt.dwthelper.utils;
 import dwt.dwthelper.Runnable;
-import tango.util.log.Trace;
 
 /**
  * A concrete viewer based on an DWT <code>Tree</code> control.
--- a/dwtx/jface/viewers/ViewerColumn.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/ViewerColumn.d	Sat Apr 12 17:53:06 2008 +0200
@@ -28,7 +28,6 @@
 import dwtx.jface.util.Policy;
 
 import dwt.dwthelper.utils;
-import tango.util.log.Trace;
 
 /**
  * Instances of this class represent a column of a {@link ColumnViewer}. Label
@@ -61,7 +60,6 @@
      *            this could be the widget itself
      */
     protected this(ColumnViewer viewer, Widget columnOwner) {
-//         Trace.formatln( "{} {}: this() columnOwner={:X} this={:X}", __FILE__, __LINE__, cast(uint)cast(void*)columnOwner, cast(uint)cast(void*)this );
         columnOwner.setData(ViewerColumn.COLUMN_VIEWER_KEY, this);
         this.listener = new class(viewer) ILabelProviderListener {
             ColumnViewer viewer_;
--- a/dwtx/jface/viewers/WrappedViewerLabelProvider.d	Fri Apr 11 17:10:32 2008 +0200
+++ b/dwtx/jface/viewers/WrappedViewerLabelProvider.d	Sat Apr 12 17:53:06 2008 +0200
@@ -64,8 +64,8 @@
      * @param labelProvider
      */
     public this(IBaseLabelProvider labelProvider) {
+        this.labelProvider = defaultLabelProvider;
         super();
-        labelProvider = defaultLabelProvider;
         setProviders(cast(Object)labelProvider);
     }