diff dwtx/jface/text/TextViewer.d @ 162:1a5b8f8129df

...
author Frank Benoit <benoit@tionex.de>
date Mon, 08 Sep 2008 00:51:37 +0200
parents f8d52b926852
children 862b05e0334a
line wrap: on
line diff
--- a/dwtx/jface/text/TextViewer.d	Wed Aug 27 14:49:30 2008 +0200
+++ b/dwtx/jface/text/TextViewer.d	Mon Sep 08 00:51:37 2008 +0200
@@ -60,7 +60,6 @@
 import dwtx.jface.text.IDocumentExtension4; // packageimport
 import dwtx.jface.text.IDocumentExtension2; // packageimport
 import dwtx.jface.text.IDocumentPartitionerExtension2; // packageimport
-import dwtx.jface.text.Assert; // packageimport
 import dwtx.jface.text.DefaultInformationControl; // packageimport
 import dwtx.jface.text.IWidgetTokenOwnerExtension; // packageimport
 import dwtx.jface.text.DocumentClone; // packageimport
@@ -157,6 +156,7 @@
 import dwtx.dwtxhelper.Collection;
 import dwtx.dwtxhelper.regex;
 import tango.text.convert.Format;
+import tango.core.Thread;
 
 import dwt.DWT;
 import dwt.custom.LineBackgroundEvent;
@@ -240,6 +240,8 @@
                     IEditingSupportRegistry, ITextOperationTarget, ITextOperationTargetExtension,
                     IWidgetTokenOwner, IWidgetTokenOwnerExtension, IPostSelectionProvider {
 
+    alias Viewer.fireSelectionChanged fireSelectionChanged;
+
     /** Internal flag to indicate the debug state. */
     public static const bool TRACE_ERRORS= false;
     /** Internal flag to indicate the debug state. */
@@ -367,7 +369,7 @@
                     fDoubleClickSelection= textWidget.getSelection();
                     event.newOffset= fDoubleClickSelection.x;
                     if (TRACE_DOUBLE_CLICK)
-                        System.out_.println("- setting selection: x= " + fDoubleClickSelection.x + ", y= " + fDoubleClickSelection.y); //$NON-NLS-1$ //$NON-NLS-2$
+                        System.out_.println(Format("- setting selection: x= {}, y= {}", fDoubleClickSelection.x, fDoubleClickSelection.y)); //$NON-NLS-1$ //$NON-NLS-2$
                 }
             } else {
                 if (fDoubleClickSelection.x <= event.offset && event.offset <= fDoubleClickSelection.y)
@@ -383,11 +385,11 @@
      * @since 3.3
      */
     private void print(MovementEvent e) {
-        System.out_.println("line offset: " + e.lineOffset); //$NON-NLS-1$
-        System.out_.println("line: " + e.lineText); //$NON-NLS-1$
-        System.out_.println("type: " + e.movement); //$NON-NLS-1$
-        System.out_.println("offset: " +  e.offset); //$NON-NLS-1$
-        System.out_.println("newOffset: " + e.newOffset); //$NON-NLS-1$
+        System.out_.println(Format("line offset: {}", e.lineOffset)); //$NON-NLS-1$
+        System.out_.println(Format("line: {}", e.lineText)); //$NON-NLS-1$
+        System.out_.println(Format("type: {}", e.movement)); //$NON-NLS-1$
+        System.out_.println(Format("offset: {}",  e.offset)); //$NON-NLS-1$
+        System.out_.println(Format("newOffset: {}", e.newOffset)); //$NON-NLS-1$
     }
 
     /**
@@ -589,12 +591,17 @@
         }
 
         /** List of registered verify key listeners. */
-        private List fListeners= new ArrayList();
+        private List fListeners;
         /** List of pending batches. */
-        private List fBatched= new ArrayList();
+        private List fBatched;
         /** The reentrance count. */
         private int fReentranceCount= 0;
 
+        this(){
+            fListeners= new ArrayList();
+            fBatched= new ArrayList();
+        }
+
         /*
          * @see VerifyKeyListener#verifyKey(VerifyEvent)
          */
@@ -663,7 +670,7 @@
                     // find index based on identity
                     int size= fListeners.size();
                     for (int i= 0; i < size; i++) {
-                        if (listener is fListeners.get(i)) {
+                        if (cast(Object)listener is fListeners.get(i)) {
                             idx= i;
                             break;
                         }
@@ -676,9 +683,9 @@
                             fListeners.remove(idx);
 
                         if (index > fListeners.size())
-                            fListeners.add(listener);
+                            fListeners.add(cast(Object)listener);
                         else
-                            fListeners.add(index, listener);
+                            fListeners.add(index, cast(Object)listener);
                     }
 
                     if (size is 0)  // checking old size, i.e. current size is size + 1
@@ -704,7 +711,7 @@
 
                 int size= fListeners.size();
                 for (int i= 0; i < size; i++) {
-                    if (listener is fListeners.get(i)) {
+                    if (cast(Object)listener is fListeners.get(i)) {
                         fListeners.remove(i);
                         if (size is 1)  // checking old size, i.e. current size is size - 1
                             uninstall();
@@ -892,7 +899,7 @@
         public void update(DocumentEvent event) {
             int offset= event.getOffset();
             int length= event.getLength();
-            int delta= event.getText().length() - length;
+            int delta= event.getText().length - length;
 
             if (offset < fPosition.getOffset())
                 fPosition.setOffset(fPosition.getOffset() + delta);
@@ -1208,7 +1215,7 @@
          * @param stateMask the state mask
          */
         protected this(String contentType, int stateMask) {
-            Assert.isNotNull(contentType);
+            //Assert.isNotNull(contentType);
             fContentType= contentType;
             fStateMask= stateMask;
         }
@@ -1216,8 +1223,8 @@
         /*
          * @see java.lang.Object#equals(java.lang.Object)
          */
-        public bool equals(Object obj) {
-            if (obj is null || obj.getClass() !is getClass())
+        public override int opEquals(Object obj) {
+            if (obj is null || obj.classinfo !is this.classinfo )
                 return false;
             TextHoverKey textHoverKey= cast(TextHoverKey)obj;
             return textHoverKey.fContentType.equals(fContentType) && textHoverKey.fStateMask is fStateMask;
@@ -1227,7 +1234,7 @@
          * @see java.lang.Object#hashCode()
          */
         public override hash_t toHash() {
-            return fStateMask << 16 | fContentType.toHash();
+            return fStateMask << 16 | .toHash(fContentType);
         }
 
         /**
@@ -1363,7 +1370,7 @@
             Assert.isLegal(!isConnected());
             fUpdaterDocument= document;
             try {
-                fUpdaterCategory= SELECTION_POSITION_CATEGORY + toHash();
+                fUpdaterCategory= SELECTION_POSITION_CATEGORY ~ Integer.toString(toHash());
                 fUpdater= new NonDeletingPositionUpdater(fUpdaterCategory);
                 fUpdaterDocument.addPositionCategory(fUpdaterCategory);
                 fUpdaterDocument.addPositionUpdater(fUpdater);
@@ -1410,7 +1417,7 @@
             position.setOffset(offset);
             position.setLength(length);
             // http://bugs.eclipse.org/bugs/show_bug.cgi?id=32795
-            position.isDeleted= false;
+            position.isDeleted_= false;
         }
 
         /**
@@ -1642,12 +1649,12 @@
      * The mark position category.
      * @since 2.0
      */
-    private const String MARK_POSITION_CATEGORY;
+    private /+const+/ String MARK_POSITION_CATEGORY;
     /**
      * The mark position updater
      * @since 2.0
      */
-    private const IPositionUpdater fMarkPositionUpdater;
+    private /+const+/ IPositionUpdater fMarkPositionUpdater;
     /**
      * The flag indicating the redraw behavior
      * @since 2.0
@@ -1677,7 +1684,7 @@
      * Queued post selection changed events count.
      * @since 3.0
      */
-    private const int[] fNumberOfPostSelectionChangedEvents= new int[1];
+    private /+const+/ int[] fNumberOfPostSelectionChangedEvents;
     /**
      * Last selection range sent to post selection change listeners.
      * @since 3.0
@@ -1687,7 +1694,7 @@
      * The set of registered editor helpers.
      * @since 3.1
      */
-    private Set fEditorHelpers= new HashSet();
+    private Set fEditorHelpers;
     /**
      * The internal rewrite session listener.
      * @since 3.1
@@ -1795,6 +1802,8 @@
         MARK_POSITION_CATEGORY=Format("__mark_category_{}", toHash()); //$NON-NLS-1$
         fMarkPositionUpdater= new DefaultPositionUpdater(MARK_POSITION_CATEGORY);
         fDocumentRewriteSessionListener= new DocumentRewriteSessionListener();
+        fNumberOfPostSelectionChangedEvents= new int[1];
+        fEditorHelpers= new HashSet();
     }
     /**
      * Internal use only
@@ -2108,16 +2117,16 @@
             if (autoEditStrategies is null)
                 return;
 
-            fAutoIndentStrategies.put(contentType, null);
+            fAutoIndentStrategies.put(contentType, cast(Object)null);
 
         } else {
             if (autoEditStrategies is null) {
                 autoEditStrategies= new ArrayList();
-                fAutoIndentStrategies.put(contentType, autoEditStrategies);
+                fAutoIndentStrategies.put(contentType, cast(Object)autoEditStrategies);
             }
 
             autoEditStrategies.clear();
-            autoEditStrategies.addAll(Arrays.asList(strategies));
+            autoEditStrategies.addAll(Arrays.asList(arraycast!(Object)(strategies)));
         }
     }
 
@@ -2128,7 +2137,7 @@
     public void prependAutoEditStrategy(IAutoEditStrategy strategy, String contentType) {
 
         if (strategy is null || contentType is null)
-            throw new IllegalArgumentException();
+            throw new IllegalArgumentException("");
 
         if (fAutoIndentStrategies is null)
             fAutoIndentStrategies= new HashMap();
@@ -2136,10 +2145,10 @@
         List autoEditStrategies= cast(List) fAutoIndentStrategies.get(contentType);
         if (autoEditStrategies is null) {
             autoEditStrategies= new ArrayList();
-            fAutoIndentStrategies.put(contentType, autoEditStrategies);
-        }
-
-        autoEditStrategies.add(0, strategy);
+            fAutoIndentStrategies.put(contentType,cast(Object) autoEditStrategies);
+        }
+
+        autoEditStrategies.add(0, cast(Object)strategy);
     }
 
     /*
@@ -2155,14 +2164,14 @@
             return;
 
         for (final Iterator iterator= autoEditStrategies.iterator(); iterator.hasNext(); ) {
-            if (iterator.next().equals(strategy)) {
+            if (iterator.next().opEquals(cast(Object)strategy)) {
                 iterator.remove();
                 break;
             }
         }
 
         if (autoEditStrategies.isEmpty())
-            fAutoIndentStrategies.put(contentType, null);
+            fAutoIndentStrategies.put(contentType, cast(Object)null);
     }
 
     /*
@@ -2187,7 +2196,7 @@
             if (fIndentChars is null)
                 fIndentChars= new HashMap();
 
-            fIndentChars.put(contentType, indentPrefixes);
+            fIndentChars.put(contentType, new ArrayWrapperObject( stringcast(indentPrefixes)));
 
         } else if (fIndentChars !is null)
             fIndentChars.remove(contentType);
@@ -2226,7 +2235,7 @@
         if (defaultPrefixes !is null && defaultPrefixes.length > 0) {
             if (fDefaultPrefixChars is null)
                 fDefaultPrefixChars= new HashMap();
-            fDefaultPrefixChars.put(contentType, defaultPrefixes);
+            fDefaultPrefixChars.put(contentType, new ArrayWrapperObject( stringcast(defaultPrefixes)));
         } else if (fDefaultPrefixChars !is null)
             fDefaultPrefixChars.remove(contentType);
     }
@@ -2263,7 +2272,7 @@
             if (fTextHovers is null) {
                 fTextHovers= new HashMap();
             }
-            fTextHovers.put(key, hover);
+            fTextHovers.put(key, cast(Object)hover);
         } else if (fTextHovers !is null)
             fTextHovers.remove(key);
 
@@ -2528,7 +2537,7 @@
                 offset= lineEnd;
                 String delimiter= document.getLineDelimiter(lineNumber);
                 if (delimiter !is null)
-                    offset += delimiter.length();
+                    offset += delimiter.length;
             }
 
             int end= offset + length;
@@ -2591,13 +2600,13 @@
      */
     public void addPostSelectionChangedListener(ISelectionChangedListener listener)  {
 
-        Assert.isNotNull(listener);
+        Assert.isNotNull(cast(Object)listener);
 
         if (fPostSelectionChangedListeners is null)
             fPostSelectionChangedListeners= new ArrayList();
 
-        if (!fPostSelectionChangedListeners.contains(listener))
-            fPostSelectionChangedListeners.add(listener);
+        if (!fPostSelectionChangedListeners.contains(cast(Object)listener))
+            fPostSelectionChangedListeners.add(cast(Object)listener);
     }
 
     /*
@@ -2606,10 +2615,10 @@
      */
     public void removePostSelectionChangedListener(ISelectionChangedListener listener)  {
 
-        Assert.isNotNull(listener);
+        Assert.isNotNull(cast(Object)listener);
 
         if (fPostSelectionChangedListeners !is null)  {
-            fPostSelectionChangedListeners.remove(listener);
+            fPostSelectionChangedListeners.remove(cast(Object)listener);
             if (fPostSelectionChangedListeners.size() is 0)
                 fPostSelectionChangedListeners= null;
         }
@@ -2645,7 +2654,10 @@
 
         fNumberOfPostSelectionChangedEvents[0]++;
         display.timerExec(getEmptySelectionChangedEventDelay(), new class()  Runnable {
-            final int id= fNumberOfPostSelectionChangedEvents[0];
+            const int id;
+            this(){
+                id = fNumberOfPostSelectionChangedEvents[0];
+            }
             public void run() {
                 if (id is fNumberOfPostSelectionChangedEvents[0]) {
                     // Check again because this is executed after the delay
@@ -2653,7 +2665,7 @@
                         Point selection= fTextWidget.getSelectionRange();
                         if (selection !is null) {
                             IRegion r= widgetRange2ModelRange(new Region(selection.x, selection.y));
-                            if (fireEqualSelection || (r !is null && !r.equals(fLastSentPostSelectionChange)) || r is null)  {
+                            if (fireEqualSelection || (r !is null && !(cast(Object)r).opEquals(cast(Object)fLastSentPostSelectionChange)) || r is null)  {
                                 fLastSentPostSelectionChange= r;
                                 firePostSelectionChanged(selection.x, selection.y);
                             }
@@ -2703,7 +2715,7 @@
     protected void fireSelectionChanged(int offset, int length) {
         if (redraws()) {
             IRegion r= widgetRange2ModelRange(new Region(offset, length));
-            if ((r !is null && !r.equals(fLastSentSelectionChange)) || r is null)  {
+            if ((r !is null && !(cast(Object)r).opEquals(cast(Object)fLastSentSelectionChange)) || r is null)  {
                 fLastSentSelectionChange= r;
                 ISelection selection= r !is null ? new TextSelection(getDocument(), r.getOffset(), r.getLength()) : TextSelection.emptySelection();
                 SelectionChangedEvent event= new SelectionChangedEvent(this, selection);
@@ -2759,13 +2771,13 @@
      */
     public void addTextListener(ITextListener listener) {
 
-        Assert.isNotNull(listener);
+        Assert.isNotNull(cast(Object)listener);
 
         if (fTextListeners is null)
             fTextListeners= new ArrayList();
 
-        if (!fTextListeners.contains(listener))
-            fTextListeners.add(listener);
+        if (!fTextListeners.contains(cast(Object)listener))
+            fTextListeners.add(cast(Object)listener);
     }
 
     /*
@@ -2773,10 +2785,10 @@
      */
     public void removeTextListener(ITextListener listener) {
 
-        Assert.isNotNull(listener);
+        Assert.isNotNull(cast(Object)listener);
 
         if (fTextListeners !is null) {
-            fTextListeners.remove(listener);
+            fTextListeners.remove(cast(Object)listener);
             if (fTextListeners.size() is 0)
                 fTextListeners= null;
         }
@@ -2811,13 +2823,13 @@
      */
     public void addTextInputListener(ITextInputListener listener) {
 
-        Assert.isNotNull(listener);
+        Assert.isNotNull(cast(Object)listener);
 
         if (fTextInputListeners is null)
             fTextInputListeners= new ArrayList();
 
-        if (!fTextInputListeners.contains(listener))
-            fTextInputListeners.add(listener);
+        if (!fTextInputListeners.contains(cast(Object)listener))
+            fTextInputListeners.add(cast(Object)listener);
     }
 
     /*
@@ -2825,10 +2837,10 @@
      */
     public void removeTextInputListener(ITextInputListener listener) {
 
-        Assert.isNotNull(listener);
+        Assert.isNotNull(cast(Object)listener);
 
         if (fTextInputListeners !is null) {
-            fTextInputListeners.remove(listener);
+            fTextInputListeners.remove(cast(Object)listener);
             if (fTextInputListeners.size() is 0)
                 fTextInputListeners= null;
         }
@@ -2874,7 +2886,7 @@
      * @see Viewer#getInput()
      */
     public Object getInput() {
-        return getDocument();
+        return cast(Object)getDocument();
     }
 
     /*
@@ -2910,7 +2922,7 @@
         setVisibleDocument(fDocument);
 
         resetPlugins();
-        inputChanged(fDocument, oldDocument);
+        inputChanged(cast(Object)fDocument, cast(Object)oldDocument);
 
         fireInputDocumentChanged(oldDocument, fDocument);
         fLastSentSelectionChange= null;
@@ -2939,7 +2951,7 @@
         }
 
         resetPlugins();
-        inputChanged(fDocument, oldDocument);
+        inputChanged(cast(Object)fDocument, cast(Object)oldDocument);
 
         fireInputDocumentChanged(oldDocument, fDocument);
         fLastSentSelectionChange= null;
@@ -3062,8 +3074,8 @@
             initializeViewportUpdate();
         }
 
-        if (!fViewportListeners.contains(listener))
-            fViewportListeners.add(listener);
+        if (!fViewportListeners.contains(cast(Object)listener))
+            fViewportListeners.add(cast(Object)listener);
     }
 
     /*
@@ -3071,7 +3083,7 @@
      */
     public void removeViewportListener(IViewportListener listener) {
         if (fViewportListeners !is null)
-            fViewportListeners.remove(listener);
+            fViewportListeners.remove(cast(Object)listener);
     }
 
     /**
@@ -3311,7 +3323,7 @@
 
                     float index= (cast(float)newOffset) / (cast(float)getAverageCharWidth());
 
-                    fTextWidget.setHorizontalIndex(Math.round(index));
+                    fTextWidget.setHorizontalIndex(cast(int)Math.round(index));
                 }
 
             }
@@ -3570,6 +3582,9 @@
 
         return 0;
     }
+    package int _getVisibleRegionOffset_package() {
+        return _getVisibleRegionOffset();
+    }
 
     /*
      * @see ITextViewer#getVisibleRegion()
@@ -3651,7 +3666,7 @@
         if (strategy !is null) {
             if (fDoubleClickStrategies is null)
                 fDoubleClickStrategies= new HashMap();
-            fDoubleClickStrategies.put(contentType, strategy);
+            fDoubleClickStrategies.put(stringcast(contentType), cast(Object)strategy);
         } else if (fDoubleClickStrategies !is null)
             fDoubleClickStrategies.remove(contentType);
     }
@@ -3950,6 +3965,9 @@
                 extension.acceptPostNotificationReplaces();
         }
     }
+    package void ignoreAutoEditStrategies_package(bool ignore) {
+        return ignoreAutoEditStrategies(ignore);
+    }
 
     /**
      * Returns whether this viewer ignores the registered auto edit strategies.
@@ -4410,8 +4428,8 @@
                 char startChar= adapter.charAt(widgetPos);
                 char endChar= adapter.charAt(widgetPos+length-1);
                 bool borderHasLineDelimiter= startChar is '\n' || startChar is '\r' || endChar is '\n' || endChar is '\r';
-                bool redraws= redraws();
-                if (borderHasLineDelimiter && redraws)
+                bool redraws_= redraws();
+                if (borderHasLineDelimiter && redraws_)
                     setRedraw(false);
 
                 if (redraws()) {
@@ -4420,7 +4438,7 @@
                     selectionChanged(widgetPos, length);
                 } else {
                     setSelectedRange(widgetOffset2ModelOffset(widgetPos), length);
-                    if (redraws)
+                    if (redraws_)
                         setRedraw(true);
                 }
 
@@ -4487,8 +4505,8 @@
                 char startChar= adapter.charAt(widgetPos);
                 char endChar= adapter.charAt(widgetPos+length-1);
                 bool borderHasLineDelimiter= startChar is '\n' || startChar is '\r' || endChar is '\n' || endChar is '\r';
-                bool redraws= redraws();
-                if (borderHasLineDelimiter && redraws)
+                bool redraws_= redraws();
+                if (borderHasLineDelimiter && redraws_)
                     setRedraw(false);
 
                 if (redraws()) {
@@ -4497,7 +4515,7 @@
                     selectionChanged(widgetPos, length);
                 } else {
                     setSelectedRange(modelPos, length);
-                    if (redraws)
+                    if (redraws_)
                         setRedraw(true);
                 }
 
@@ -4994,7 +5012,7 @@
     public ITextHover getCurrentTextHover() {
         if (fTextHoverManager is null)
             return null;
-        return fTextHoverManager.getCurrentTextHover();
+        return fTextHoverManager.getCurrentTextHover_package();
     }
 
     /*
@@ -5003,7 +5021,7 @@
     public Point getHoverEventLocation() {
         if (fTextHoverManager is null)
             return null;
-        return fTextHoverManager.getHoverEventLocation();
+        return fTextHoverManager.getHoverEventLocation_package();
     }
 
     /**
@@ -5404,13 +5422,13 @@
      */
     public void addTextPresentationListener(ITextPresentationListener listener) {
 
-        Assert.isNotNull(listener);
+        Assert.isNotNull(cast(Object)listener);
 
         if (fTextPresentationListeners is null)
             fTextPresentationListeners= new ArrayList();
 
-        if (!fTextPresentationListeners.contains(listener))
-            fTextPresentationListeners.add(listener);
+        if (!fTextPresentationListeners.contains(cast(Object)listener))
+            fTextPresentationListeners.add(cast(Object)listener);
     }
 
     /*
@@ -5419,10 +5437,10 @@
      */
     public void removeTextPresentationListener(ITextPresentationListener listener) {
 
-        Assert.isNotNull(listener);
+        Assert.isNotNull(cast(Object)listener);
 
         if (fTextPresentationListeners !is null) {
-            fTextPresentationListeners.remove(listener);
+            fTextPresentationListeners.remove(cast(Object)listener);
             if (fTextPresentationListeners.size() is 0)
                 fTextPresentationListeners= null;
         }
@@ -5434,7 +5452,7 @@
      */
     public void register(IEditingSupport helper) {
         Assert.isLegal(helper !is null);
-        fEditorHelpers.add(helper);
+        fEditorHelpers.add(cast(Object)helper);
     }
 
     /*
@@ -5442,7 +5460,7 @@
      * @since 3.1
      */
     public void unregister(IEditingSupport helper) {
-        fEditorHelpers.remove(helper);
+        fEditorHelpers.remove(cast(Object)helper);
     }
 
     /*