diff dwtx/jface/internal/text/revisions/RevisionSelectionProvider.d @ 162:1a5b8f8129df

...
author Frank Benoit <benoit@tionex.de>
date Mon, 08 Sep 2008 00:51:37 +0200
parents 75302ef3f92f
children
line wrap: on
line diff
--- a/dwtx/jface/internal/text/revisions/RevisionSelectionProvider.d	Wed Aug 27 14:49:30 2008 +0200
+++ b/dwtx/jface/internal/text/revisions/RevisionSelectionProvider.d	Mon Sep 08 00:51:37 2008 +0200
@@ -47,7 +47,7 @@
  * <p>
  * Calling {@link #setSelection(ISelection)} will set the current sticky revision on the ruler.
  * </p>
- * 
+ *
  * @since 3.2
  */
 public final class RevisionSelectionProvider : ISelectionProvider {
@@ -71,17 +71,17 @@
                 int offset= ts.getOffset();
                 setSelectedRevision(fPainter.getRevision(offset));
             }
-            
+
         }
-        
+
         public void dispose() {
             fPostProvider.removePostSelectionChangedListener(this);
         }
     }
 
     private const RevisionPainter fPainter;
-    private const ListenerList fListeners= new ListenerList();
-    
+    private const ListenerList fListeners;
+
     /**
      * The text viewer once we are installed, <code>null</code> if not installed.
      */
@@ -103,10 +103,11 @@
 
     /**
      * Creates a new selection provider.
-     * 
+     *
      * @param painter the painter that the created provider interacts with
      */
     this(RevisionPainter painter) {
+        fListeners= new ListenerList();
         fPainter= painter;
     }
 
@@ -114,16 +115,16 @@
      * @see dwtx.jface.viewers.ISelectionProvider#addSelectionChangedListener(dwtx.jface.viewers.ISelectionChangedListener)
      */
     public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        fListeners.add(listener);
+        fListeners.add(cast(Object)listener);
     }
 
     /*
      * @see dwtx.jface.viewers.ISelectionProvider#removeSelectionChangedListener(dwtx.jface.viewers.ISelectionChangedListener)
      */
     public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-        fListeners.remove(listener);
+        fListeners.remove(cast(Object)listener);
     }
-    
+
     /*
      * @see dwtx.jface.viewers.ISelectionProvider#getSelection()
      */
@@ -143,8 +144,8 @@
             Object first= (cast(IStructuredSelection) selection).getFirstElement();
             if ( cast(Revision)first )
                 fPainter.handleRevisionSelected(cast(Revision) first);
-            else if ( cast(String)first )
-                fPainter.handleRevisionSelected(cast(String) first);
+            else if ( auto str = cast(ArrayWrapperString)first )
+                fPainter.handleRevisionSelected(str.array);
             else if (selection.isEmpty())
                 fPainter.handleRevisionSelected(cast(Revision) null);
         }
@@ -152,7 +153,7 @@
 
     /**
      * Installs the selection provider on the viewer.
-     * 
+     *
      * @param viewer the viewer on which we listen to for post selection events
      */
     void install(ITextViewer viewer) {
@@ -166,7 +167,7 @@
             }
         }
     }
-    
+
     /**
      * Uninstalls the selection provider.
      */
@@ -180,7 +181,7 @@
 
     /**
      * Private protocol used by {@link RevisionPainter} to signal selection of a revision.
-     * 
+     *
      * @param revision the selected revision, or <code>null</code> for none
      */
     void revisionSelected(Revision revision) {
@@ -189,7 +190,7 @@
 
     /**
      * Updates the currently selected revision and sends out an event if it changed.
-     * 
+     *
      * @param revision the newly selected revision or <code>null</code> for none
      */
     private void setSelectedRevision(Revision revision) {