Mercurial > projects > dwt-addons
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); } /*