Mercurial > projects > dwt-addons
changeset 140:26688fec6d23
Following dsss compile errors
line wrap: on
line diff
--- a/dwtx/jface/internal/text/InformationControlReplacer.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/internal/text/InformationControlReplacer.d Sun Aug 24 03:23:46 2008 +0200 @@ -124,7 +124,7 @@ } if cast(DEBUG) - System.out.println("InformationControlReplacer: no active replaceable"); //$NON-NLS-1$ + System.out_.println("InformationControlReplacer: no active replaceable"); //$NON-NLS-1$ } /**
--- a/dwtx/jface/internal/text/StickyHoverManager.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/internal/text/StickyHoverManager.d Sun Aug 24 03:23:46 2008 +0200 @@ -230,7 +230,7 @@ * @see dwt.events.FocusListener#focusLost(dwt.events.FocusEvent) */ public void focusLost(FocusEvent e) { - if cast(DEBUG) System.out.println("StickyHoverManager.Closer.focusLost(): " + e); //$NON-NLS-1$ + if cast(DEBUG) System.out_.println("StickyHoverManager.Closer.focusLost(): " + e); //$NON-NLS-1$ Display d= fSubjectControl.getDisplay(); d.asyncExec(new class() Runnable { // Without the asyncExec, mouse clicks to the workbench window are swallowed. @@ -250,7 +250,7 @@ IInformationControl infoControl= getCurrentInformationControl2(); if (infoControl !is null && !infoControl.isFocusControl() && infoControl instanceof IInformationControlExtension3) { -// if cast(DEBUG) System.out.println("StickyHoverManager.Closer.handleEvent(): activeShell= " + fDisplay.getActiveShell()); //$NON-NLS-1$ +// if cast(DEBUG) System.out_.println("StickyHoverManager.Closer.handleEvent(): activeShell= " + fDisplay.getActiveShell()); //$NON-NLS-1$ IInformationControlExtension3 iControl3= cast(IInformationControlExtension3) infoControl; Rectangle controlBounds= iControl3.getBounds(); if (controlBounds !is null) { @@ -272,7 +272,7 @@ } } else if (event.type is DWT.FocusOut) { - if cast(DEBUG) System.out.println("StickyHoverManager.Closer.handleEvent(): focusOut: " + event); //$NON-NLS-1$ + if cast(DEBUG) System.out_.println("StickyHoverManager.Closer.handleEvent(): focusOut: " + event); //$NON-NLS-1$ IInformationControl iControl= getCurrentInformationControl2(); if (iControl !is null && ! iControl.isFocusControl()) hideInformationControl(); @@ -306,7 +306,7 @@ super.showInformationControl(subjectArea); else if cast(DEBUG) - System.out.println("cancelled StickyHoverManager.showInformationControl(..): did not get widget token (with prio)"); //$NON-NLS-1$ + System.out_.println("cancelled StickyHoverManager.showInformationControl(..): did not get widget token (with prio)"); //$NON-NLS-1$ } /* @@ -339,7 +339,7 @@ public bool requestWidgetToken(IWidgetTokenOwner owner) { hideInformationControl(); if cast(DEBUG) - System.out.println("StickyHoverManager gave up widget token (no prio)"); //$NON-NLS-1$ + System.out_.println("StickyHoverManager gave up widget token (no prio)"); //$NON-NLS-1$ return true; } @@ -350,21 +350,21 @@ if (getCurrentInformationControl2() !is null) { if (getCurrentInformationControl2().isFocusControl()) { if cast(DEBUG) - System.out.println("StickyHoverManager kept widget token (focused)"); //$NON-NLS-1$ + System.out_.println("StickyHoverManager kept widget token (focused)"); //$NON-NLS-1$ return false; } else if (priority > WIDGET_PRIORITY) { hideInformationControl(); if cast(DEBUG) - System.out.println("StickyHoverManager gave up widget token (prio)"); //$NON-NLS-1$ + System.out_.println("StickyHoverManager gave up widget token (prio)"); //$NON-NLS-1$ return true; } else { if cast(DEBUG) - System.out.println("StickyHoverManager kept widget token (prio)"); //$NON-NLS-1$ + System.out_.println("StickyHoverManager kept widget token (prio)"); //$NON-NLS-1$ return false; } } if cast(DEBUG) - System.out.println("StickyHoverManager gave up widget token (no iControl)"); //$NON-NLS-1$ + System.out_.println("StickyHoverManager gave up widget token (no iControl)"); //$NON-NLS-1$ return true; }
--- a/dwtx/jface/internal/text/html/HTMLTextPresenter.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/internal/text/html/HTMLTextPresenter.d Sun Aug 24 03:23:46 2008 +0200 @@ -202,7 +202,7 @@ return ""; //$NON-NLS-1$ if (end < length -1) - buffer.delete(end + 1, length); + buffer.delete_(end + 1, length); else end= length; @@ -210,7 +210,7 @@ while (start < end && Character.isWhitespace(buffer.charAt(start))) ++ start; - buffer.delete(0, start); + buffer.delete_(0, start); presentation.setResultWindow(new Region(start, buffer.length())); return buffer.toString(); }
--- a/dwtx/jface/internal/text/revisions/RevisionPainter.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/internal/text/revisions/RevisionPainter.d Sun Aug 24 03:23:46 2008 +0200 @@ -1231,7 +1231,7 @@ */ private void onFocusLineChanged(int previousLine, int nextLine) { if cast(DEBUG) - System.out.println("line: " + previousLine + " > " + nextLine); //$NON-NLS-1$ //$NON-NLS-2$ + System.out_.println("line: " + previousLine + " > " + nextLine); //$NON-NLS-1$ //$NON-NLS-2$ fFocusLine= nextLine; RevisionRange region= getRange(nextLine); updateFocusRange(region); @@ -1255,7 +1255,7 @@ */ private void onFocusRangeChanged(RevisionRange previousRange, RevisionRange nextRange) { if cast(DEBUG) - System.out.println("range: " + previousRange + " > " + nextRange); //$NON-NLS-1$ //$NON-NLS-2$ + System.out_.println("range: " + previousRange + " > " + nextRange); //$NON-NLS-1$ //$NON-NLS-2$ fFocusRange= nextRange; Revision revision= nextRange is null ? null : nextRange.getRevision(); updateFocusRevision(revision); @@ -1274,7 +1274,7 @@ */ private void onFocusRevisionChanged(Revision previousRevision, Revision nextRevision) { if cast(DEBUG) - System.out.println("revision: " + previousRevision + " > " + nextRevision); //$NON-NLS-1$ //$NON-NLS-2$ + System.out_.println("revision: " + previousRevision + " > " + nextRevision); //$NON-NLS-1$ //$NON-NLS-2$ fFocusRevision= nextRevision; uninstallWheelHandler(); installWheelHandler();
--- a/dwtx/jface/text/AbstractDocument.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/AbstractDocument.d Sun Aug 24 03:23:46 2008 +0200 @@ -493,7 +493,7 @@ /* * @see dwtx.jface.text.IDocument#addPosition(java.lang.String, dwtx.jface.text.Position) */ - public void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException { + public void addPosition(String category, Position position) { if ((0 > position.offset) || (0 > position.length) || (position.offset + position.length > getLength())) throw new BadLocationException(); @@ -505,7 +505,7 @@ if (list is null) throw new BadPositionCategoryException(); list.add(computeIndexInPositionList(list, position.offset), position); - + List endPositions= cast(List) fEndPositions.get(category); if (endPositions is null) throw new BadPositionCategoryException(); @@ -598,7 +598,7 @@ protected int computeIndexInPositionList(List positions, int offset) { return computeIndexInPositionList(positions, offset, true); } - + /** * Computes the index in the list of positions at which a position with the given * position would be inserted. The position to insert is supposed to become the first @@ -676,7 +676,7 @@ /* * @see dwtx.jface.text.IDocument#computeIndexInCategory(java.lang.String, int) */ - public int computeIndexInCategory(String category, int offset) throws BadLocationException, BadPositionCategoryException { + public int computeIndexInCategory(String category, int offset) { if (0 > offset || offset > getLength()) throw new BadLocationException(); @@ -697,7 +697,7 @@ protected void fireDocumentPartitioningChanged() { if (fDocumentPartitioningListeners is null) return; - + Object[] listeners= fDocumentPartitioningListeners.getListeners(); for (int i= 0; i < listeners.length; i++) (cast(IDocumentPartitioningListener)listeners[i]).documentPartitioningChanged(this); @@ -718,7 +718,7 @@ protected void fireDocumentPartitioningChanged(IRegion region) { if (fDocumentPartitioningListeners is null) return; - + Object[] listeners= fDocumentPartitioningListeners.getListeners(); for (int i= 0; i < listeners.length; i++) { IDocumentPartitioningListener l= cast(IDocumentPartitioningListener)listeners[i]; @@ -785,7 +785,7 @@ Object[] listeners= fPrenotifiedDocumentListeners.getListeners(); for (int i= 0; i < listeners.length; i++) (cast(IDocumentListener)listeners[i]).documentAboutToBeChanged(event); - + listeners= fDocumentListeners.getListeners(); for (int i= 0; i < listeners.length; i++) (cast(IDocumentListener)listeners[i]).documentAboutToBeChanged(event); @@ -967,20 +967,20 @@ public String[] getLegalLineDelimiters() { return getTracker().getLegalLineDelimiters(); } - + /* * @see dwtx.jface.text.IDocumentExtension4#getDefaultLineDelimiter() * @since 3.1 */ public String getDefaultLineDelimiter() { - + String lineDelimiter= null; - + try { lineDelimiter= getLineDelimiter(0); } catch (BadLocationException x) { } - + if (lineDelimiter !is null) return lineDelimiter; @@ -996,14 +996,14 @@ break; } } - + if (lineDelimiter is null) lineDelimiter= delimiters[0]; - + return lineDelimiter; - + } - + /* * @see dwtx.jface.text.IDocumentExtension4#setInitialLineDelimiter(java.lang.String) * @since 3.1 @@ -1182,7 +1182,7 @@ if (c is null) throw new BadPositionCategoryException(); removeFromPositionsList(c, position, true); - + List endPositions= cast(List) fEndPositions.get(category); if (endPositions is null) throw new BadPositionCategoryException(); @@ -1199,14 +1199,14 @@ */ private void removeFromPositionsList(List positions, Position position, bool orderedByOffset) { int size= positions.size(); - + //Assume position is somewhere near it was before int index= computeIndexInPositionList(positions, orderedByOffset ? position.offset : position.offset + position.length - 1, orderedByOffset); if (index < size && positions.get(index) is position) { positions.remove(index); return; } - + int back= index - 1; int forth= index + 1; while (back >= 0 || forth < size) { @@ -1217,7 +1217,7 @@ } back--; } - + if (forth < size) { if (position is positions.get(forth)) { positions.remove(forth); @@ -1305,7 +1305,7 @@ /** * {@inheritDoc} - * + * * @since 3.4 */ public bool isLineInformationRepairNeeded(int offset, int length, String text) { @@ -1328,7 +1328,7 @@ public void set(String text) { set(text, getNextModificationStamp()); } - + /* * @see dwtx.jface.text.IDocumentExtension4#set(java.lang.String, long) * @since 3.1 @@ -1523,7 +1523,7 @@ * @see dwtx.jface.text.IDocumentExtension3#computeZeroLengthPartitioning(java.lang.String, int, int) * @since 3.0 */ - public ITypedRegion[] computePartitioning(String partitioning, int offset, int length, bool includeZeroLengthPartitions) throws BadLocationException, BadPartitioningException { + public ITypedRegion[] computePartitioning(String partitioning, int offset, int length, bool includeZeroLengthPartitions) { if ((0 > offset) || (0 > length) || (offset + length > getLength())) throw new BadLocationException(); @@ -1536,7 +1536,7 @@ checkStateOfPartitioner(partitioner, partitioning); return partitioner.computePartitioning(offset, length); } else if (DEFAULT_PARTITIONING.equals(partitioning)) - return new TypedRegion[] { new TypedRegion(offset, length, DEFAULT_CONTENT_TYPE) }; + return [ new TypedRegion(offset, length, DEFAULT_CONTENT_TYPE) ]; else throw new BadPartitioningException(); } @@ -1545,7 +1545,7 @@ * @see dwtx.jface.text.IDocumentExtension3#getZeroLengthContentType(java.lang.String, int) * @since 3.0 */ - public String getContentType(String partitioning, int offset, bool preferOpenPartitions) throws BadLocationException, BadPartitioningException { + public String getContentType(String partitioning, int offset, bool preferOpenPartitions) { if ((0 > offset) || (offset > getLength())) throw new BadLocationException(); @@ -1580,7 +1580,7 @@ if (partitioner !is null) return partitioner.getLegalContentTypes(); if (DEFAULT_PARTITIONING.equals(partitioning)) - return new String[] { DEFAULT_CONTENT_TYPE }; + return [ DEFAULT_CONTENT_TYPE ]; throw new BadPartitioningException(); } @@ -1588,7 +1588,7 @@ * @see dwtx.jface.text.IDocumentExtension3#getZeroLengthPartition(java.lang.String, int) * @since 3.0 */ - public ITypedRegion getPartition(String partitioning, int offset, bool preferOpenPartitions) throws BadLocationException, BadPartitioningException { + public ITypedRegion getPartition(String partitioning, int offset, bool preferOpenPartitions) { if ((0 > offset) || (offset > getLength())) throw new BadLocationException(); @@ -1682,8 +1682,8 @@ fDocumentRewriteSession= new DocumentRewriteSession(sessionType); - if cast(DEBUG) - System.out.println("AbstractDocument: Starting rewrite session: " + fDocumentRewriteSession); //$NON-NLS-1$ + if (DEBUG) + System.out_.println("AbstractDocument: Starting rewrite session: " + fDocumentRewriteSession); //$NON-NLS-1$ fireRewriteSessionChanged(new DocumentRewriteSessionEvent(this, fDocumentRewriteSession, DocumentRewriteSessionEvent.SESSION_START)); @@ -1729,8 +1729,8 @@ public void stopRewriteSession(DocumentRewriteSession session) { if (fDocumentRewriteSession is session) { - if cast(DEBUG) - System.out.println("AbstractDocument: Stopping rewrite session: " + session); //$NON-NLS-1$ + if (DEBUG) + System.out_.println("AbstractDocument: Stopping rewrite session: " + session); //$NON-NLS-1$ DocumentRewriteSessionType sessionType= session.getSessionType(); if (DocumentRewriteSessionType.SEQUENTIAL is sessionType || DocumentRewriteSessionType.STRICTLY_SEQUENTIAL is sessionType) @@ -1809,18 +1809,18 @@ if (session !is null) { extension.stopRewriteSession(session); - if cast(DEBUG) - System.out.println("AbstractDocument: Flushing rewrite session for partition type: " + partitioning); //$NON-NLS-1$ + if (DEBUG) + System.out_.println("AbstractDocument: Flushing rewrite session for partition type: " + partitioning); //$NON-NLS-1$ DocumentPartitioningChangedEvent event= new DocumentPartitioningChangedEvent(this); event.setPartitionChange(partitioning, 0, getLength()); fireDocumentPartitioningChanged(event); } } - + /** * Returns all positions of the given category that are inside the given region. - * + * * @param category the position category * @param offset the start position of the region, must be >= 0 * @param length the length of the region, must be >= 0 @@ -1844,18 +1844,18 @@ } else { documentPositions= getStartingPositions(category, offset, length); } - + ArrayList list= new ArrayList(documentPositions.size()); - + Position region= new Position(offset, length); - + for (Iterator iterator= documentPositions.iterator(); iterator.hasNext();) { Position position= cast(Position) iterator.next(); if (isWithinRegion(region, position, canStartBefore, canEndAfter)) { list.add(position); } } - + Position[] positions= new Position[list.size()]; list.toArray(positions); return positions; @@ -1866,14 +1866,14 @@ return positions; } else { Assert.isLegal(canEndAfter && !canStartBefore); - + List list= getStartingPositions(category, offset, length); Position[] positions= new Position[list.size()]; list.toArray(positions); return positions; } } - + /* * @since 3.4 */ @@ -1889,11 +1889,11 @@ return region.includes(start) && region.includes(start + position.getLength() - 1); } } - + /** * A list of positions in the given category with an offset inside the given * region. The order of the positions is arbitrary. - * + * * @param category the position category * @param offset the offset of the region * @param length the length of the region @@ -1905,17 +1905,17 @@ List positions= cast(List) fPositions.get(category); if (positions is null) throw new BadPositionCategoryException(); - + int indexStart= computeIndexInPositionList(positions, offset, true); int indexEnd= computeIndexInPositionList(positions, offset + length, true); - + return positions.subList(indexStart, indexEnd); } /** * A list of positions in the given category with an end position inside * the given region. The order of the positions is arbitrary. - * + * * @param category the position category * @param offset the offset of the region * @param length the length of the region @@ -1927,10 +1927,10 @@ List positions= cast(List) fEndPositions.get(category); if (positions is null) throw new BadPositionCategoryException(); - + int indexStart= computeIndexInPositionList(positions, offset, false); int indexEnd= computeIndexInPositionList(positions, offset + length, false); - + return positions.subList(indexStart, indexEnd); }
--- a/dwtx/jface/text/AbstractHoverInformationControlManager.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/AbstractHoverInformationControlManager.d Sun Aug 24 03:23:46 2008 +0200 @@ -305,7 +305,7 @@ fIsActive= false; if cast(DEBUG) - System.out.println("AbstractHoverInformationControlManager.Closer stopped"); //$NON-NLS-1$ + System.out_.println("AbstractHoverInformationControlManager.Closer stopped"); //$NON-NLS-1$ if (fSubjectControl !is null && !fSubjectControl.isDisposed()) { fSubjectControl.removeMouseListener(this); @@ -505,7 +505,7 @@ */ private void handleMouseMove(Event event) { // if cast(DEBUG) -// System.out.println("AbstractHoverInformationControl.Closer.handleMouseMove():" + event); //$NON-NLS-1$ +// System.out_.println("AbstractHoverInformationControl.Closer.handleMouseMove():" + event); //$NON-NLS-1$ if (!(event.widget instanceof Control)) return; @@ -519,7 +519,7 @@ IInformationControl iControl= getCurrentInformationControl(); if (!hasInformationControlReplacer() || !canMoveIntoInformationControl(iControl)) { - if (AbstractHoverInformationControlManager.this instanceof AnnotationBarHoverManager) { + if (this.outer instanceof AnnotationBarHoverManager) { if (getInternalAccessor().getAllowMouseExit()) return; } @@ -640,7 +640,7 @@ if (fIsComputing || fIsInRestartMode || (fSubjectControl !is null && !fSubjectControl.isDisposed() && fSubjectControl.getShell() !is fSubjectControl.getShell().getDisplay().getActiveShell())) { if cast(DEBUG) - System.out.println("AbstractHoverInformationControlManager...mouseHover: @ " + event.x + "/" + event.y + " : hover cancelled: fIsComputing= " + fIsComputing + ", fIsInRestartMode= " + fIsInRestartMode); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + System.out_.println("AbstractHoverInformationControlManager...mouseHover: @ " + event.x + "/" + event.y + " : hover cancelled: fIsComputing= " + fIsComputing + ", fIsInRestartMode= " + fIsInRestartMode); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ return; } @@ -965,11 +965,11 @@ bool cancelled= fReplacingDelayJob.cancel(); fReplacingDelayJob= null; // if cast(DEBUG) -// System.out.println("AbstractHoverInformationControlManager.cancelReplacingDelay(): cancelled=" + cancelled); //$NON-NLS-1$ +// System.out_.println("AbstractHoverInformationControlManager.cancelReplacingDelay(): cancelled=" + cancelled); //$NON-NLS-1$ return cancelled; } // if cast(DEBUG) -// System.out.println("AbstractHoverInformationControlManager.cancelReplacingDelay(): not delayed"); //$NON-NLS-1$ +// System.out_.println("AbstractHoverInformationControlManager.cancelReplacingDelay(): not delayed"); //$NON-NLS-1$ return true; } @@ -995,7 +995,7 @@ replaceInformationControl(false); } else { // if cast(DEBUG) -// System.out.println("AbstractHoverInformationControlManager.startReplaceInformationControl(): rescheduled"); //$NON-NLS-1$ +// System.out_.println("AbstractHoverInformationControlManager.startReplaceInformationControl(): rescheduled"); //$NON-NLS-1$ fReplacingDelayJob.schedule(HOVER_AUTO_REPLACING_DELAY); } } @@ -1023,7 +1023,7 @@ fReplacingDelayJob.setSystem(true); fReplacingDelayJob.setPriority(Job.INTERACTIVE); // if cast(DEBUG) -// System.out.println("AbstractHoverInformationControlManager.startReplaceInformationControl(): scheduled"); //$NON-NLS-1$ +// System.out_.println("AbstractHoverInformationControlManager.startReplaceInformationControl(): scheduled"); //$NON-NLS-1$ fReplacingDelayJob.schedule(HOVER_AUTO_REPLACING_DELAY); }
--- a/dwtx/jface/text/AbstractLineTracker.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/AbstractLineTracker.d Sun Aug 24 03:23:46 2008 +0200 @@ -180,7 +180,7 @@ /** * Tells whether this class is in debug mode. - * + * * @since 3.1 */ private static final bool DEBUG= false; @@ -198,7 +198,7 @@ /** * Representation of replace and set requests. - * + * * @since 3.1 */ protected static class Request { @@ -225,19 +225,19 @@ /** * The active rewrite session. - * + * * @since 3.1 */ private DocumentRewriteSession fActiveRewriteSession; /** * The list of pending requests. - * + * * @since 3.1 */ private List fPendingRequests; /** * The implementation that this tracker delegates to. - * + * * @since 3.2 */ private ILineTracker fDelegate= new class() ListLineTracker { @@ -364,7 +364,7 @@ /** * Converts the implementation to be a {@link TreeLineTracker} if it isn't yet. - * + * * @since 3.2 */ private void checkImplementation() { @@ -385,7 +385,7 @@ /** * Returns the information about the first delimiter found in the given text starting at the * given offset. - * + * * @param text the text to be searched * @param offset the offset in the given text * @return the information of the first found delimiter or <code>null</code> @@ -417,7 +417,7 @@ /** * Tells whether there's an active rewrite session. - * + * * @return <code>true</code> if there is an active rewrite session, <code>false</code> * otherwise * @since 3.1 @@ -428,13 +428,13 @@ /** * Flushes the active rewrite session. - * + * * @throws BadLocationException in case the recorded requests cannot be processed correctly * @since 3.1 */ protected final void flushRewriteSession() { - if cast(DEBUG) - System.out.println("AbstractLineTracker: Flushing rewrite session: " + fActiveRewriteSession); //$NON-NLS-1$ + if (DEBUG) + System.out_.println("AbstractLineTracker: Flushing rewrite session: " + fActiveRewriteSession); //$NON-NLS-1$ Iterator e= fPendingRequests.iterator(); @@ -452,7 +452,7 @@ /** * Checks the presence of a rewrite session and flushes it. - * + * * @throws BadLocationException in case flushing does not succeed * @since 3.1 */
--- a/dwtx/jface/text/DefaultDocumentAdapter.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/DefaultDocumentAdapter.d Sun Aug 24 03:23:46 2008 +0200 @@ -487,7 +487,7 @@ TextChangedEvent event= new TextChangedEvent(this); if (fTextChangeListeners !is null && fTextChangeListeners.size() > 0) { - Iterator e= new ArrayList(fTextChangeListeners).iterator(); + Iterator e= (new ArrayList(fTextChangeListeners)).iterator(); while (e.hasNext()) (cast(TextChangeListener) e.next()).textChanged(event); } @@ -504,7 +504,7 @@ TextChangedEvent event = new TextChangedEvent(this); if (fTextChangeListeners !is null && fTextChangeListeners.size() > 0) { - Iterator e= new ArrayList(fTextChangeListeners).iterator(); + Iterator e= (new ArrayList(fTextChangeListeners)).iterator(); while (e.hasNext()) (cast(TextChangeListener) e.next()).textSet(event); } @@ -532,7 +532,7 @@ event.newLineCount= (fEvent.fText is null ? 0 : document.computeNumberOfLines(fEvent.fText)); if (fTextChangeListeners !is null && fTextChangeListeners.size() > 0) { - Iterator e= new ArrayList(fTextChangeListeners).iterator(); + Iterator e= (new ArrayList(fTextChangeListeners)).iterator(); while (e.hasNext()) (cast(TextChangeListener) e.next()).textChanging(event); }
--- a/dwtx/jface/text/DefaultPositionUpdater.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/DefaultPositionUpdater.d Sun Aug 24 03:23:46 2008 +0200 @@ -346,7 +346,7 @@ if (fOffset < fPosition.offset && (fPosition.offset + fPosition.length < fOffset + fLength)) { - fPosition.delete(); + fPosition.delete_(); try { fDocument.removePosition(fCategory, fPosition);
--- a/dwtx/jface/text/DefaultUndoManager.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/DefaultUndoManager.d Sun Aug 24 03:23:46 2008 +0200 @@ -301,24 +301,24 @@ * @since 3.1 */ public bool canUndo() { - + if (isConnected() && isValid()) { IDocument doc= fTextViewer.getDocument(); if ( cast(IDocumentExtension4)doc ) { long docStamp= (cast(IDocumentExtension4)doc).getModificationStamp(); - + // Normal case: an undo is valid if its redo will restore document // to its current modification stamp - bool canUndo= docStamp is IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP || + bool canUndo= docStamp is IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP || docStamp is getRedoModificationStamp(); - - /* Special case to check if the answer is false. + + /* Special case to check if the answer is false. * If the last document change was empty, then the document's - * modification stamp was incremented but nothing was committed. + * modification stamp was incremented but nothing was committed. * The operation being queried has an older stamp. In this case only, * the comparison is different. A sequence of document changes that * include an empty change is handled correctly when a valid commit - * follows the empty change, but when #canUndo() is queried just after + * follows the empty change, but when #canUndo() is queried just after * an empty change, we must special case the check. The check is very * specific to prevent false positives. * see https://bugs.eclipse.org/bugs/show_bug.cgi?id=98245 @@ -329,17 +329,17 @@ !fCurrent.isValid() && // the current operation is not a valid document modification fCurrent.fUndoModificationStamp !is // the invalid current operation has a document stamp IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP) { - canUndo= fCurrent.fRedoModificationStamp is docStamp; + canUndo= fCurrent.fRedoModificationStamp is docStamp; } /* - * When the composite is the current command, it may hold the timestamp - * of a no-op change. We check this here rather than in an override of + * When the composite is the current command, it may hold the timestamp + * of a no-op change. We check this here rather than in an override of * canUndo() in CompoundTextCommand simply to keep all the special case checks * in one place. - */ + */ if (!canUndo && this is fHistory.getUndoOperation(fUndoContext) && // this is the latest operation - this instanceof CompoundTextCommand && + null !is cast(CompoundTextCommand)this && this is fCurrent && // this is the current operation this.fStart is -1 && // the current operation text is not valid fCurrent.fRedoModificationStamp !is IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP) { // but it has a redo stamp @@ -362,7 +362,7 @@ IDocument doc= fTextViewer.getDocument(); if ( cast(IDocumentExtension4)doc ) { long docStamp= (cast(IDocumentExtension4)doc).getModificationStamp(); - return docStamp is IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP || + return docStamp is IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP || docStamp is getUndoModificationStamp(); } // if there is no timestamp to check, simply return true per the 3.0.1 behavior @@ -410,7 +410,7 @@ } return IOperationHistory.OPERATION_INVALID_STATUS; } - + /** * Re-applies the change described by this command. * @@ -497,11 +497,11 @@ fPreservedText= fPreservedTextBuffer.toString(); } } - + /** * Attempt a commit of this command and answer true if a new * fCurrent was created as a result of the commit. - * + * * @return true if the command was committed and created a * new fCurrent, false if not. * @since 3.1 @@ -555,20 +555,20 @@ text.append('\''); return text.toString(); } - + /** * Return the undo modification stamp - * + * * @return the undo modification stamp for this command * @since 3.1 */ protected long getUndoModificationStamp() { return fUndoModificationStamp; } - + /** * Return the redo modification stamp - * + * * @return the redo modification stamp for this command * @since 3.1 */ @@ -610,7 +610,7 @@ */ public IStatus undo(IProgressMonitor monitor, IAdaptable uiInfo) { resetProcessChangeSate(); - + int size= fCommands.size(); if (size > 0) { @@ -707,10 +707,10 @@ return (fStart > -1 || fCommands.size() > 0); return false; } - + /** * Returns the undo modification stamp. - * + * * @return the undo modification stamp * @since 3.1 */ @@ -722,10 +722,10 @@ return fUndoModificationStamp; } - + /** * Returns the redo modification stamp. - * + * * @return the redo modification stamp * @since 3.1 */ @@ -886,11 +886,11 @@ public void run() { // if we are undoing/redoing a command we generated, then ignore // the document changes associated with this undo or redo. - if (event.getOperation() instanceof TextCommand) { + if (cast(TextCommand)event.getOperation() ) { if ( cast(TextViewer)fTextViewer ) (cast(TextViewer)fTextViewer).ignoreAutoEditStrategies(true); listenToTextChanges(false); - + // in the undo case only, make sure compounds are closed if (type is OperationHistoryEvent.ABOUT_TO_UNDO) { if (fFoldingIntoCompoundChange) { @@ -898,9 +898,9 @@ } } } else { - // the undo or redo has our context, but it is not one of + // the undo or redo has our context, but it is not one of // our commands. We will listen to the changes, but will - // reset the state that tracks the undo/redo history. + // reset the state that tracks the undo/redo history. commit(); fLastAddedCommand= null; } @@ -1070,7 +1070,7 @@ * @since 3.1 */ private void addToCommandStack(TextCommand command){ - if (!fFoldingIntoCompoundChange || command instanceof CompoundTextCommand) { + if (!fFoldingIntoCompoundChange || cast(CompoundTextCommand)command ) { fHistory.add(command); fLastAddedCommand= command; } @@ -1129,10 +1129,10 @@ } fCurrent.commit(); } - + /** * Reset processChange state. - * + * * @since 3.2 */ private void resetProcessChangeSate() { @@ -1179,7 +1179,7 @@ int length= insertedText.length(); int diff= modelEnd - modelStart; - + if (fCurrent.fUndoModificationStamp is IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP) fCurrent.fUndoModificationStamp= beforeChangeModificationStamp; @@ -1198,7 +1198,7 @@ fCurrent.fRedoModificationStamp= beforeChangeModificationStamp; if (fCurrent.attemptCommit()) fCurrent.fUndoModificationStamp= beforeChangeModificationStamp; - + fInserting= true; } if (fCurrent.fStart < 0) @@ -1302,7 +1302,7 @@ // because of typing or pasting whereby selection is not empty fCurrent.fRedoModificationStamp= beforeChangeModificationStamp; if (fCurrent.attemptCommit()) - fCurrent.fUndoModificationStamp= beforeChangeModificationStamp; + fCurrent.fUndoModificationStamp= beforeChangeModificationStamp; fCurrent.fStart= modelStart; fCurrent.fEnd= modelEnd;
--- a/dwtx/jface/text/DocumentRewriteSession.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/DocumentRewriteSession.d Sun Aug 24 03:23:46 2008 +0200 @@ -191,6 +191,6 @@ * @see java.lang.Object#toString() */ public String toString() { - return new StringBuffer().append(hashCode()).toString(); + return (new StringBuffer()).append(hashCode()).toString(); } }
--- a/dwtx/jface/text/FindReplaceDocumentAdapter.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/FindReplaceDocumentAdapter.d Sun Aug 24 03:23:46 2008 +0200 @@ -217,7 +217,7 @@ * The match offset from the last findReplace call. */ private int fFindReplaceMatchOffset; - + /** * Retain case mode */ @@ -350,7 +350,7 @@ int offset= fFindReplaceMatcher.start(); int length= fFindReplaceMatcher.group().length(); - if (fDocument instanceof IRepairableDocumentExtension + if (cast(IRepairableDocumentExtension)fDocument && (cast(IRepairableDocumentExtension)fDocument).isLineInformationRepairNeeded(offset, length, replaceText)) { String message= TextMessages.getString("FindReplaceDocumentAdapter.incompatibleLineDelimiter"); //$NON-NLS-1$ throw new PatternSyntaxException(message, replaceText, offset); @@ -403,7 +403,7 @@ /** * Substitutes \R in a regex find pattern with (?>\r\n?|\n) - * + * * @param findString the original find pattern * @return the transformed find pattern * @throws PatternSyntaxException if \R is added at an illegal position (e.g. in a character set) @@ -412,7 +412,7 @@ private String substituteLinebreak(String findString) { int length= findString.length(); StringBuffer buf= new StringBuffer(length); - + int inCharGroup= 0; int inBraces= 0; bool inQuote= false; @@ -424,25 +424,25 @@ if (! inQuote) inCharGroup++; break; - + case ']': buf.append(ch); if (! inQuote) inCharGroup--; break; - + case '{': buf.append(ch); if (! inQuote && inCharGroup is 0) inBraces++; break; - + case '}': buf.append(ch); if (! inQuote && inCharGroup is 0) inBraces--; break; - + case '\\': if (i + 1 < length) { char ch1= findString.charAt(i + 1); @@ -451,7 +451,7 @@ inQuote= false; buf.append(ch).append(ch1); i++; - + } else if (ch1 is 'R') { if (inCharGroup > 0 || inBraces > 0) { String msg= TextMessages.getString("FindReplaceDocumentAdapter.illegalLinebreak"); //$NON-NLS-1$ @@ -459,7 +459,7 @@ } buf.append("(?>\\r\\n?|\\n)"); //$NON-NLS-1$ i++; - + } else { if (ch1 is 'Q') { inQuote= true; @@ -471,20 +471,20 @@ buf.append(ch); } break; - + default: buf.append(ch); break; } - + } return buf.toString(); } - + /** * Interprets current Retain Case mode (all upper-case,all lower-case,capitalized or mixed) * and appends the character <code>ch</code> to <code>buf</code> after processing. - * + * * @param buf the output buffer * @param ch the character to process * @since 3.4 @@ -503,7 +503,7 @@ /** * Interprets escaped characters in the given replace pattern. - * + * * @param replaceText the replace pattern * @param foundText the found pattern to be replaced * @return a replace pattern with escaped characters substituted by the respective characters @@ -513,21 +513,21 @@ int length= replaceText.length(); bool inEscape= false; StringBuffer buf= new StringBuffer(length); - + /* every string we did not check looks mixed at first * so initialize retain case mode with RC_MIXED */ fRetainCaseMode= RC_MIXED; - + for (int i= 0; i < length; i++) { final char ch= replaceText.charAt(i); if (inEscape) { i= interpretReplaceEscape(ch, i, buf, replaceText, foundText); inEscape= false; - + } else if (ch is '\\') { inEscape= true; - + } else if (ch is '$') { buf.append(ch); @@ -553,7 +553,7 @@ interpretRetainCase(buf, ch); } } - + if (inEscape) { // '\' as last character is invalid, but we still add it to get an error message buf.append('\\'); @@ -564,7 +564,7 @@ /** * Interprets the escaped character <code>ch</code> at offset <code>i</code> * of the <code>replaceText</code> and appends the interpretation to <code>buf</code>. - * + * * @param ch the escaped character * @param i the offset * @param buf the output buffer @@ -614,7 +614,7 @@ } } break; - + case '1': case '2': case '3': @@ -637,7 +637,7 @@ throw new PatternSyntaxException(msg, replaceText, i); } break; - + case 'x': if (i + 2 < length) { int parsedInt; @@ -656,7 +656,7 @@ throw new PatternSyntaxException(msg, replaceText, i); } break; - + case 'u': if (i + 4 < length) { int parsedInt; @@ -675,7 +675,7 @@ throw new PatternSyntaxException(msg, replaceText, i); } break; - + case 'C': if(foundText.toUpperCase().equals(foundText)) // is whole match upper-case? fRetainCaseMode= RC_UPPER; @@ -703,29 +703,29 @@ * @return the string converted to a regex pattern */ private String asRegPattern(String string) { - StringBuffer out= new StringBuffer(string.length()); + StringBuffer out_= new StringBuffer(string.length()); bool quoting= false; for (int i= 0, length= string.length(); i < length; i++) { char ch= string.charAt(i); if (ch is '\\') { if (quoting) { - out.append("\\E"); //$NON-NLS-1$ + out_.append("\\E"); //$NON-NLS-1$ quoting= false; } - out.append("\\\\"); //$NON-NLS-1$ + out_.append("\\\\"); //$NON-NLS-1$ continue; } if (!quoting) { - out.append("\\Q"); //$NON-NLS-1$ + out_.append("\\Q"); //$NON-NLS-1$ quoting= true; } - out.append(ch); + out_.append(ch); } if (quoting) - out.append("\\E"); //$NON-NLS-1$ + out_.append("\\E"); //$NON-NLS-1$ - return out.toString(); + return out_.toString(); } /**
--- a/dwtx/jface/text/Position.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/Position.d Sun Aug 24 03:23:46 2008 +0200 @@ -228,7 +228,7 @@ /** * Marks this position as deleted. */ - public void delete() { + public void delete_() { isDeleted= true; }
--- a/dwtx/jface/text/RegExMessages.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/RegExMessages.d Sun Aug 24 03:23:46 2008 +0200 @@ -157,20 +157,24 @@ import dwt.dwthelper.utils; -import java.util.MissingResourceException; -import java.util.ResourceBundle; +import dwt.dwthelper.MissingResourceException; +import dwt.dwthelper.ResourceBundle; /** * RegEx messages. Helper class to get NLSed messages. - * + * * @since 3.4 */ final class RegExMessages { - - private static final String RESOURCE_BUNDLE= RegExMessages.class.getName(); - private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE); + + //private static const String RESOURCE_BUNDLE= RegExMessages.class.getName(); + private static ResourceBundle fgResourceBundle;//= ResourceBundle.getBundle(RESOURCE_BUNDLE); + static this() { + fgResourceBundle = ResourceBundle.getBundle( + getImportData!("dwtx.jface.text.RegExMessages.properties")); + } private this() { // Do not instantiate @@ -180,7 +184,7 @@ try { return fgResourceBundle.getString(key); } catch (MissingResourceException e) { - return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$ + return "!" ~ key ~ "!";//$NON-NLS-2$ //$NON-NLS-1$ } }
--- a/dwtx/jface/text/RewriteSessionEditProcessor.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/RewriteSessionEditProcessor.d Sun Aug 24 03:23:46 2008 +0200 @@ -169,7 +169,7 @@ /** * A text edit processor that brackets the application of edits into a document rewrite session. - * + * * @since 3.3 */ public final class RewriteSessionEditProcessor : TextEditProcessor { @@ -210,7 +210,7 @@ /** * Constructs a new edit processor for the given document. - * + * * @param document the document to manipulate * @param root the root of the text edit tree describing the modifications. By passing a text * edit a a text edit processor the ownership of the edit is transfered to the text edit @@ -221,11 +221,11 @@ public this(IDocument document, TextEdit root, int style) { super(document, root, style); } - + /* * @see dwtx.text.edits.TextEditProcessor#performEdits() */ - public UndoEdit performEdits() throws MalformedTreeException, BadLocationException { + public UndoEdit performEdits() { IDocument document= getDocument(); if (!( cast(IDocumentExtension4)document )) return super.performEdits(); @@ -245,7 +245,7 @@ /** * Returns <code>true</code> if the passed edit is considered <em>large</em>, * <code>false</code> otherwise. - * + * * @param edit the edit to check * @return <code>true</code> if <code>edit</code> is considered <em>large</em>, * <code>false</code> otherwise
--- a/dwtx/jface/text/TextMessages.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/TextMessages.d Sun Aug 24 03:23:46 2008 +0200 @@ -4,7 +4,7 @@ * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html - * + * * Contributors: * IBM Corporation - initial API and implementation * Port to the D programming language: @@ -164,13 +164,19 @@ /** * Helper class to get NLSed messages. - * + * * @since 3.4 */ class TextMessages { - private static final String BUNDLE_NAME= "dwtx.jface.text.TextMessages"; //$NON-NLS-1$ +// private static final String BUNDLE_NAME= "dwtx.jface.text.TextMessages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE;//= ResourceBundle.getBundle(BUNDLE_NAME); - private static final ResourceBundle RESOURCE_BUNDLE= ResourceBundle.getBundle(BUNDLE_NAME); + static this() { + RESOURCE_BUNDLE = ResourceBundle.getBundle( + getImportData!("dwtx.jface.text.TextMessages.properties")); + } + private this() { } @@ -179,15 +185,11 @@ try { return RESOURCE_BUNDLE.getString(key); } catch (MissingResourceException e) { - return '!' + key + '!'; + return '!' ~ key ~ '!'; } } - - public static String getFormattedString(String key, Object arg) { - return getFormattedString(key, new Object[] { arg }); - } - public static String getFormattedString(String key, Object[] args) { + public static String getFormattedString(String key, Object[] args...) { return MessageFormat.format(getString(key), args); }
--- a/dwtx/jface/text/TextPresentation.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/TextPresentation.d Sun Aug 24 03:23:46 2008 +0200 @@ -572,55 +572,55 @@ } /** - * Applies the template's style to the target. + * Applies the template_'s style to the target. * - * @param template the style range to be used as template - * @param target the style range to which to apply the template + * @param template_ the style range to be used as template_ + * @param target the style range to which to apply the template_ * @param merge <code>true</code> if the style should be merged instead of replaced * @since 3.0 */ - private void applyStyle(StyleRange template, StyleRange target, bool merge) { + private void applyStyle(StyleRange template_, StyleRange target, bool merge) { if (merge) { - if (template.font !is null) - target.font= template.font; - target.fontStyle|= template.fontStyle; - - if (template.metrics !is null) - target.metrics= template.metrics; - - if (template.foreground !is null) - target.foreground= template.foreground; - if (template.background !is null) - target.background= template.background; - - target.strikeout|= template.strikeout; - if (template.strikeoutColor !is null) - target.strikeoutColor= template.strikeoutColor; - - target.underline|= template.underline; - if (template.underlineStyle !is DWT.NONE) - target.underlineStyle= template.underlineStyle; - if (template.underlineColor !is null) - target.underlineColor= template.underlineColor; + if (template_.font !is null) + target.font= template_.font; + target.fontStyle|= template_.fontStyle; + + if (template_.metrics !is null) + target.metrics= template_.metrics; + + if (template_.foreground !is null) + target.foreground= template_.foreground; + if (template_.background !is null) + target.background= template_.background; - if (template.borderStyle !is DWT.NONE) - target.borderStyle= template.borderStyle; - if (template.borderColor !is null) - target.borderColor= template.borderColor; + target.strikeout|= template_.strikeout; + if (template_.strikeoutColor !is null) + target.strikeoutColor= template_.strikeoutColor; + + target.underline|= template_.underline; + if (template_.underlineStyle !is DWT.NONE) + target.underlineStyle= template_.underlineStyle; + if (template_.underlineColor !is null) + target.underlineColor= template_.underlineColor; + + if (template_.borderStyle !is DWT.NONE) + target.borderStyle= template_.borderStyle; + if (template_.borderColor !is null) + target.borderColor= template_.borderColor; } else { - target.font= template.font; - target.fontStyle= template.fontStyle; - target.metrics= template.metrics; - target.foreground= template.foreground; - target.background= template.background; - target.strikeout= template.strikeout; - target.strikeoutColor= template.strikeoutColor; - target.underline= template.underline; - target.underlineStyle= template.underlineStyle; - target.underlineColor= template.underlineColor; - target.borderStyle= template.borderStyle; - target.borderColor= template.borderColor; + target.font= template_.font; + target.fontStyle= template_.fontStyle; + target.metrics= template_.metrics; + target.foreground= template_.foreground; + target.background= template_.background; + target.strikeout= template_.strikeout; + target.strikeoutColor= template_.strikeoutColor; + target.underline= template_.underline; + target.underlineStyle= template_.underlineStyle; + target.underlineColor= template_.underlineColor; + target.borderStyle= template_.borderStyle; + target.borderColor= template_.borderColor; } }
--- a/dwtx/jface/text/TextViewer.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/TextViewer.d Sun Aug 24 03:23:46 2008 +0200 @@ -263,7 +263,7 @@ * @since 3.4 */ private static final int TEXT_HOVER_HEIGHT_CHARS= 12; //used to be 10 (text font) - + /** * Represents a replace command that brings the text viewer's text widget * back in synchronization with text viewer's document after the document @@ -309,8 +309,8 @@ } catch (BadLocationException x) { preservedText= null; - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.WidgetCommand.setEvent")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.WidgetCommand.setEvent")); //$NON-NLS-1$ } } else preservedText= null; @@ -343,12 +343,12 @@ public void getNextOffset(MovementEvent event) { if (event.movement !is DWT.MOVEMENT_WORD_END) return; - - if cast(TRACE_DOUBLE_CLICK) { - System.out.println("\n+++"); //$NON-NLS-1$ + + if (TRACE_DOUBLE_CLICK) { + System.out_.println("\n+++"); //$NON-NLS-1$ print(event); } - + if (fDoubleClickSelection !is null) { if (fDoubleClickSelection.x <= event.offset && event.offset <= fDoubleClickSelection.y) event.newOffset= fDoubleClickSelection.y; @@ -362,20 +362,20 @@ public void getPreviousOffset(MovementEvent event) { if (event.movement !is DWT.MOVEMENT_WORD_START) return; - - if cast(TRACE_DOUBLE_CLICK) { - System.out.println("\n---"); //$NON-NLS-1$ + + if (TRACE_DOUBLE_CLICK) { + System.out_.println("\n---"); //$NON-NLS-1$ print(event); } if (fDoubleClickSelection is null) { ITextDoubleClickStrategy s= cast(ITextDoubleClickStrategy) selectContentTypePlugin(getSelectedRange().x, fDoubleClickStrategies); if (s !is null) { StyledText textWidget= getTextWidget(); - s.doubleClicked(TextViewer.this); + s.doubleClicked(this.outer); fDoubleClickSelection= textWidget.getSelection(); event.newOffset= fDoubleClickSelection.x; - if cast(TRACE_DOUBLE_CLICK) - System.out.println("- setting selection: x= " + fDoubleClickSelection.x + ", y= " + fDoubleClickSelection.y); //$NON-NLS-1$ //$NON-NLS-2$ + if (TRACE_DOUBLE_CLICK) + System.out_.println("- setting selection: x= " + fDoubleClickSelection.x + ", y= " + fDoubleClickSelection.y); //$NON-NLS-1$ //$NON-NLS-2$ } } else { if (fDoubleClickSelection.x <= event.offset && event.offset <= fDoubleClickSelection.y) @@ -386,16 +386,16 @@ /** * Print trace info about <code>MovementEvent</code>. - * + * * @param e the event to print * @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("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$ } /** @@ -1089,16 +1089,16 @@ * @see IFindReplaceTargetExtension#setScope(IRegion) * @since 2.0 */ - public void setScope(IRegion scope) { + public void setScope(IRegion scope_) { if (fRange !is null) fRange.uninstall(); - if (scope is null) { + if (scope_ is null) { fRange= null; return; } - fRange= new FindReplaceRange(scope); + fRange= new FindReplaceRange(scope_); fRange.setHighlightColor(fScopeHighlightColor); fRange.install(); } @@ -1247,7 +1247,7 @@ fStateMask= stateMask; } } - + /** * Captures and remembers the viewer state (selection and visual position). {@link TextViewer.ViewerState} * instances are normally used once and then discarded, similar to the following snippet: @@ -1256,7 +1256,7 @@ * doStuff(); // operation that may call setRedraw() and perform complex document modifications * state.restore(true); // restore the remembered state * </pre> - * + * * @since 3.3 */ private final class ViewerState { @@ -1289,7 +1289,7 @@ /** * Returns the normalized selection, i.e. the the selection length is always non-negative. - * + * * @return the normalized selection */ public Point getSelection() { @@ -1300,7 +1300,7 @@ /** * Updates the selection. - * + * * @param offset the new selection offset * @param length the new selection length */ @@ -1315,7 +1315,7 @@ /** * Restores the state and disconnects it from the document. The selection is no longer * tracked after this call. - * + * * @param restoreViewport <code>true</code> to restore both selection and viewport, * <code>false</code> to only restore the selection */ @@ -1363,7 +1363,7 @@ /** * Remembers the viewer state. - * + * * @param document the document to remember the state of */ private void connect(IDocument document) { @@ -1409,7 +1409,7 @@ /** * Updates a position with the given information and clears its deletion state. - * + * * @param position the position to update * @param offset the new selection offset * @param length the new selection length @@ -1424,14 +1424,14 @@ /** * Returns the document line to keep visually stable. If the caret line is (partially) * visible, it is returned, otherwise the topmost (partially) visible line is returned. - * + * * @return the visually stable line of this viewer state */ private int getStableLine() { int stableLine; // the model line that we try to keep stable int caretLine= getTextWidget().getLineAtOffset(getTextWidget().getCaretOffset()); if (caretLine < JFaceTextUtil.getPartialTopIndex(getTextWidget()) || caretLine > JFaceTextUtil.getPartialBottomIndex(getTextWidget())) { - stableLine= JFaceTextUtil.getPartialTopIndex(TextViewer.this); + stableLine= JFaceTextUtil.getPartialTopIndex(this.outer); } else { stableLine= widgetLine2ModelLine(caretLine); } @@ -1441,7 +1441,7 @@ /** * Returns <code>true</code> if the viewer state is being tracked, <code>false</code> * otherwise. - * + * * @return the tracking state */ private bool isConnected() { @@ -1469,7 +1469,7 @@ /** * Internal cursor listener i.e. aggregation of mouse and key listener. - * + * * @since 3.0 */ private class CursorListener : KeyListener, MouseListener { @@ -1563,8 +1563,8 @@ } } } - - + + /** * Identifies the scrollbars as originators of a view port change. */ @@ -1843,7 +1843,7 @@ protected void createControl(Composite parent, int styles) { fTextWidget= createTextWidget(parent, styles); - + // Support scroll page upon MOD1+MouseWheel fTextWidget.addListener(DWT.MouseWheel, new class() Listener { @@ -1862,7 +1862,7 @@ updateViewportListeners(INTERNAL); } }); - + fTextWidget.addDisposeListener( new class() DisposeListener { public void widgetDisposed(DisposeEvent e) { @@ -1958,7 +1958,7 @@ * control has been disposed. */ protected void handleDispose() { - + setDocument(null); if (fPaintManager !is null) { @@ -2047,7 +2047,7 @@ fVisibleDocument= null; fDocument= null; fScroller= null; - + fTextWidget= null; } @@ -2085,7 +2085,7 @@ * {@link ITextViewerExtension2#removeAutoEditStrategy(IAutoEditStrategy, String)} instead */ public void setAutoIndentStrategy(IAutoIndentStrategy strategy, String contentType) { - setAutoEditStrategies(new IAutoEditStrategy[] { strategy }, contentType); + setAutoEditStrategies([ strategy ], contentType); } /** @@ -2275,7 +2275,7 @@ if (fTextHovers is null) return; - Iterator iter= new HashSet(fTextHovers.keySet()).iterator(); + Iterator iter= (new HashSet(fTextHovers.keySet())).iterator(); while (iter.hasNext()) { TextHoverKey key= cast(TextHoverKey)iter.next(); if (key.fContentType.equals(contentType)) @@ -2319,8 +2319,8 @@ } return cast(ITextHover) textHover; } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.selectContentTypePlugin")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.selectContentTypePlugin")); //$NON-NLS-1$ } return null; } @@ -2347,7 +2347,7 @@ /** * {@inheritDoc} - * + * * @since 3.4 */ public void setHoverEnrichMode(ITextViewerExtension8.EnrichMode mode) { @@ -2456,7 +2456,7 @@ IRegion widgetSelection= modelRange2ClosestWidgetRange(new Region(selectionOffset, selectionLength)); if (widgetSelection !is null) { - int[] selectionRange= new int[] { widgetSelection.getOffset(), widgetSelection.getLength() }; + int[] selectionRange= [ widgetSelection.getOffset(), widgetSelection.getLength() ]; validateSelectionRange(selectionRange); if (selectionRange[0] >= 0) { fTextWidget.setSelectionRange(selectionRange[0], selectionRange[1]); @@ -3128,7 +3128,7 @@ * accurate if the widget does not use variable line heights - for that reason, clients should * not use this method any longer and use the client area height of the text widget to find out * how much content fits into it. - * + * * @return the view port height in lines * @deprecated as of 3.2 */ @@ -3148,7 +3148,7 @@ if (fTextWidget is null) return -1; - + int widgetBottom= JFaceTextUtil.getBottomIndex(fTextWidget); return widgetLine2ModelLine(widgetBottom); } @@ -3164,8 +3164,8 @@ top= getVisibleDocument().getLineOffset(top); return widgetOffset2ModelOffset(top); } catch (BadLocationException ex) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.getTopIndexStartOffset")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.getTopIndexStartOffset")); //$NON-NLS-1$ } } @@ -3189,8 +3189,8 @@ return Math.min(coverageEndOffset, bottomEndOffset); } catch (BadLocationException ex) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.getBottomIndexEndOffset")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.getBottomIndexEndOffset")); //$NON-NLS-1$ return getDocument().getLength() - 1; } } @@ -3207,7 +3207,7 @@ IRegion widgetRange= modelRange2ClosestWidgetRange(modelRange); if (widgetRange !is null) { - int[] range= new int[] { widgetRange.getOffset(), widgetRange.getLength() }; + int[] range= [ widgetRange.getOffset(), widgetRange.getLength() ]; validateSelectionRange(range); if (range[0] >= 0) internalRevealRange(range[0], range[0] + range[1]); @@ -3241,7 +3241,7 @@ // scroll vertically int bottom= JFaceTextUtil.getBottomIndex(fTextWidget); int lines= bottom - top; - + // if the widget is not scrollable as it is displaying the entire content // setTopIndex won't have any effect. @@ -3342,7 +3342,7 @@ Rectangle bounds= fTextWidget.getTextBounds(start, end - 1); return new Region(bounds.x, bounds.width); } - + return new Region(fTextWidget.getLocationAtOffset(start).x, 0); } @@ -3481,7 +3481,7 @@ */ protected void setVisibleDocument(IDocument document) { - if (fVisibleDocument is document && fVisibleDocument instanceof ChildDocument) { + if (fVisibleDocument is document && cast(ChildDocument)fVisibleDocument ) { // optimization for new child documents return; } @@ -3659,8 +3659,8 @@ try { return selectContentTypePlugin(TextUtilities.getContentType(getDocument(), getDocumentPartitioning(), offset, true), plugins); } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.selectContentTypePlugin")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.selectContentTypePlugin")); //$NON-NLS-1$ } return null; } @@ -3692,9 +3692,9 @@ protected void customizeDocumentCommand(DocumentCommand command) { if (isIgnoringAutoEditStrategies()) return; - + IDocument document= getDocument(); - + if (fTabsToSpacesConverter !is null) fTabsToSpacesConverter.customizeDocumentCommand(document, command); @@ -3778,8 +3778,8 @@ } } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.verifyText")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.verifyText")); //$NON-NLS-1$ } finally { @@ -3969,7 +3969,7 @@ * @param delete <code>true</code> if the region should be deleted rather than copied. * @since 2.0 */ - protected void copyMarkedRegion(bool delete) { + protected void copyMarkedRegion(bool delete_) { if (fTextWidget is null) return; @@ -3984,7 +3984,7 @@ else fTextWidget.setSelection(widgetMarkOffset, selection.x); - if (delete) { + if (delete_) { fTextWidget.cut(); } else { fTextWidget.copy(); @@ -4077,8 +4077,8 @@ return (offset > region.getOffset() + region.getLength() ? -1 : startLine + 1); } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.getFirstCompleteLineOfRegion")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.getFirstCompleteLineOfRegion")); //$NON-NLS-1$ } return -1; @@ -4133,7 +4133,7 @@ protected void shift(bool useDefaultPrefixes, bool right, bool ignoreWhitespace) { if (fUndoManager !is null) fUndoManager.beginCompoundChange(); - + IDocument d= getDocument(); Map partitioners= null; DocumentRewriteSession rewriteSession= null; @@ -4179,14 +4179,14 @@ } } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.shift_1")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.shift_1")); //$NON-NLS-1$ } finally { if (partitioners !is null) TextUtilities.addDocumentPartitioners(d, partitioners); - + if ( cast(IDocumentExtension4)d ) { IDocumentExtension4 extension= cast(IDocumentExtension4) d; extension.stopRewriteSession(rewriteSession); @@ -4219,8 +4219,8 @@ } } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println("TextViewer.shiftRight: BadLocationException"); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println("TextViewer.shiftRight: BadLocationException"); //$NON-NLS-1$ } } @@ -4285,8 +4285,8 @@ } } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println("TextViewer.shiftLeft: BadLocationException"); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println("TextViewer.shiftLeft: BadLocationException"); //$NON-NLS-1$ } } @@ -4306,7 +4306,7 @@ /** * {@inheritDoc} - * + * * @since 3.4 */ public void print(StyledTextPrintOptions options) { @@ -4317,12 +4317,12 @@ final Printer printer= new Printer(data); final Runnable styledTextPrinter= fTextWidget.print(printer, options); - Thread printingThread= new Thread("Printing") { //$NON-NLS-1$ - public void run() { - styledTextPrinter.run(); - printer.dispose(); - } - }; + void threadrun() { + styledTextPrinter.run(); + printer.dispose(); + } + Thread printingThread= new Thread( &threadrun ); + printingThread.name = "Printing"; //$NON-NLS-1$ printingThread.start(); } } @@ -4419,8 +4419,8 @@ } } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.findAndSelect")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.findAndSelect")); //$NON-NLS-1$ } return -1; @@ -4497,8 +4497,8 @@ } catch (BadLocationException x) { - if cast(TRACE_ERRORS) - System.out.println(JFaceTextMessages.getString("TextViewer.error.bad_location.findAndSelect")); //$NON-NLS-1$ + if (TRACE_ERRORS) + System.out_.println(JFaceTextMessages.getString("TextViewer.error.bad_location.findAndSelect")); //$NON-NLS-1$ } return -1; @@ -4552,7 +4552,7 @@ range= modelStyleRange2WidgetStyleRange(range); if (range !is null) fTextWidget.setStyleRange(range); - + ArrayList ranges= new ArrayList(presentation.getDenumerableRanges()); Iterator e= presentation.getNonDefaultStyleRangeIterator(); while (e.hasNext()) { @@ -4561,10 +4561,10 @@ if (range !is null) ranges.add(range); } - + if (!ranges.isEmpty()) fTextWidget.replaceStyleRanges(0, 0, (StyleRange[])ranges.toArray(new StyleRange[ranges.size()])); - + } else { IRegion region= modelRange2WidgetRange(presentation.getCoverage()); if (region is null) @@ -5451,11 +5451,11 @@ public void setHyperlinkDetectors(IHyperlinkDetector[] hyperlinkDetectors, int eventStateMask) { if (fHyperlinkDetectors !is null) { for (int i= 0; i < fHyperlinkDetectors.length; i++) { - if (fHyperlinkDetectors[i] instanceof IHyperlinkDetectorExtension) + if (cast(IHyperlinkDetectorExtension)fHyperlinkDetectors[i] ) (cast(IHyperlinkDetectorExtension)fHyperlinkDetectors[i]).dispose(); } } - + bool enable= hyperlinkDetectors !is null && hyperlinkDetectors.length > 0; fHyperlinkStateMask= eventStateMask; fHyperlinkDetectors= hyperlinkDetectors;
--- a/dwtx/jface/text/TextViewerHoverManager.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/TextViewerHoverManager.d Sun Aug 24 03:23:46 2008 +0200 @@ -301,8 +301,7 @@ return; } - fThread= new Thread("Text Viewer Hover Presenter") { //$NON-NLS-1$ - public void run() { + void threadrun() { // http://bugs.eclipse.org/bugs/show_bug.cgi?id=17693 bool hasFinished= false; try { @@ -349,9 +348,10 @@ } } } - }; + fThread= new Thread( &threadrun ); + fThread.name = "Text Viewer Hover Presenter"; //$NON-NLS-1$ - fThread.setDaemon(true); + fThread.isDaemon(true); fThread.setPriority(Thread.MIN_PRIORITY); synchronized (fMutex) { fTextViewer.addTextListener(fStopper); @@ -429,8 +429,8 @@ if (fTextViewer !is null && fTextViewer.requestWidgetToken(this, WIDGET_PRIORITY)) super.showInformationControl(subjectArea); else - if cast(DEBUG) - System.out.println("TextViewerHoverManager#showInformationControl(..) did not get widget token"); //$NON-NLS-1$ + if (DEBUG) + System.out_.println("TextViewerHoverManager#showInformationControl(..) did not get widget token"); //$NON-NLS-1$ } /* @@ -445,7 +445,7 @@ fTextViewer.releaseWidgetToken(this); } } - + /* * @see dwtx.jface.text.AbstractInformationControlManager#replaceInformationControl(bool) * @since 3.4 @@ -497,15 +497,15 @@ public bool setFocus(IWidgetTokenOwner owner) { if (! hasInformationControlReplacer()) return false; - + IInformationControl iControl= getCurrentInformationControl(); if (canReplace(iControl)) { if (cancelReplacingDelay()) replaceInformationControl(true); - + return true; } - + return false; }
--- a/dwtx/jface/text/TreeLineTracker.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/TreeLineTracker.d Sun Aug 24 03:23:46 2008 +0200 @@ -185,51 +185,51 @@ * log n)</i> where <var>n</var> is the number of lines in the document and <var>l</var> is the * sum of the number of removed, added or modified lines. * </p> - * + * * @since 3.2 */ abstract class TreeLineTracker : ILineTracker { /* * Differential Balanced Binary Tree - * + * * Assumption: lines cannot overlap => there exists a total ordering of the lines by their offset, * which is the same as the ordering by line number - * + * * Base idea: store lines in a binary search tree * - the key is the line number / line offset * -> lookup_line is O(log n) * -> lookup_offset is O(log n) - * - a change in a line somewhere will change any succeeding line numbers / line offsets + * - a change in a line somewhere will change any succeeding line numbers / line offsets * -> replace is O(n) - * + * * Differential tree: instead of storing the key (line number, line offset) directly, every node * stores the difference between its key and its parent's key * - the sort key is still the line number / line offset, but it remains "virtual" * - inserting a node (a line) really increases the virtual key of all succeeding nodes (lines), but this - * fact will not be realized in the key information encoded in the nodes. + * fact will not be realized in the key information encoded in the nodes. * -> any change only affects the nodes in the node's parent chain, although more bookkeeping - * has to be done when changing a node or balancing the tree + * has to be done when changing a node or balancing the tree * -> replace is O(log n) - * -> line offsets and line numbers have to be computed when walking the tree from the root / + * -> line offsets and line numbers have to be computed when walking the tree from the root / * from a node * -> still O(log n) - * + * * The balancing algorithm chosen does not depend on the differential tree property. An AVL tree * implementation has been chosen for simplicity. */ - + /* * Turns assertions on/off. Don't make this a a debug option for performance reasons - this way * the compiler can optimize the asserts away. */ private static final bool ASSERT= false; - + /** * The empty delimiter of the last line. The last line and only the last line must have this * zero-length delimiter. */ private static final String NO_DELIM= ""; //$NON-NLS-1$ - + /** * A node represents one line. Its character and line offsets are 0-based and relative to the * subtree covered by the node. All nodes under the left subtree represent lines before, all @@ -262,7 +262,7 @@ Node right; /** The balance factor. */ byte balance; - + /* * @see java.lang.Object#toString() */ @@ -292,7 +292,7 @@ /** * Returns the pure (without the line delimiter) length of this line. - * + * * @return the pure line length */ int pureLength() { @@ -310,10 +310,10 @@ */ protected this() { } - + /** * Package visible constructor for creating a tree tracker from a list tracker. - * + * * @param tracker */ this(ListLineTracker tracker) { @@ -321,7 +321,7 @@ final int n= lines.size(); if (n is 0) return; - + Line line= cast(Line) lines.get(0); String delim= line.delimiter; if (delim is null) @@ -329,7 +329,7 @@ int length= line.length; fRoot= new Node(length, delim); Node node= fRoot; - + for (int i= 1; i < n; i++) { line= cast(Line) lines.get(i); delim= line.delimiter; @@ -338,11 +338,11 @@ length= line.length; node= insertAfter(node, length, delim); } - + if (node.delimiter !is NO_DELIM) insertAfter(node, 0, NO_DELIM); - - if cast(ASSERT) checkTree(); + + if (ASSERT) checkTree(); } /** @@ -360,7 +360,7 @@ * <p> * <code>offset= line.offset + line.length</code>. * </p> - * + * * @param offset a document offset * @return the line starting at or containing <code>offset</code> * @throws BadLocationException if the offset is invalid @@ -372,11 +372,11 @@ int remaining= offset; Node node= fRoot; int line= 0; - + while (true) { if (node is null) fail(offset); - + if (remaining < node.offset) { node= node.left; } else { @@ -391,14 +391,14 @@ node= node.right; } } - + return node; } /** * Returns the line number for the given offset. If the offset is between two lines, the line * starting at <code>offset</code> is returned. The last line is returned if * <code>offset</code> is equal to the document length. - * + * * @param offset a document offset * @return the line number starting at or containing <code>offset</code> * @throws BadLocationException if the offset is invalid @@ -410,11 +410,11 @@ int remaining= offset; Node node= fRoot; int line= 0; - + while (true) { if (node is null) fail(offset); - + if (remaining < node.offset) { node= node.left; } else { @@ -429,11 +429,11 @@ } } } - + /** * Returns the node (line) with the given line number. Note that the last line is always * incomplete, i.e. has the {@link #NO_DELIM} delimiter. - * + * * @param line a line number * @return the line with the given line number * @throws BadLocationException if the line is invalid @@ -445,11 +445,11 @@ int remaining= line; int offset= 0; Node node= fRoot; - + while (true) { if (node is null) fail(line); - + if (remaining is node.line) break; if (remaining < node.line) { @@ -460,14 +460,14 @@ node= node.right; } } - + return node; } - + /** * Returns the offset for the given line number. Note that the * last line is always incomplete, i.e. has the {@link #NO_DELIM} delimiter. - * + * * @param line a line number * @return the line offset with the given line number * @throws BadLocationException if the line is invalid @@ -479,11 +479,11 @@ int remaining= line; int offset= 0; Node node= fRoot; - + while (true) { if (node is null) fail(line); - + if (remaining is node.line) return offset + node.offset; @@ -496,25 +496,25 @@ } } } - + /** * Left rotation - the given node is rotated down, its right child is rotated up, taking the * previous structural position of <code>node</code>. - * + * * @param node the node to rotate around */ private void rotateLeft(Node node) { - if cast(ASSERT) Assert.isNotNull(node); + if (ASSERT) Assert.isNotNull(node); Node child= node.right; - if cast(ASSERT) Assert.isNotNull(child); + if (ASSERT) Assert.isNotNull(child); bool leftChild= node.parent is null || node is node.parent.left; - + // restructure setChild(node.parent, child, leftChild); - + setChild(node, child.left, false); setChild(child, node, true); - + // update relative info // child becomes the new parent, its line and offset counts increase as the former parent // moves under child's left subtree @@ -525,20 +525,20 @@ /** * Right rotation - the given node is rotated down, its left child is rotated up, taking the * previous structural position of <code>node</code>. - * + * * @param node the node to rotate around */ private void rotateRight(Node node) { - if cast(ASSERT) Assert.isNotNull(node); + if (ASSERT) Assert.isNotNull(node); Node child= node.left; - if cast(ASSERT) Assert.isNotNull(child); + if (ASSERT) Assert.isNotNull(child); bool leftChild= node.parent is null || node is node.parent.left; - + setChild(node.parent, child, leftChild); - + setChild(node, child.right, true); setChild(child, node, false); - + // update relative info // node loses its left subtree, except for what it keeps in its new subtree // this is exactly the amount in child @@ -548,7 +548,7 @@ /** * Helper method for moving a child, ensuring that parent pointers are set correctly. - * + * * @param parent the new parent of <code>child</code>, <code>null</code> to replace the * root node * @param child the new child of <code>parent</code>, may be <code>null</code> @@ -571,11 +571,11 @@ if (child !is null) child.parent= parent; } - + /** * A left rotation around <code>parent</code>, whose structural position is replaced by * <code>node</code>. - * + * * @param node the node moving up and left * @param parent the node moving left and down */ @@ -588,7 +588,7 @@ /** * A right rotation around <code>parent</code>, whose structural position is replaced by * <code>node</code>. - * + * * @param node the node moving up and right * @param parent the node moving right and down */ @@ -601,7 +601,7 @@ /** * A double left rotation, first rotating right around <code>node</code>, then left around * <code>parent</code>. - * + * * @param node the node that will be rotated right * @param parent the node moving left and down */ @@ -626,7 +626,7 @@ /** * A double right rotation, first rotating left around <code>node</code>, then right around * <code>parent</code>. - * + * * @param node the node that will be rotated left * @param parent the node moving right and down */ @@ -650,7 +650,7 @@ /** * Inserts a line with the given length and delimiter after <code>node</code>. - * + * * @param node the predecessor of the inserted node * @param length the line length of the inserted node * @param delimiter the delimiter of the inserted node @@ -658,28 +658,28 @@ */ private Node insertAfter(Node node, int length, String delimiter) { /* - * An insertion really shifts the key of all succeeding nodes. Hence we insert the added node + * An insertion really shifts the key of all succeeding nodes. Hence we insert the added node * between node and the successor of node. The added node becomes either the right child * of the predecessor node, or the left child of the successor node. */ Node added= new Node(length, delimiter); - + if (node.right is null) setChild(node, added, false); else setChild(successorDown(node.right), added, true); - + // parent chain update updateParentChain(added, length, 1); updateParentBalanceAfterInsertion(added); - + return added; } - + /** * Updates the balance information in the parent chain of node until it reaches the root or * finds a node whose balance violates the AVL constraint, which is the re-balanced. - * + * * @param node the child of the first node that needs balance updating */ private void updateParentBalanceAfterInsertion(Node node) { @@ -705,16 +705,16 @@ case 0: break; default: - if cast(ASSERT) + if (ASSERT) Assert.isTrue(false); } return; } } - + /** * Re-balances a node whose parent has a double positive balance. - * + * * @param node the node to re-balance */ private void rebalanceAfterInsertionRight(Node node) { @@ -723,14 +723,14 @@ singleLeftRotation(node, parent); } else if (node.balance is -1) { rightLeftRotation(node, parent); - } else if cast(ASSERT) { + } else if (ASSERT) { Assert.isTrue(false); } } /** * Re-balances a node whose parent has a double negative balance. - * + * * @param node the node to re-balance */ private void rebalanceAfterInsertionLeft(Node node) { @@ -739,7 +739,7 @@ singleRightRotation(node, parent); } else if (node.balance is 1) { leftRightRotation(node, parent); - } else if cast(ASSERT) { + } else if (ASSERT) { Assert.isTrue(false); } } @@ -748,17 +748,17 @@ * @see dwtx.jface.text.ILineTracker#replace(int, int, java.lang.String) */ public final void replace(int offset, int length, String text) { - if cast(ASSERT) checkTree(); - + if (ASSERT) checkTree(); + // Inlined nodeByOffset as we need both node and offset int remaining= offset; Node first= fRoot; final int firstNodeOffset; - + while (true) { if (first is null) fail(offset); - + if (remaining < first.offset) { first= first.left; } else { @@ -773,27 +773,27 @@ } } // Inline nodeByOffset end - if cast(ASSERT) Assert.isTrue(first !is null); - + if (ASSERT) Assert.isTrue(first !is null); + Node last; if (offset + length < firstNodeOffset + first.length) last= first; else last= nodeByOffset(offset + length); - if cast(ASSERT) Assert.isTrue(last !is null); - + if (ASSERT) Assert.isTrue(last !is null); + int firstLineDelta= firstNodeOffset + first.length - offset; if (first is last) replaceInternal(first, text, length, firstLineDelta); else replaceFromTo(first, last, text, length, firstLineDelta); - if cast(ASSERT) checkTree(); + if (ASSERT) checkTree(); } /** * Replace happening inside a single line. - * + * * @param node the affected node * @param text the added text * @param length the replace length, < <code>firstLineDelta</code> @@ -802,7 +802,7 @@ */ private void replaceInternal(Node node, String text, int length, int firstLineDelta) { // 1) modification on a single line - + DelimiterInfo info= text is null ? null : nextDelimiterInfo(text, 0); if (info is null || info.delimiter is null) { @@ -814,14 +814,14 @@ // remember what we split off the first line int remainder= firstLineDelta - length; String remDelim= node.delimiter; - + // join the first line with the first added int consumed= info.delimiterIndex + info.delimiterLength; int delta= consumed - firstLineDelta; updateLength(node, delta); node.delimiter= info.delimiter; - // Inline addlines start + // Inline addlines start info= nextDelimiterInfo(text, consumed); while (info !is null) { int lineLen= info.delimiterIndex - consumed + info.delimiterLength; @@ -829,16 +829,16 @@ consumed += lineLen; info= nextDelimiterInfo(text, consumed); } - // Inline addlines end + // Inline addlines end // add remaining chunk merged with last (incomplete) additional line insertAfter(node, remainder + text.length() - consumed, remDelim); } } - + /** * Replace spanning from one node to another. - * + * * @param node the first affected node * @param last the last affected node * @param text the added text @@ -848,7 +848,7 @@ */ private void replaceFromTo(Node node, Node last, String text, int length, int firstLineDelta) { // 2) modification covers several lines - + // delete intermediate nodes // TODO could be further optimized: replace intermediate lines with intermediate added lines // to reduce re-balancing @@ -867,9 +867,9 @@ // join the two lines if there are no lines added join(node, last, added - length); - + } else { - + // join the first line with the first added int consumed= info.delimiterIndex + info.delimiterLength; updateLength(node, consumed - firstLineDelta); @@ -885,7 +885,7 @@ info= nextDelimiterInfo(text, consumed); } // Inline addLines end - + updateLength(last, text.length() - consumed - length); } } @@ -893,7 +893,7 @@ /** * Joins two consecutive node lines, additionally adjusting the resulting length of the combined * line by <code>delta</code>. The first node gets deleted. - * + * * @param one the first node to join * @param two the second node to join * @param delta the delta to apply to the remaining single node @@ -903,56 +903,56 @@ updateLength(one, -oneLength); updateLength(two, oneLength + delta); } - + /** * Adjusts the length of a node by <code>delta</code>, also adjusting the parent chain of * <code>node</code>. If the node's length becomes zero and is not the last (incomplete) * node, it is deleted after the update. - * + * * @param node the node to adjust * @param delta the character delta to add to the node's length */ private void updateLength(Node node, int delta) { - if cast(ASSERT) Assert.isTrue(node.length + delta >= 0); - + if (ASSERT) Assert.isTrue(node.length + delta >= 0); + // update the node itself node.length += delta; - + // check deletion final int lineDelta; - bool delete= node.length is 0 && node.delimiter !is NO_DELIM; - if (delete) + bool delete__= node.length is 0 && node.delimiter !is NO_DELIM; + if (delete__) lineDelta= -1; else lineDelta= 0; - + // update parent chain if (delta !is 0 || lineDelta !is 0) updateParentChain(node, delta, lineDelta); - - if (delete) - delete(node); + + if (delete__) + delete_(node); } /** * Updates the differential indices following the parent chain. All nodes from * <code>from.parent</code> to the root are updated. - * + * * @param node the child of the first node to update - * @param deltaLength the character delta + * @param deltaLength the character delta * @param deltaLines the line delta */ private void updateParentChain(Node node, int deltaLength, int deltaLines) { updateParentChain(node, null, deltaLength, deltaLines); } - + /** * Updates the differential indices following the parent chain. All nodes from * <code>from.parent</code> to <code>to</code> (exclusive) are updated. - * + * * @param from the child of the first node to update * @param to the first node not to update - * @param deltaLength the character delta + * @param deltaLength the character delta * @param deltaLines the line delta */ private void updateParentChain(Node from, Node to, int deltaLength, int deltaLines) { @@ -967,25 +967,25 @@ parent= from.parent; } } - + /** * Deletes a node from the tree, re-balancing it if necessary. The differential indices in the * node's parent chain have to be updated in advance to calling this method. Generally, don't * call <code>delete</code> directly, but call * {@link #updateLength(Node, int) update_length(node, -node.length)} to properly remove a * node. - * + * * @param node the node to delete. */ - private void delete(Node node) { - if cast(ASSERT) Assert.isTrue(node !is null); - if cast(ASSERT) Assert.isTrue(node.length is 0); - + private void delete_(Node node) { + if (ASSERT) Assert.isTrue(node !is null); + if (ASSERT) Assert.isTrue(node.length is 0); + Node parent= node.parent; Node toUpdate; // the parent of the node that lost a child bool lostLeftChild; bool isLeftChild= parent is null || node is parent.left; - + if (node.left is null || node.right is null) { // 1) node has one child at max - replace parent's pointer with the only child // also handles the trivial case of no children @@ -1016,46 +1016,46 @@ } else { // 3) hard case - replace node with its successor Node successor= successor(node); - + // successor exists (otherwise node would not have right child, case 1) - if cast(ASSERT) Assert.isNotNull(successor); + if (ASSERT) Assert.isNotNull(successor); // successor has no left child (a left child would be the real successor of node) - if cast(ASSERT) Assert.isTrue(successor.left is null); - if cast(ASSERT) Assert.isTrue(successor.line is 0); + if (ASSERT) Assert.isTrue(successor.left is null); + if (ASSERT) Assert.isTrue(successor.line is 0); // successor is the left child of its parent (otherwise parent would be smaller and // hence the real successor) - if cast(ASSERT) Assert.isTrue(successor is successor.parent.left); + if (ASSERT) Assert.isTrue(successor is successor.parent.left); // successor is not a child of node (would have been covered by 2a) - if cast(ASSERT) Assert.isTrue(successor.parent !is node); + if (ASSERT) Assert.isTrue(successor.parent !is node); toUpdate= successor.parent; lostLeftChild= true; // update relative indices updateParentChain(successor, node, -successor.length, -1); - + // delete successor from its current place - like 1) setChild(toUpdate, successor.right, true); // move node's subtrees to its successor setChild(successor, node.right, false); setChild(successor, node.left, true); - + // replace node by successor in its parent setChild(parent, successor, isLeftChild); - + // update the successor successor.line= node.line; successor.offset= node.offset; successor.balance= node.balance; } - + updateParentBalanceAfterDeletion(toUpdate, lostLeftChild); } - + /** * Updates the balance information in the parent chain of node. - * + * * @param node the first node that needs balance updating * @param wasLeftChild <code>true</code> if the deletion happened on <code>node</code>'s * left subtree, <code>false</code> if it occurred on <code>node</code>'s right @@ -1067,7 +1067,7 @@ node.balance++; else node.balance--; - + Node parent= node.parent; if (parent !is null) wasLeftChild= node is parent.left; @@ -1087,17 +1087,17 @@ case 0: break; // propagate up default: - if cast(ASSERT) + if (ASSERT) Assert.isTrue(false); } - + node= parent; } } - + /** * Re-balances a node whose parent has a double positive balance. - * + * * @param node the node to re-balance * @return <code>true</code> if the re-balancement leaves the height at * <code>node.parent</code> constant, <code>false</code> if the height changed @@ -1116,14 +1116,14 @@ parent.balance= 1; return true; } else { - if cast(ASSERT) Assert.isTrue(false); + if (ASSERT) Assert.isTrue(false); return true; } } /** * Re-balances a node whose parent has a double negative balance. - * + * * @param node the node to re-balance * @return <code>true</code> if the re-balancement leaves the height at * <code>node.parent</code> constant, <code>false</code> if the height changed @@ -1142,27 +1142,27 @@ parent.balance= -1; return true; } else { - if cast(ASSERT) Assert.isTrue(false); + if (ASSERT) Assert.isTrue(false); return true; } } /** * Returns the successor of a node, <code>null</code> if node is the last node. - * + * * @param node a node * @return the successor of <code>node</code>, <code>null</code> if there is none */ private Node successor(Node node) { if (node.right !is null) return successorDown(node.right); - + return successorUp(node); } - + /** * Searches the successor of <code>node</code> in its parent chain. - * + * * @param node a node * @return the first node in <code>node</code>'s parent chain that is reached from its left * subtree, <code>null</code> if there is none @@ -1176,13 +1176,13 @@ child= parent; parent= child.parent; } - if cast(ASSERT) Assert.isTrue(node.delimiter is NO_DELIM); + if (ASSERT) Assert.isTrue(node.delimiter is NO_DELIM); return null; } /** * Searches the left-most node in a given subtree. - * + * * @param node a node * @return the left-most node in the given subtree */ @@ -1199,14 +1199,14 @@ /** * Throws an exception. - * + * * @param offset the illegal character or line offset that caused the exception * @throws BadLocationException always */ private void fail(int offset) { throw new BadLocationException(); } - + /** * Returns the information about the first delimiter found in the given * text starting at the given offset. @@ -1216,7 +1216,7 @@ * @return the information of the first found delimiter or <code>null</code> */ protected abstract DelimiterInfo nextDelimiterInfo(String text, int offset); - + /* * @see dwtx.jface.text.ILineTracker#getLineDelimiter(int) */ @@ -1263,7 +1263,7 @@ int startLine= lineByOffset(offset); int endLine= lineByOffset(offset + length); - + return endLine - startLine + 1; } @@ -1297,11 +1297,11 @@ int remaining= offset; Node node= fRoot; final int lineOffset; - + while (true) { if (node is null) fail(offset); - + if (remaining < node.offset) { node= node.left; } else { @@ -1328,11 +1328,11 @@ int remaining= line; int offset= 0; Node node= fRoot; - + while (true) { if (node is null) fail(line); - + if (remaining is node.line) { offset += node.offset; break; @@ -1359,11 +1359,11 @@ int remaining= line; int offset= 0; Node node= fRoot; - + while (true) { if (node is null) fail(line); - + if (remaining is node.line) { offset+= node.offset; break; @@ -1396,7 +1396,7 @@ throw new InternalError(); } } - + /* * @see java.lang.Object#toString() */ @@ -1406,7 +1406,7 @@ int leaves= cast(int) Math.pow(2, depth - 1); int width= WIDTH * leaves; String empty= "."; //$NON-NLS-1$ - + List roots= new LinkedList(); roots.add(fRoot); StringBuffer buf= new StringBuffer((width + 1) * depth); @@ -1422,7 +1422,7 @@ for (ListIterator it= roots.listIterator(); it.hasNext();) { // pad before buf.append(space, 0, spaces); - + Node node= cast(Node) it.next(); String box; // replace the node with its children @@ -1434,76 +1434,76 @@ it.add(node.right); box= node.toString(); } - + // draw the node, pad to WIDTH int pad_left= (WIDTH - box.length() + 1) / 2; int pad_right= WIDTH - box.length() - pad_left; buf.append(space, 0, pad_left); buf.append(box); buf.append(space, 0, pad_right); - + // pad after buf.append(space, 0, spaces); } - + buf.append('\n'); - nodes *= 2; + nodes *= 2; } - + return buf.toString(); } /** * Recursively computes the depth of the tree. Only used by {@link #toString()}. - * + * * @param root the subtree to compute the depth of, may be <code>null</code> * @return the depth of the given tree, 0 if it is <code>null</code> */ private byte computeDepth(Node root) { if (root is null) return 0; - + return cast(byte) (Math.max(computeDepth(root.left), computeDepth(root.right)) + 1); } - + /** * Debug-only method that checks the tree structure and the differential offsets. */ private void checkTree() { checkTreeStructure(fRoot); - + try { - checkTreeOffsets(nodeByOffset(0), new int[] {0, 0}, null); + checkTreeOffsets(nodeByOffset(0), [0, 0], null); } catch (BadLocationException x) { throw new AssertionError(); } } - + /** * Debug-only method that validates the tree structure below <code>node</code>. I.e. it * checks whether all parent/child pointers are consistent and whether the AVL balance * information is correct. - * + * * @param node the node to validate * @return the depth of the tree under <code>node</code> */ private byte checkTreeStructure(Node node) { if (node is null) return 0; - + byte leftDepth= checkTreeStructure(node.left); byte rightDepth= checkTreeStructure(node.right); Assert.isTrue(node.balance is rightDepth - leftDepth); Assert.isTrue(node.left is null || node.left.parent is node); Assert.isTrue(node.right is null || node.right.parent is node); - + return cast(byte) (Math.max(rightDepth, leftDepth) + 1); } - + /** * Debug-only method that checks the differential offsets of the tree, starting at * <code>node</code> and continuing until <code>last</code>. - * + * * @param node the first <code>Node</code> to check, may be <code>null</code> * @param offLen an array of length 2, with <code>offLen[0]</code> the expected offset of * <code>node</code> and <code>offLen[1]</code> the expected line of @@ -1516,16 +1516,16 @@ private int[] checkTreeOffsets(Node node, int[] offLen, Node last) { if (node is last) return offLen; - + Assert.isTrue(node.offset is offLen[0]); Assert.isTrue(node.line is offLen[1]); - + if (node.right !is null) { int[] result= checkTreeOffsets(successorDown(node.right), new int[2], node); offLen[0] += result[0]; offLen[1] += result[1]; } - + offLen[0] += node.length; offLen[1]++; return checkTreeOffsets(node.parent, offLen, last);
--- a/dwtx/jface/text/WhitespaceCharacterPainter.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/WhitespaceCharacterPainter.d Sun Aug 24 03:23:46 2008 +0200 @@ -434,7 +434,7 @@ } draw(gc, widgetOffset, visibleChar.toString(), fg); } - visibleChar.delete(0, visibleChar.length()); + visibleChar.delete_(0, visibleChar.length()); } } }
--- a/dwtx/jface/text/contentassist/AdditionalInfoController.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/contentassist/AdditionalInfoController.d Sun Aug 24 03:23:46 2008 +0200 @@ -79,15 +79,15 @@ * @since 2.0 */ class AdditionalInfoController : AbstractInformationControlManager { - + /** * A timer thread. - * + * * @since 3.2 */ private static abstract class Timer { private static final int DELAY_UNTIL_JOB_IS_SCHEDULED= 50; - + /** * A <code>Task</code> is {@link Task#run() run} when {@link #delay()} milliseconds have * elapsed after it was scheduled without a {@link #reset(ICompletionProposal) reset} @@ -107,7 +107,7 @@ */ public abstract Task nextTask(); } - + /** * IDLE: the initial task, and active whenever the info has been shown. It cannot be run, * but specifies an infinite delay. @@ -116,16 +116,16 @@ public void run() { Assert.isTrue(false); } - + public Task nextTask() { Assert.isTrue(false); return null; } - + public long delay() { return Long.MAX_VALUE; } - + public String toString() { return "IDLE"; //$NON-NLS-1$ } @@ -136,7 +136,10 @@ private final Task FIRST_WAIT= new class() Task { public void run() { final ICompletionProposalExtension5 proposal= getCurrentProposalEx(); - Job job= new Job(JFaceTextMessages.getString("AdditionalInfoController.job_name")) { //$NON-NLS-1$ + Job job= new class(JFaceTextMessages.getString("AdditionalInfoController.job_name")) Job { //$NON-NLS-1$ + this( String txt ){ + super( txt ); + } protected IStatus run(IProgressMonitor monitor) { Object info; try { @@ -154,15 +157,15 @@ }; job.schedule(); } - + public Task nextTask() { return SECOND_WAIT; } - + public long delay() { return DELAY_UNTIL_JOB_IS_SCHEDULED; } - + public String toString() { return "FIRST_WAIT"; //$NON-NLS-1$ } @@ -176,15 +179,15 @@ // show the info allowShowing(); } - + public Task nextTask() { return IDLE; } - + public long delay() { return fDelay - DELAY_UNTIL_JOB_IS_SCHEDULED; } - + public String toString() { return "SECOND_WAIT"; //$NON-NLS-1$ } @@ -198,7 +201,7 @@ if (!fDisplay.isDisposed()) { fDisplay.asyncExec(new class() Runnable { public void run() { - synchronized (Timer.this) { + synchronized (this.outer) { if (proposal is getCurrentProposal()) { Object info= proposal.getAdditionalProposalInfo(); showInformation(proposal, info); @@ -208,15 +211,15 @@ }); } } - + public Task nextTask() { return IDLE; } - + public long delay() { return fDelay; } - + public String toString() { return "LEGACY_WAIT"; //$NON-NLS-1$ } @@ -237,12 +240,12 @@ public void run() { Assert.isTrue(false); } - + public String toString() { return "EXIT"; //$NON-NLS-1$ } }; - + /** The timer thread. */ private final Thread fThread; @@ -250,17 +253,17 @@ private Task fTask; /** The next wake up time. */ private long fNextWakeup; - + private ICompletionProposal fCurrentProposal= null; private Object fCurrentInfo= null; private bool fAllowShowing= false; private final Display fDisplay; private final int fDelay; - + /** * Creates a new timer. - * + * * @param display the display to use for display thread posting. * @param delay the delay until to show additional info */ @@ -270,17 +273,17 @@ long current= System.currentTimeMillis(); schedule(IDLE, current); - fThread= new class(new Runnable() Thread { - public void run() { - try { - loop(); - } catch (InterruptedException x) { - } + void threadrun() { + try { + loop(); + } catch (InterruptedException x) { } - }, JFaceTextMessages.getString("InfoPopup.info_delay_timer_name")); //$NON-NLS-1$ + } + fThread= new Thread( &threadrun ); + fThread.name = JFaceTextMessages.getString("InfoPopup.info_delay_timer_name"); //$NON-NLS-1$ fThread.start(); } - + /** * Terminates the timer thread. */ @@ -288,10 +291,10 @@ schedule(EXIT, System.currentTimeMillis()); notifyAll(); } - + /** * Resets the timer thread as the selection has changed to a new proposal. - * + * * @param p the new proposal */ public final synchronized void reset(ICompletionProposal p) { @@ -307,7 +310,7 @@ notifyAll(); } } - + private Task taskOnReset(ICompletionProposal p) { if (p is null) return IDLE; @@ -333,11 +336,11 @@ } } } - + private Task currentTask() { return fTask; } - + private void schedule(Task task, long current) { fTask= task; long nextWakeup= current + task.delay(); @@ -354,7 +357,7 @@ ICompletionProposal getCurrentProposal() { return fCurrentProposal; } - + ICompletionProposalExtension5 getCurrentProposalEx() { Assert.isTrue( cast(ICompletionProposalExtension5)fCurrentProposal ); return cast(ICompletionProposalExtension5) fCurrentProposal; @@ -374,7 +377,7 @@ if (!fDisplay.isDisposed()) { fDisplay.asyncExec(new class() Runnable { public void run() { - synchronized (Timer.this) { + synchronized (this.outer) { if (info is fCurrentInfo) { showInformation(fCurrentProposal, info); } @@ -383,10 +386,10 @@ }); } } - + /** * Called in the display thread to show additional info. - * + * * @param proposal the proposal to show information about * @param info the information about <code>proposal</code> */ @@ -415,7 +418,7 @@ public void widgetDefaultSelected(SelectionEvent e) { } } - + /** * Default control creator for the information control replacer. * @since 3.4 @@ -460,8 +463,8 @@ super(creator); fDelay= delay; setAnchor(ANCHOR_RIGHT); - setFallbackAnchors(new Anchor[] { ANCHOR_RIGHT, ANCHOR_LEFT, ANCHOR_BOTTOM }); - + setFallbackAnchors([ ANCHOR_RIGHT, ANCHOR_LEFT, ANCHOR_BOTTOM ]); + /* * Adjust the location by one pixel towards the proposal popup, so that the single pixel * border of the additional info popup overlays with the border of the popup. This avoids @@ -469,7 +472,7 @@ */ int spacing= -1; setMargins(spacing, spacing); // see also adjustment in #computeLocation - + InformationControlReplacer replacer= new InformationControlReplacer(new DefaultPresenterControlCreator()); getInternalAccessor().setInformationControlReplacer(replacer); } @@ -490,7 +493,7 @@ fProposalTable= cast(Table) control; fProposalTable.addSelectionListener(fSelectionListener); getInternalAccessor().getInformationControlReplacer().install(fProposalTable); - + fTimer= new class(fProposalTable.getDisplay(), fDelay) Timer { protected void showInformation(ICompletionProposal proposal, Object info) { InformationControlReplacer replacer= getInternalAccessor().getInformationControlReplacer(); @@ -545,10 +548,10 @@ void showInformation(ICompletionProposal proposal, Object info) { if (fProposalTable is null || fProposalTable.isDisposed()) return; - + if (fProposal is proposal && ((info is null && fInformation is null) || (info !is null && info.equals(fInformation)))) return; - + fInformation= info; fProposal= proposal; showInformation(); @@ -575,7 +578,7 @@ */ protected Point computeLocation(Rectangle subjectArea, Point controlSize, Anchor anchor) { Point location= super.computeLocation(subjectArea, controlSize, anchor); - + /* * The location is computed using subjectControl.toDisplay(), which does not include the * trim of the subject control. As we want the additional info popup aligned with the outer @@ -595,7 +598,7 @@ // at least as big as the proposal table Point sizeConstraint= super.computeSizeConstraints(subjectControl, informationControl); Point size= subjectControl.getShell().getSize(); - + // AbstractInformationControlManager#internalShowInformationControl(Rectangle, Object) adds trims // to the computed constraints. Need to remove them here, to make the outer bounds of the additional // info shell fit the bounds of the proposal shell: @@ -611,7 +614,7 @@ sizeConstraint.y= size.y; return sizeConstraint; } - + /* * @see dwtx.jface.text.AbstractInformationControlManager#hideInformationControl() */
--- a/dwtx/jface/text/contentassist/CompletionProposalPopup.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/contentassist/CompletionProposalPopup.d Sun Aug 24 03:23:46 2008 +0200 @@ -137,23 +137,23 @@ /** * Completion proposal selection handler. - * + * * @since 3.4 */ final class ProposalSelectionHandler : AbstractHandler { - + /** * Selection operation codes. */ static final int SELECT_NEXT= 1; static final int SELECT_PREVIOUS= 2; - + private int fOperationCode; /** * Creates a new selection handler. - * + * * @param operationCode the operation code * @since 3.4 */ @@ -186,11 +186,11 @@ } } - + /** * The empty proposal displayed if there is nothing else to show. - * + * * @since 3.2 */ private static final class EmptyProposal : ICompletionProposal, ICompletionProposalExtension { @@ -294,15 +294,15 @@ private final class CommandKeyListener : KeyAdapter { private KeySequence fCommandSequence; - + private this(KeySequence keySequence) { fCommandSequence= keySequence; } - + public void keyPressed(KeyEvent e) { if (!Helper.okToUse(fProposalShell)) return; - + int accelerator= SWTKeySupport.convertEventToUnmodifiedAccelerator(e); KeySequence sequence= KeySequence.getInstance(SWTKeySupport.convertAcceleratorToKeyStroke(accelerator)); if (sequence.equals(fCommandSequence)) @@ -310,11 +310,11 @@ incrementalComplete(); else showProposals(false); - + } } - - + + /** The associated text viewer. */ private ITextViewer fViewer; /** The associated content assistant. */ @@ -382,14 +382,14 @@ private bool fIsFilteredSubset; /** * The filter runnable. - * + * * @since 3.1.1 */ private final Runnable fFilterRunnable= new class() Runnable { public void run() { if (!fIsFilterPending) return; - + fIsFilterPending= false; if (!Helper.okToUse(fContentAssistSubjectControlAdapter.getControl())) @@ -417,50 +417,50 @@ /** * <code>true</code> if <code>fFilterRunnable</code> has been * posted, <code>false</code> if not. - * + * * @since 3.1.1 */ private bool fIsFilterPending= false; /** * The info message at the bottom of the popup, or <code>null</code> for no popup (if * ContentAssistant does not provide one). - * + * * @since 3.2 */ private Label fMessageText; /** * The font used for <code>fMessageText</code> or null; dispose when done. - * + * * @since 3.2 */ private Font fMessageTextFont; /** * The most recent completion offset (used to determine repeated invocation) - * + * * @since 3.2 */ private int fLastCompletionOffset; /** * The (reusable) empty proposal. - * + * * @since 3.2 */ private final EmptyProposal fEmptyProposal= new EmptyProposal(); /** * The text for the empty proposal, or <code>null</code> to use the default text. - * + * * @since 3.2 */ private String fEmptyMessage= null; /** * Tells whether colored labels support is enabled. * Only valid while the popup is active. - * + * * @since 3.4 */ private bool fIsColoredLabelsSupportEnabled= false; - + /** * Creates a new completion proposal popup for the given elements. * @@ -521,7 +521,7 @@ int count= (fComputedProposals is null ? 0 : fComputedProposals.length); if (count is 0 && hideWhenNoProposals(autoActivated)) return; - + if (count is 1 && !autoActivated && canAutoInsert(fComputedProposals[0])) { insertProposal(fComputedProposals[0], cast(wchar) 0, 0, fInvocationOffset); hide(); @@ -539,11 +539,11 @@ return getErrorMessage(); } - + /** * Hides the popup and returns <code>true</code> if the popup is configured * to never display an empty list. Returns <code>false</code> otherwise. - * + * * @param autoActivated whether the invocation was auto-activated * @return <code>false</code> if an empty list should be displayed, <code>true</code> otherwise * @since 3.2 @@ -564,7 +564,7 @@ /** * If content assist is set up to handle cycling, then the proposals are recomputed. Otherwise, * nothing happens. - * + * * @since 3.2 */ private void handleRepeatedInvocation() { @@ -606,7 +606,7 @@ Control control= fContentAssistSubjectControlAdapter.getControl(); fProposalShell= new Shell(control.getShell(), DWT.ON_TOP | DWT.RESIZE ); fProposalShell.setFont(JFaceResources.getDefaultFont()); - if cast(USE_VIRTUAL) { + if (USE_VIRTUAL) { fProposalTable= new Table(fProposalShell, DWT.H_SCROLL | DWT.V_SCROLL | DWT.VIRTUAL); Listener listener= new class() Listener { @@ -618,7 +618,7 @@ } else { fProposalTable= new Table(fProposalShell, DWT.H_SCROLL | DWT.V_SCROLL); } - + fIsColoredLabelsSupportEnabled= fContentAssistant.isColoredLabelsSupportEnabled(); if (fIsColoredLabelsSupportEnabled) TableOwnerDrawSupport.install(fProposalTable); @@ -632,7 +632,7 @@ layout.marginHeight= 0; layout.verticalSpacing= 1; fProposalShell.setLayout(layout); - + if (fContentAssistant.isStatusLineVisible()) { createMessageText(); } @@ -669,7 +669,7 @@ fSize= fProposalShell.getSize(); } }); - + fProposalShell.setBackground(control.getDisplay().getSystemColor(DWT.COLOR_GRAY)); Color c= getBackgroundColor(control); @@ -696,14 +696,14 @@ }); fProposalTable.setHeaderVisible(false); - + addCommandSupport(fProposalTable); } /** * Returns the minimal required height for the proposal, may return 0 if the popup has not been * created yet. - * + * * @return the minimal height * @since 3.3 */ @@ -721,7 +721,7 @@ /** * Adds command support to the given control. - * + * * @param control the control to watch for focus * @since 3.2 */ @@ -777,7 +777,7 @@ /** * Returns the background color to use. - * + * * @param control the control to get the display from * @return the background color * @since 3.2 @@ -791,7 +791,7 @@ /** * Returns the foreground color to use. - * + * * @param control the control to get the display from * @return the foreground color * @since 3.2 @@ -802,10 +802,10 @@ c= JFaceResources.getColorRegistry().get(JFacePreferences.CONTENT_ASSIST_FOREGROUND_COLOR); return c; } - + /** * Creates the caption line under the proposal table. - * + * * @since 3.2 */ private void createMessageText() { @@ -854,7 +854,7 @@ String displayString; StyleRange[] styleRanges= null; - if (fIsColoredLabelsSupportEnabled && current instanceof ICompletionProposalExtension6) { + if (fIsColoredLabelsSupportEnabled && cast(ICompletionProposalExtension6)current ) { StyledString styledString= (cast(ICompletionProposalExtension6)current).getStyledDisplayString(); displayString= styledString.getString(); styleRanges= styledString.getStyleRanges(); @@ -864,7 +864,7 @@ item.setText(displayString); if (fIsColoredLabelsSupportEnabled) TableOwnerDrawSupport.storeStyleRanges(item, 0, styleRanges); - + item.setImage(current.getImage()); item.setData(current); } else { @@ -884,11 +884,11 @@ */ if (fIsFilterPending) fFilterRunnable.run(); - + // filter runnable may have hidden the proposals if (!Helper.okToUse(fProposalTable)) return null; - + int i= fProposalTable.getSelectionIndex(); if (fFilteredProposals is null || i < 0 || i >= fFilteredProposals.length) return null; @@ -952,7 +952,7 @@ } - if (p instanceof ICompletionProposalExtension2 && fViewer !is null) { + if (cast(ICompletionProposalExtension2)p && fViewer !is null) { ICompletionProposalExtension2 e= cast(ICompletionProposalExtension2) p; e.apply(fViewer, trigger, stateMask, offset); } else if ( cast(ICompletionProposalExtension)p ) { @@ -1050,20 +1050,20 @@ fProposalShell.dispose(); fProposalShell= null; } - + if (fMessageTextFont !is null) { fMessageTextFont.dispose(); fMessageTextFont= null; } - + if (fMessageText !is null) { fMessageText= null; } - + fEmptyMessage= null; - + fLastCompletionOffset= -1; - + fContentAssistant.fireSessionEndEvent(); } @@ -1087,7 +1087,7 @@ } if (fLastProposal !is null) { - if (fLastProposal instanceof ICompletionProposalExtension2 && fViewer !is null) { + if (cast(ICompletionProposalExtension2)fLastProposal && fViewer !is null) { ICompletionProposalExtension2 extension= cast(ICompletionProposalExtension2) fLastProposal; extension.unselected(fViewer); } @@ -1123,18 +1123,18 @@ return; if (Helper.okToUse(fProposalTable)) { - if (oldProposal instanceof ICompletionProposalExtension2 && fViewer !is null) + if (cast(ICompletionProposalExtension2)oldProposal && fViewer !is null) (cast(ICompletionProposalExtension2) oldProposal).unselected(fViewer); - + if (proposals is null || proposals.length is 0) { fEmptyProposal.fOffset= fFilterOffset; fEmptyProposal.fDisplayString= fEmptyMessage !is null ? fEmptyMessage : JFaceTextMessages.getString("CompletionProposalPopup.no_proposals"); //$NON-NLS-1$ - proposals= new ICompletionProposal[] { fEmptyProposal }; + proposals= [ fEmptyProposal ]; } fFilteredProposals= proposals; final int newLen= proposals.length; - if cast(USE_VIRTUAL) { + if (USE_VIRTUAL) { fProposalTable.setItemCount(newLen); fProposalTable.clearAll(); } else { @@ -1193,7 +1193,7 @@ if (fContentAssistant.addContentAssistListener(this, ContentAssistant.PROPOSAL_SELECTOR)) { ensureDocumentListenerInstalled(); - + if (fFocusHelper is null) { fFocusHelper= new class() IEditingSupport { @@ -1367,18 +1367,18 @@ private void selectProposal(int index, bool smartToggle) { ICompletionProposal oldProposal= getSelectedProposal(); - if (oldProposal instanceof ICompletionProposalExtension2 && fViewer !is null) + if (cast(ICompletionProposalExtension2)oldProposal && fViewer !is null) (cast(ICompletionProposalExtension2) oldProposal).unselected(fViewer); if (fFilteredProposals is null) { fireSelectionEvent(null, smartToggle); return; } - + ICompletionProposal proposal= fFilteredProposals[index]; - if (proposal instanceof ICompletionProposalExtension2 && fViewer !is null) + if (cast(ICompletionProposalExtension2)proposal && fViewer !is null) (cast(ICompletionProposalExtension2) proposal).selected(fViewer, smartToggle); - + fireSelectionEvent(proposal, smartToggle); fLastProposal= proposal; @@ -1391,7 +1391,7 @@ /** * Fires a selection event, see {@link ICompletionListener}. - * + * * @param proposal the selected proposal, possibly <code>null</code> * @param smartToggle true if the smart toggle is on * @since 3.2 @@ -1483,13 +1483,13 @@ List filtered= new ArrayList(length); for (int i= 0; i < length; i++) { - if (proposals[i] instanceof ICompletionProposalExtension2) { + if (cast(ICompletionProposalExtension2)proposals[i] ) { ICompletionProposalExtension2 p= cast(ICompletionProposalExtension2) proposals[i]; if (p.validate(document, offset, event)) filtered.add(p); - } else if (proposals[i] instanceof ICompletionProposalExtension) { + } else if (cast(ICompletionProposalExtension)proposals[i] ) { ICompletionProposalExtension p= cast(ICompletionProposalExtension) proposals[i]; if (p.isValidFor(document, offset)) @@ -1518,11 +1518,11 @@ fProposalShell.setFocus(); } } - + /** * Returns <code>true</code> if <code>proposal</code> should be auto-inserted, * <code>false</code> otherwise. - * + * * @param proposal the single proposal that might be automatically inserted * @return <code>true</code> if <code>proposal</code> can be inserted automatically, * <code>false</code> otherwise @@ -1574,7 +1574,7 @@ int count= (fFilteredProposals is null ? 0 : fFilteredProposals.length); if (count is 0 && hideWhenNoProposals(false)) return; - + if (count is 1 && canAutoInsert(fFilteredProposals[0])) { insertProposal(fFilteredProposals[0], cast(wchar) 0, 0, fInvocationOffset); hide(); @@ -1600,7 +1600,7 @@ * proposal, it is inserted, otherwise, the common prefix of all proposals * is inserted into the document. If there is no common prefix, nothing * happens and <code>false</code> is returned. - * + * * @return <code>true</code> if a single proposal was inserted and the * selector can be closed, <code>false</code> otherwise * @since 3.0 @@ -1625,7 +1625,7 @@ List rightCase= new ArrayList(); bool isWrongCaseMatch= false; - + // the prefix of all case insensitive matches. This differs from the document // contents and will be replaced. CharSequence wrongCasePrefix= null; @@ -1636,10 +1636,10 @@ for (int i= 0; i < fFilteredProposals.length; i++) { ICompletionProposal proposal= fFilteredProposals[i]; - + if (!( cast(ICompletionProposalExtension3)proposal )) return false; - + int start= (cast(ICompletionProposalExtension3)proposal).getPrefixCompletionStart(fContentAssistSubjectControlAdapter.getDocument(), fFilterOffset); CharSequence insertion= (cast(ICompletionProposalExtension3)proposal).getPrefixCompletionText(fContentAssistSubjectControlAdapter.getDocument(), fFilterOffset); if (insertion is null) @@ -1769,19 +1769,19 @@ int min= Math.min(buffer.length(), sequence.length()); for (int c= 0; c < min; c++) { if (sequence.charAt(c) !is buffer.charAt(c)) { - buffer.delete(c, buffer.length()); + buffer.delete_(c, buffer.length()); return; } } // all equal up to minimum - buffer.delete(min, buffer.length()); + buffer.delete_(min, buffer.length()); } - + /** * Sets the message for the repetition affordance text at the bottom of the proposal. Only has * an effect if {@link ContentAssistant#isRepeatedInvocationMode()} returns <code>true</code>. - * + * * @param message the new caption * @since 3.2 */ @@ -1794,7 +1794,7 @@ /** * Sets the text to be displayed if no proposals are available. Only has an effect if * {@link ContentAssistant#isShowEmptyList()} returns <code>true</code>. - * + * * @param message the empty message * @since 3.2 */ @@ -1805,14 +1805,14 @@ /** * Enables or disables showing of the caption line. See also {@link #setMessage(String)}. - * + * * @param show * @since 3.2 */ public void setStatusLineVisible(bool show) { if (!isActive() || show is (fMessageText !is null)) return; // nothing to do - + if (show) { createMessageText(); } else { @@ -1824,23 +1824,23 @@ /** * Informs the popup that it is being placed above the caret line instead of below. - * + * * @param above <code>true</code> if the location of the popup is above the caret line, <code>false</code> if it is below * @since 3.3 */ void switchedPositionToAbove(bool above) { if (fAdditionalInfoController !is null) { - fAdditionalInfoController.setFallbackAnchors(new Anchor[] { + fAdditionalInfoController.setFallbackAnchors([ AbstractInformationControlManager.ANCHOR_RIGHT, AbstractInformationControlManager.ANCHOR_LEFT, above ? AbstractInformationControlManager.ANCHOR_TOP : AbstractInformationControlManager.ANCHOR_BOTTOM - }); + ]); } } /** * Returns a new proposal selection handler. - * + * * @param operationCode the operation code * @return the handler * @since 3.4
--- a/dwtx/jface/text/contentassist/ContentAssistSubjectControlAdapter.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/contentassist/ContentAssistSubjectControlAdapter.d Sun Aug 24 03:23:46 2008 +0200 @@ -113,7 +113,7 @@ public int getLineHeight() { if (fContentAssistSubjectControl !is null) return fContentAssistSubjectControl.getLineHeight(); - + return fViewer.getTextWidget().getLineHeight(getCaretOffset()); } @@ -393,7 +393,7 @@ */ public void installValidator(ContextFrame frame) { if (fContentAssistSubjectControl !is null) { - if (frame.fValidator instanceof ISubjectControlContextInformationValidator) + if (cast(ISubjectControlContextInformationValidator)frame.fValidator ) (cast(ISubjectControlContextInformationValidator)frame.fValidator).install(frame.fInformation, fContentAssistSubjectControl, frame.fOffset); } else frame.fValidator.install(frame.fInformation, fViewer, frame.fOffset); @@ -406,7 +406,7 @@ */ public void installContextInformationPresenter(ContextFrame frame) { if (fContentAssistSubjectControl !is null) { - if (frame.fPresenter instanceof ISubjectControlContextInformationPresenter) + if (cast(ISubjectControlContextInformationPresenter)frame.fPresenter ) (cast(ISubjectControlContextInformationPresenter)frame.fValidator).install(frame.fInformation, fContentAssistSubjectControl, frame.fBeginOffset); } else frame.fPresenter.install(frame.fInformation, fViewer, frame.fBeginOffset);
--- a/dwtx/jface/text/contentassist/ContentAssistant.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/contentassist/ContentAssistant.d Sun Aug 24 03:23:46 2008 +0200 @@ -359,12 +359,12 @@ int pos= fContentAssistSubjectControlAdapter.getSelectedRange().x; char[] activation; - activation= fContentAssistSubjectControlAdapter.getCompletionProposalAutoActivationCharacters(ContentAssistant.this, pos); + activation= fContentAssistSubjectControlAdapter.getCompletionProposalAutoActivationCharacters(this.outer, pos); if (contains(activation, e.character) && !isProposalPopupActive()) showStyle= SHOW_PROPOSALS; else { - activation= fContentAssistSubjectControlAdapter.getContextInformationAutoActivationCharacters(ContentAssistant.this, pos); + activation= fContentAssistSubjectControlAdapter.getContextInformationAutoActivationCharacters(this.outer, pos); if (contains(activation, e.character) && !isContextInfoPopupActive()) showStyle= SHOW_CONTEXT_INFO; else {
--- a/dwtx/jface/text/contentassist/JFaceTextMessages.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/contentassist/JFaceTextMessages.d Sun Aug 24 03:23:46 2008 +0200 @@ -55,9 +55,14 @@ */ class JFaceTextMessages { - private static final String RESOURCE_BUNDLE= JFaceTextMessages.class.getName(); +// private static final String RESOURCE_BUNDLE= JFaceTextMessages.class.getName(); + + private static ResourceBundle fgResourceBundle;//= ResourceBundle.getBundle(RESOURCE_BUNDLE); - private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE); + static this() { + fgResourceBundle = ResourceBundle.getBundle( + getImportData!("dwtx.jface.text.contentassist.JFaceTextMessages.properties")); + } private this() { } @@ -72,7 +77,7 @@ try { return fgResourceBundle.getString(key); } catch (MissingResourceException e) { - return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$ + return "!" ~ key ~ "!";//$NON-NLS-2$ //$NON-NLS-1$ } } }
--- a/dwtx/jface/text/contentassist/PopupCloser.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/contentassist/PopupCloser.d Sun Aug 24 03:23:46 2008 +0200 @@ -112,7 +112,7 @@ public void install(ContentAssistant contentAssistant, Table table) { install(contentAssistant, table, null); } - + /** * Installs this closer on the given table opened by the given content assistant. * @@ -125,22 +125,22 @@ fContentAssistant= contentAssistant; fTable= table; fAdditionalInfoController= additionalInfoController; - + if (Helper.okToUse(fTable)) { fShell= fTable.getShell(); fDisplay= fShell.getDisplay(); - + fShell.addShellListener(this); fTable.addFocusListener(this); fScrollbar= fTable.getVerticalBar(); if (fScrollbar !is null) fScrollbar.addSelectionListener(this); - + fDisplay.addFilter(DWT.Activate, this); fDisplay.addFilter(DWT.MouseWheel, this); - + fDisplay.addFilter(DWT.Deactivate, this); - + fDisplay.addFilter(DWT.MouseUp, this); } } @@ -160,9 +160,9 @@ if (fDisplay !is null && ! fDisplay.isDisposed()) { fDisplay.removeFilter(DWT.Activate, this); fDisplay.removeFilter(DWT.MouseWheel, this); - + fDisplay.removeFilter(DWT.Deactivate, this); - + fDisplay.removeFilter(DWT.MouseUp, this); } } @@ -232,13 +232,13 @@ return; if (event.widget is fShell || event.widget is fTable || event.widget is fScrollbar) return; - + if (fAdditionalInfoController.getInternalAccessor().getInformationControlReplacer() is null) fAdditionalInfoController.hideInformationControl(); else if (!fAdditionalInfoController.getInternalAccessor().isReplaceInProgress()) { IInformationControl infoControl= fAdditionalInfoController.getCurrentInformationControl2(); // During isReplaceInProgress(), events can come from the replacing information control - if (event.widget instanceof Control && infoControl instanceof IInformationControlExtension5) { + if (cast(Control)event.widget && cast(IInformationControlExtension5)infoControl ) { Control control= cast(Control) event.widget; IInformationControlExtension5 iControl5= cast(IInformationControlExtension5) infoControl; if (!(iControl5.containsControl(control))) @@ -250,11 +250,11 @@ } } break; - + case DWT.MouseUp: if (fAdditionalInfoController is null || fAdditionalInfoController.getInternalAccessor().isReplaceInProgress()) break; - if (event.widget instanceof Control) { + if (cast(Control)event.widget) { Control control= cast(Control) event.widget; IInformationControl infoControl= fAdditionalInfoController.getCurrentInformationControl2(); if ( cast(IInformationControlExtension5)infoControl ) { @@ -271,7 +271,7 @@ } }); } - + // XXX: workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=212392 : control.getShell().getDisplay().asyncExec(new class() Runnable { public void run() { @@ -282,14 +282,14 @@ } } break; - + case DWT.Deactivate: if (fAdditionalInfoController is null) break; InformationControlReplacer replacer= fAdditionalInfoController.getInternalAccessor().getInformationControlReplacer(); if (replacer !is null && fContentAssistant !is null) { IInformationControl iControl= replacer.getCurrentInformationControl2(); - if (event.widget instanceof Control && iControl instanceof IInformationControlExtension5) { + if (cast(Control)event.widget && cast(IInformationControlExtension5)iControl ) { Control control= cast(Control) event.widget; IInformationControlExtension5 iControl5= cast(IInformationControlExtension5) iControl; if (iControl5.containsControl(control)) {
--- a/dwtx/jface/text/hyperlink/AbstractHyperlinkDetector.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/hyperlink/AbstractHyperlinkDetector.d Sun Aug 24 03:23:46 2008 +0200 @@ -57,7 +57,7 @@ * @throws IllegalArgumentException if the context is <code>null</code> * @throws IllegalStateException if this method is called more than once */ - public final void setContext(IAdaptable context) throws IllegalStateException, IllegalArgumentException { + public final void setContext(IAdaptable context) { Assert.isLegal(context !is null); if (fContext !is null) throw new IllegalStateException();
--- a/dwtx/jface/text/hyperlink/HyperlinkManager.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/hyperlink/HyperlinkManager.d Sun Aug 24 03:23:46 2008 +0200 @@ -180,7 +180,7 @@ text.addMouseTrackListener(this); fTextViewer.addTextListener(this); - + fHyperlinkPresenter.install(fTextViewer); } @@ -234,7 +234,7 @@ text.removeMouseTrackListener(this); } fTextViewer.removeTextListener(this); - + fHyperlinkPresenter.uninstall(); fHyperlinkPresenter= null; @@ -252,7 +252,7 @@ /** * Finds hyperlinks at the current offset. - * + * * @return the hyperlinks or <code>null</code> if none. */ protected IHyperlink[] findHyperlinks() { @@ -268,7 +268,7 @@ IHyperlinkDetector detector= fHyperlinkDetectors[i]; if (detector is null) continue; - + if ( cast(IHyperlinkDetectorExtension2)detector ) { int stateMask= (cast(IHyperlinkDetectorExtension2)detector).getStateMask(); if (stateMask !is -1 && stateMask !is fActiveHyperlinkStateMask) @@ -287,7 +287,7 @@ if (fDetectionStrategy is FIRST) { if (hyperlinks.length is 1) return hyperlinks; - return new IHyperlink[] {hyperlinks[0]}; + return [hyperlinks[0]]; } allHyperlinks.addAll(Arrays.asList(hyperlinks)); } @@ -298,7 +298,7 @@ if (fDetectionStrategy !is ALL) { int maxLength= computeLongestHyperlinkLength(allHyperlinks); - Iterator iter= new ArrayList(allHyperlinks).iterator(); + Iterator iter= (new ArrayList(allHyperlinks)).iterator(); while (iter.hasNext()) { IHyperlink hyperlink= cast(IHyperlink)iter.next(); if (hyperlink.getHyperlinkRegion().getLength() < maxLength) @@ -307,16 +307,16 @@ } if (fDetectionStrategy is LONGEST_REGION_FIRST) - return new IHyperlink[] {cast(IHyperlink)allHyperlinks.get(0)}; + return [cast(IHyperlink)allHyperlinks.get(0)]; - return (IHyperlink[])allHyperlinks.toArray(new IHyperlink[allHyperlinks.size()]); + return arraycast!(IHyperlink)(allHyperlinks.toArray()); } /** * Computes the length of the longest detected * hyperlink. - * + * * @param hyperlinks * @return the length of the longest detected */ @@ -335,7 +335,7 @@ /** * Returns the current text offset. - * + * * @return the current text offset */ protected int getCurrentTextOffset() { @@ -353,7 +353,7 @@ Point p= text.getLocationAtOffset(widgetOffset); if (p.x > relativePosition.x) widgetOffset--; - + if ( cast(ITextViewerExtension5)fTextViewer ) { ITextViewerExtension5 extension= cast(ITextViewerExtension5)fTextViewer; return extension.widgetOffset2ModelOffset(widgetOffset); @@ -457,14 +457,14 @@ if (!(cast(IHyperlinkPresenterExtension)fHyperlinkPresenter).canHideHyperlinks()) return; } - + if (!isRegisteredStateMask(event.stateMask)) { if (fActive) deactivate(); - + return; } - + fActive= true; fActiveHyperlinkStateMask= event.stateMask; @@ -488,10 +488,10 @@ fHyperlinkPresenter.showHyperlinks(fActiveHyperlinks); } - + /** * Checks whether the given state mask is registered. - * + * * @param stateMask * @return <code>true</code> if a detector is registered for the given state mask * @since 3.3 @@ -499,10 +499,10 @@ private bool isRegisteredStateMask(int stateMask) { if (stateMask is fHyperlinkStateMask) return true; - + synchronized (fHyperlinkDetectors) { for (int i= 0; i < fHyperlinkDetectors.length; i++) { - if (fHyperlinkDetectors[i] instanceof IHyperlinkDetectorExtension2) { + if (cast(IHyperlinkDetectorExtension2)fHyperlinkDetectors[i] ) { if (stateMask is (cast(IHyperlinkDetectorExtension2)fHyperlinkDetectors[i]).getStateMask()) return true; } @@ -510,7 +510,7 @@ } return false; } - + /* * @see dwt.events.FocusListener#focusGained(dwt.events.FocusEvent) */ @@ -531,7 +531,7 @@ //key up deactivate(); } - + /* * @see dwtx.jface.text.ITextListener#textChanged(TextEvent) * @since 3.2 @@ -543,7 +543,7 @@ /** * {@inheritDoc} - * + * * @since 3.4 */ public void mouseExit(MouseEvent e) { @@ -556,7 +556,7 @@ /** * {@inheritDoc} - * + * * @since 3.4 */ public void mouseEnter(MouseEvent e) { @@ -564,7 +564,7 @@ /** * {@inheritDoc} - * + * * @since 3.4 */ public void mouseHover(MouseEvent e) {
--- a/dwtx/jface/text/hyperlink/HyperlinkMessages.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/hyperlink/HyperlinkMessages.d Sun Aug 24 03:23:46 2008 +0200 @@ -34,20 +34,25 @@ /** * Helper class to get NLSed messages. - * + * * @since 3.4 */ class HyperlinkMessages { - private static final String BUNDLE_NAME= HyperlinkMessages.class.getName(); - - private static final ResourceBundle RESOURCE_BUNDLE= ResourceBundle.getBundle(BUNDLE_NAME); - +// private static final String BUNDLE_NAME= HyperlinkMessages.class.getName(); + + private static final ResourceBundle RESOURCE_BUNDLE;//= ResourceBundle.getBundle(BUNDLE_NAME); + + static this() { + RESOURCE_BUNDLE = ResourceBundle.getBundle( + getImportData!("dwtx.jface.text.HyperlinkMessages.properties")); + } + private this() { } /** * Gets a string from the resource bundle. - * + * * @param key the string used to get the bundle value, must not be * <code>null</code> * @return the string from the resource bundle @@ -56,7 +61,7 @@ try { return RESOURCE_BUNDLE.getString(key); } catch (MissingResourceException e) { - return '!' + key + '!'; + return '!' ~ key ~ '!'; } } }
--- a/dwtx/jface/text/hyperlink/MultipleHyperlinkPresenter.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/hyperlink/MultipleHyperlinkPresenter.d Sun Aug 24 03:23:46 2008 +0200 @@ -79,38 +79,38 @@ /** * A hyperlink presenter capable of showing multiple hyperlinks in a hover. - * + * * @since 3.4 */ public class MultipleHyperlinkPresenter : DefaultHyperlinkPresenter { - + /** * An information control capable of showing a list of hyperlinks. The hyperlinks can be opened. */ private static class LinkListInformationControl : AbstractInformationControl , IInformationControlExtension2 { - + private static final class LinkContentProvider : IStructuredContentProvider { - + /* * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements(Object inputElement) { return (Object[]) inputElement; } - + /* * @see dwtx.jface.viewers.IContentProvider#dispose() */ public void dispose() { } - + /* * @see dwtx.jface.viewers.IContentProvider#inputChanged(dwtx.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } } - + private static final class LinkLabelProvider : ColumnLabelProvider { /* * @see dwtx.jface.viewers.ColumnLabelProvider#getText(java.lang.Object) @@ -123,17 +123,17 @@ return HyperlinkMessages.getString("LinkListInformationControl.unknownLink"); //$NON-NLS-1$ } } - + private final MultipleHyperlinkHoverManager fManager; - + private IHyperlink[] fInput; private Composite fParent; private Table fTable; private Color fForegroundColor; private Color fBackgroundColor; - - + + /** * Creates a link list information control with the given shell as parent. * @@ -149,14 +149,14 @@ fBackgroundColor= backgroundColor; create(); } - + /* * @see dwtx.jface.text.IInformationControl#setInformation(java.lang.String) */ public void setInformation(String information) { //replaced by IInformationControlExtension2#setInput(java.lang.Object) } - + /* * @see dwtx.jface.text.IInformationControlExtension2#setInput(java.lang.Object) */ @@ -164,7 +164,7 @@ fInput= (IHyperlink[]) input; deferredCreateContent(fParent); } - + /* * @see dwtx.jface.text.AbstractInformationControl#createContent(dwt.widgets.Composite) */ @@ -179,23 +179,23 @@ fParent.setForeground(fForegroundColor); fParent.setBackground(fBackgroundColor); } - + /* * @see dwtx.jface.text.AbstractInformationControl#computeSizeHint() */ public Point computeSizeHint() { Point preferedSize= getShell().computeSize(DWT.DEFAULT, DWT.DEFAULT, true); - + Point constraints= getSizeConstraints(); if (constraints is null) return preferedSize; - + if (fTable.getVerticalBar() is null || fTable.getHorizontalBar() is null) return Geometry.min(constraints, preferedSize); - + int scrollBarWidth= fTable.getVerticalBar().getSize().x; int scrollBarHeight= fTable.getHorizontalBar().getSize().y; - + int width; if (preferedSize.y - scrollBarHeight <= constraints.y) { width= preferedSize.x - scrollBarWidth; @@ -203,7 +203,7 @@ } else { width= Math.min(preferedSize.x, constraints.x); } - + int height; if (preferedSize.x - scrollBarWidth <= constraints.x) { height= preferedSize.y - scrollBarHeight; @@ -211,27 +211,27 @@ } else { height= Math.min(preferedSize.y, constraints.y); } - + return new Point(width, height); } - + private void deferredCreateContent(Composite parent) { fTable= new Table(parent, DWT.SINGLE | DWT.FULL_SELECTION); fTable.setLinesVisible(false); fTable.setHeaderVisible(false); fTable.setForeground(fForegroundColor); fTable.setBackground(fBackgroundColor); - + final TableViewer viewer= new TableViewer(fTable); viewer.setContentProvider(new LinkContentProvider()); viewer.setLabelProvider(new LinkLabelProvider()); viewer.setInput(fInput); fTable.setSelection(0); - + registerTableListeners(); - + getShell().addShellListener(new class() ShellAdapter { - + /* * @see dwt.events.ShellAdapter#shellActivated(dwt.events.ShellEvent) */ @@ -239,17 +239,17 @@ if (viewer.getTable().getSelectionCount() is 0) { viewer.getTable().setSelection(0); } - + viewer.getTable().setFocus(); } }); } - + private void registerTableListeners() { - + fTable.addMouseMoveListener(new class() MouseMoveListener { TableItem fLastItem= null; - + public void mouseMove(MouseEvent e) { if (fTable.equals(e.getSource())) { Object o= fTable.getItem(new Point(e.x, e.y)); @@ -257,41 +257,41 @@ TableItem item= cast(TableItem) o; if (!o.equals(fLastItem)) { fLastItem= cast(TableItem) o; - fTable.setSelection(new TableItem[] { fLastItem }); + fTable.setSelection([ fLastItem ]); } else if (e.y < fTable.getItemHeight() / 4) { // Scroll up int index= fTable.indexOf(item); if (index > 0) { fLastItem= fTable.getItem(index - 1); - fTable.setSelection(new TableItem[] { fLastItem }); + fTable.setSelection([ fLastItem ]); } } else if (e.y > fTable.getBounds().height - fTable.getItemHeight() / 4) { // Scroll down int index= fTable.indexOf(item); if (index < fTable.getItemCount() - 1) { fLastItem= fTable.getItem(index + 1); - fTable.setSelection(new TableItem[] { fLastItem }); + fTable.setSelection([ fLastItem ]); } } } } } }); - + fTable.addSelectionListener(new class() SelectionAdapter { public void widgetSelected(SelectionEvent e) { openSelectedLink(); } }); - + fTable.addMouseListener(new class() MouseAdapter { public void mouseUp(MouseEvent e) { if (fTable.getSelectionCount() < 1) return; - + if (e.button !is 1) return; - + if (fTable.equals(e.getSource())) { Object o= fTable.getItem(new Point(e.x, e.y)); TableItem selection= fTable.getSelection()[0]; @@ -300,7 +300,7 @@ } } }); - + fTable.addKeyListener(new class() KeyAdapter { public void keyPressed(KeyEvent e) { if (e.keyCode is 0x0D) // return @@ -308,7 +308,7 @@ } }); } - + /* * @see dwtx.jface.text.IInformationControlExtension#hasContents() */ @@ -326,9 +326,9 @@ link.open(); } } - + private class MultipleHyperlinkHover : ITextHover, ITextHoverExtension { - + /** * @see dwtx.jface.text.ITextHover#getHoverInfo(dwtx.jface.text.ITextViewer, dwtx.jface.text.IRegion) * @deprecated @@ -336,21 +336,21 @@ public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) { return null; } - + /* * @see dwtx.jface.text.ITextHover#getHoverRegion(dwtx.jface.text.ITextViewer, int) */ public IRegion getHoverRegion(ITextViewer textViewer, int offset) { return fSubjectRegion; } - + /* * @see dwtx.jface.text.ITextHoverExtension2#getHoverInfo2(dwtx.jface.text.ITextViewer, dwtx.jface.text.IRegion) */ public Object getHoverInfo2(ITextViewer textViewer, IRegion hoverRegion) { return fHyperlinks; } - + /* * @see dwtx.jface.text.ITextHoverExtension#getHoverControlCreator() */ @@ -364,36 +364,36 @@ }; } } - + private static class MultipleHyperlinkHoverManager : AbstractInformationControlManager , IWidgetTokenKeeper, IWidgetTokenKeeperExtension { - + private class Closer : IInformationControlCloser, Listener, KeyListener { - + private Control fSubjectControl; private Display fDisplay; private IInformationControl fControl; private Rectangle fSubjectArea; - + /* * @see dwtx.jface.text.AbstractInformationControlManager.IInformationControlCloser#setInformationControl(dwtx.jface.text.IInformationControl) */ public void setInformationControl(IInformationControl control) { fControl= control; } - + /* * @see dwtx.jface.text.AbstractInformationControlManager.IInformationControlCloser#setSubjectControl(dwt.widgets.Control) */ public void setSubjectControl(Control subject) { fSubjectControl= subject; } - + /* * @see dwtx.jface.text.AbstractInformationControlManager.IInformationControlCloser#start(dwt.graphics.Rectangle) */ public void start(Rectangle subjectArea) { fSubjectArea= subjectArea; - + fDisplay= fSubjectControl.getDisplay(); if (!fDisplay.isDisposed()) { fDisplay.addFilter(DWT.FocusOut, this); @@ -401,7 +401,7 @@ fTextViewer.getTextWidget().addKeyListener(this); } } - + /* * @see dwtx.jface.text.AbstractInformationControlManager.IInformationControlCloser#stop() */ @@ -411,10 +411,10 @@ fDisplay.removeFilter(DWT.MouseMove, this); fTextViewer.getTextWidget().removeKeyListener(this); } - + fSubjectArea= null; } - + /* * @see dwt.widgets.Listener#handleEvent(dwt.widgets.Event) */ @@ -429,41 +429,41 @@ break; } } - + /** * Handle mouse movement events. - * + * * @param event the event */ private void handleMouseMove(Event event) { - if (!(event.widget instanceof Control)) + if (!(cast(Control)event.widget )) return; - + if (fControl.isFocusControl()) return; - + Control eventControl= cast(Control) event.widget; - + //transform coordinates to subject control: Point mouseLoc= event.display.map(eventControl, fSubjectControl, event.x, event.y); - + if (fSubjectArea.contains(mouseLoc)) return; - + if (inKeepUpZone(mouseLoc.x, mouseLoc.y, (cast(IInformationControlExtension3) fControl).getBounds())) return; - + hideInformationControl(); } - + /** * Tests whether a given mouse location is within the keep-up zone. * The hover should not be hidden as long as the mouse stays inside this zone. - * + * * @param x the x coordinate, relative to the <em>subject control</em> * @param y the y coordinate, relative to the <em>subject control</em> * @param controlBounds the bounds of the current control - * + * * @return <code>true</code> iff the mouse event occurred in the keep-up zone */ private bool inKeepUpZone(int x, int y, Rectangle controlBounds) { @@ -476,23 +476,23 @@ // +--------------------+ if (fSubjectArea.contains(x, y)) return true; - + Rectangle iControlBounds= fSubjectControl.getDisplay().map(null, fSubjectControl, controlBounds); Rectangle totalBounds= Geometry.copy(iControlBounds); if (totalBounds.contains(x, y)) return true; - + int keepUpY= fSubjectArea.y + fSubjectArea.height; Rectangle alsoKeepUp= new Rectangle(fSubjectArea.x, keepUpY, fSubjectArea.width, totalBounds.y - keepUpY); return alsoKeepUp.contains(x, y); } - + /* * @see dwt.events.KeyListener#keyPressed(dwt.events.KeyEvent) */ public void keyPressed(KeyEvent e) { } - + /* * @see dwt.events.KeyListener#keyReleased(dwt.events.KeyEvent) */ @@ -501,41 +501,41 @@ } } - + /** * Priority of the hover managed by this manager. * Default value: One higher then for the hovers * managed by TextViewerHoverManager. */ private static final int WIDGET_TOKEN_PRIORITY= 1; - + private final MultipleHyperlinkHover fHover; private final ITextViewer fTextViewer; private final MultipleHyperlinkPresenter fHyperlinkPresenter; private Closer fCloser; private bool fIsControlVisible; - + /** * Create a new MultipleHyperlinkHoverManager. The MHHM can show and hide * the given MultipleHyperlinkHover inside the given ITextViewer. - * + * * @param hover the hover to manage * @param viewer the viewer to show the hover in * @param hyperlinkPresenter the hyperlink presenter using this manager to present hyperlinks */ public this(MultipleHyperlinkHover hover, ITextViewer viewer, MultipleHyperlinkPresenter hyperlinkPresenter) { super(hover.getHoverControlCreator()); - + fHover= hover; fTextViewer= viewer; fHyperlinkPresenter= hyperlinkPresenter; - + fCloser= new Closer(); setCloser(fCloser); fIsControlVisible= false; } - + /* * @see dwtx.jface.text.AbstractInformationControlManager#computeInformation() */ @@ -545,32 +545,32 @@ setInformation(null, null); return; } - + Rectangle area= JFaceTextUtil.computeArea(region, fTextViewer); if (area is null || area.isEmpty()) { setInformation(null, null); return; } - + Object information= fHover.getHoverInfo2(fTextViewer, region); setCustomInformationControlCreator(fHover.getHoverControlCreator()); setInformation(information, area); } - - /* + + /* * @see dwtx.jface.text.AbstractInformationControlManager#computeInformationControlLocation(dwt.graphics.Rectangle, dwt.graphics.Point) */ protected Point computeInformationControlLocation(Rectangle subjectArea, Point controlSize) { Point result= super.computeInformationControlLocation(subjectArea, controlSize); - + Point cursorLocation= fTextViewer.getTextWidget().getDisplay().getCursorLocation(); if (cursorLocation.x <= result.x + controlSize.x) return result; - + result.x= cursorLocation.x + 20 - controlSize.x; return result; } - + /* * @see dwtx.jface.text.AbstractInformationControlManager#showInformationControl(dwt.graphics.Rectangle) */ @@ -584,38 +584,38 @@ } else { super.showInformationControl(subjectArea); } - + fIsControlVisible= true; } - + /* * @see dwtx.jface.text.AbstractInformationControlManager#hideInformationControl() */ protected void hideInformationControl() { super.hideInformationControl(); - + if ( cast(IWidgetTokenOwner)fTextViewer ) { (cast(IWidgetTokenOwner) fTextViewer).releaseWidgetToken(this); } - + fIsControlVisible= false; fHyperlinkPresenter.hideHyperlinks(); } - + /* * @see dwtx.jface.text.AbstractInformationControlManager#disposeInformationControl() */ public void disposeInformationControl() { super.disposeInformationControl(); - + if ( cast(IWidgetTokenOwner)fTextViewer ) { (cast(IWidgetTokenOwner) fTextViewer).releaseWidgetToken(this); } - + fIsControlVisible= false; fHyperlinkPresenter.hideHyperlinks(); } - + /* * @see dwtx.jface.text.IWidgetTokenKeeper#requestWidgetToken(dwtx.jface.text.IWidgetTokenOwner) */ @@ -623,42 +623,42 @@ hideInformationControl(); return true; } - + /* * @see dwtx.jface.text.IWidgetTokenKeeperExtension#requestWidgetToken(dwtx.jface.text.IWidgetTokenOwner, int) */ public bool requestWidgetToken(IWidgetTokenOwner owner, int priority) { if (priority < WIDGET_TOKEN_PRIORITY) return false; - + hideInformationControl(); return true; } - + /* * @see dwtx.jface.text.IWidgetTokenKeeperExtension#setFocus(dwtx.jface.text.IWidgetTokenOwner) */ public bool setFocus(IWidgetTokenOwner owner) { return false; } - + /** * Returns <code>true</code> if the information control managed by * this manager is visible, <code>false</code> otherwise. - * + * * @return <code>true</code> if information control is visible */ public bool isInformationControlVisible() { return fIsControlVisible; } } - + private ITextViewer fTextViewer; - + private IHyperlink[] fHyperlinks; private Region fSubjectRegion; private MultipleHyperlinkHoverManager fManager; - + /** * Creates a new multiple hyperlink presenter which uses * {@link #HYPERLINK_COLOR} to read the color from the given preference store. @@ -668,7 +668,7 @@ public this(IPreferenceStore store) { super(store); } - + /** * Creates a new multiple hyperlink presenter. * @@ -677,80 +677,80 @@ public this(RGB color) { super(color); } - + /* * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#install(dwtx.jface.text.ITextViewer) */ public void install(ITextViewer viewer) { super.install(viewer); fTextViewer= viewer; - + fManager= new MultipleHyperlinkHoverManager(new MultipleHyperlinkHover(), fTextViewer, this); fManager.install(viewer.getTextWidget()); fManager.setSizeConstraints(100, 12, false, true); } - + /* * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#uninstall() */ public void uninstall() { super.uninstall(); - + if (fTextViewer !is null) { fManager.dispose(); - + fTextViewer= null; } } - + /* * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#canShowMultipleHyperlinks() */ public bool canShowMultipleHyperlinks() { return true; } - + /* * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#canHideHyperlinks() */ public bool canHideHyperlinks() { return !fManager.isInformationControlVisible(); } - + /* * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#hideHyperlinks() */ public void hideHyperlinks() { super.hideHyperlinks(); - + fHyperlinks= null; } - + /* * @see dwtx.jface.text.hyperlink.DefaultHyperlinkPresenter#showHyperlinks(dwtx.jface.text.hyperlink.IHyperlink[]) */ public void showHyperlinks(IHyperlink[] hyperlinks) { - super.showHyperlinks(new IHyperlink[] { hyperlinks[0] }); + super.showHyperlinks([ hyperlinks[0] ]); fSubjectRegion= null; fHyperlinks= hyperlinks; - + if (hyperlinks.length is 1) return; - + int start= hyperlinks[0].getHyperlinkRegion().getOffset(); int end= start + hyperlinks[0].getHyperlinkRegion().getLength(); - + for (int i= 1; i < hyperlinks.length; i++) { int hstart= hyperlinks[i].getHyperlinkRegion().getOffset(); int hend= hstart + hyperlinks[i].getHyperlinkRegion().getLength(); - + start= Math.min(start, hstart); end= Math.max(end, hend); } - + fSubjectRegion= new Region(start, end - start); - + fManager.showInformation(); } }
--- a/dwtx/jface/text/hyperlink/URLHyperlink.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/hyperlink/URLHyperlink.d Sun Aug 24 03:23:46 2008 +0200 @@ -91,12 +91,12 @@ * @see dwtx.jdt.internal.ui.javaeditor.IHyperlink#getHyperlinkText() */ public String getHyperlinkText() { - return MessageFormat.format(HyperlinkMessages.getString("URLHyperlink.hyperlinkText"), new Object[] { fURLString }); //$NON-NLS-1$ + return MessageFormat.format(HyperlinkMessages.getString("URLHyperlink.hyperlinkText"), fURLString ); //$NON-NLS-1$ } /** * Returns the URL string of this hyperlink. - * + * * @return the URL string * @since 3.2 */
--- a/dwtx/jface/text/hyperlink/URLHyperlinkDetector.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/hyperlink/URLHyperlinkDetector.d Sun Aug 24 03:23:46 2008 +0200 @@ -55,7 +55,7 @@ */ public this() { } - + /** * Creates a new URL hyperlink detector. * @@ -94,7 +94,7 @@ bool startDoubleQuote= false; int urlOffsetInLine= 0; int urlLength= 0; - + int urlSeparatorOffset= line.indexOf("://"); //$NON-NLS-1$ while (urlSeparatorOffset >= 0) { @@ -118,10 +118,10 @@ urlLength= tokenizer.nextToken().length() + 3 + urlSeparatorOffset - urlOffsetInLine; if (offsetInLine >= urlOffsetInLine && offsetInLine <= urlOffsetInLine + urlLength) break; - + urlSeparatorOffset= line.indexOf("://", urlSeparatorOffset + 1); //$NON-NLS-1$ } - + if (urlSeparatorOffset < 0) return null; @@ -149,7 +149,7 @@ } IRegion urlRegion= new Region(lineInfo.getOffset() + urlOffsetInLine, urlLength); - return new IHyperlink[] {new URLHyperlink(urlRegion, urlString)}; + return [new URLHyperlink(urlRegion, urlString)]; } }
--- a/dwtx/jface/text/link/InclusivePositionUpdater.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/link/InclusivePositionUpdater.d Sun Aug 24 03:23:46 2008 +0200 @@ -105,7 +105,7 @@ position.setLength(length - deleted + eventNewLength); } else { // event consumes the position - delete it - position.delete(); + position.delete_(); } } } catch (BadPositionCategoryException e) {
--- a/dwtx/jface/text/link/LinkedModeModel.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/link/LinkedModeModel.d Sun Aug 24 03:23:46 2008 +0200 @@ -159,7 +159,7 @@ /* * @see dwtx.jface.text.IDocumentExtension.IReplace#perform(dwtx.jface.text.IDocument, dwtx.jface.text.IDocumentListener) */ - public void perform(IDocument document, IDocumentListener owner) throws RuntimeException, MalformedTreeException { + public void perform(IDocument document, IDocumentListener owner) { document.removeDocumentListener(owner); fIsChanging= true; try {
--- a/dwtx/jface/text/link/LinkedModeUI.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/link/LinkedModeUI.d Sun Aug 24 03:23:46 2008 +0200 @@ -719,7 +719,7 @@ // TODO find a way to set up content assistant. // fAssistant.setDocumentPartitioning(IJavaPartitions.JAVA_PARTITIONING); fAssistant.enableColoredLabels(fIsColoredLabelsSupportEnabled); - fCaretPosition.delete(); + fCaretPosition.delete_(); } /**
--- a/dwtx/jface/text/projection/ProjectionDocument.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/projection/ProjectionDocument.d Sun Aug 24 03:23:46 2008 +0200 @@ -199,17 +199,17 @@ /** * Returns the projection mapping used by this document. - * + * * @return the projection mapping used by this document * @deprecated As of 3.4, replaced by {@link #getDocumentInformationMapping()} */ public ProjectionMapping getProjectionMapping(){ return fMapping; } - + /** * Returns the projection mapping used by this document. - * + * * @return the projection mapping used by this document * @since 3.4 */ @@ -225,7 +225,7 @@ public IDocument getMasterDocument() { return fMasterDocument; } - + /* * @see dwtx.jface.text.IDocumentExtension4#getDefaultLineDelimiter() * @since 3.1 @@ -233,7 +233,7 @@ public String getDefaultLineDelimiter() { return TextUtilities.getDefaultLineDelimiter(fMasterDocument); } - + /** * Initializes the projection document from the master document based on * the master's fragments. @@ -272,7 +272,7 @@ * @throws BadLocationException in case the fragment is invalid * @throws BadPositionCategoryException in case the segment category is invalid */ - private Segment createSegmentFor(Fragment fragment, int index) throws BadLocationException, BadPositionCategoryException { + private Segment createSegmentFor(Fragment fragment, int index) { int offset= 0; if (index > 0) { @@ -478,7 +478,7 @@ fragments= fMapping.toExactOriginRegions(imageRegion); if (fragments is null || fragments.length is 0) - return new IRegion[] { new Region(offsetInMaster, lengthInMaster) }; + return [ new Region(offsetInMaster, lengthInMaster) ]; List gaps= new ArrayList(); @@ -843,7 +843,7 @@ // join fragments and their corresponding segments segment.setLength(segment.getLength() + next.getLength()); fragment.setLength(fragment.getLength() + next.fragment.getLength()); - next.delete(); + next.delete_(); } } }
--- a/dwtx/jface/text/projection/ProjectionDocumentManager.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/projection/ProjectionDocumentManager.d Sun Aug 24 03:23:46 2008 +0200 @@ -103,7 +103,7 @@ * @return <code>true</code> if the given document is a master document known to this manager */ private bool hasProjection(IDocument master) { - return (fProjectionRegistry.get(master) instanceof List); + return (cast(List)fProjectionRegistry.get(master) ); } /**
--- a/dwtx/jface/text/projection/ProjectionMapping.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/projection/ProjectionMapping.d Sun Aug 24 03:23:46 2008 +0200 @@ -549,7 +549,7 @@ public IRegion[] toExactOriginRegions(IRegion imageRegion) { if (imageRegion.getLength() is 0) - return new IRegion[] { new Region(toOriginOffset(imageRegion.getOffset()), 0) }; + return [ new Region(toOriginOffset(imageRegion.getOffset()), 0) ]; int endOffset= exclusiveEnd(imageRegion); Position[] segments= getSegments(); @@ -602,7 +602,7 @@ int offset= originRegion.getOffset(); if (originRegion.getLength() is 0) { int imageOffset= toImageOffset(offset); - return imageOffset > -1 ? new IRegion[] { new Region(imageOffset, 0) } : null; + return imageOffset > -1 ? [ new Region(imageOffset, 0) ] : null; } int endOffset= exclusiveEnd(originRegion); @@ -649,7 +649,7 @@ if (originLength is 0) { int imageOffset= toImageOffset(originOffset); - return imageOffset > -1 ? new IRegion[] { new Region(originOffset, 0) } : null; + return imageOffset > -1 ? [ new Region(originOffset, 0) ] : null; } int endOffset= originOffset + originLength;
--- a/dwtx/jface/text/reconciler/Reconciler.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/reconciler/Reconciler.d Sun Aug 24 03:23:46 2008 +0200 @@ -118,7 +118,7 @@ fStrategies.remove(contentType); else { fStrategies.put(contentType, strategy); - if (strategy instanceof IReconcilingStrategyExtension && getProgressMonitor() !is null) { + if (cast(IReconcilingStrategyExtension )strategy && getProgressMonitor() !is null) { IReconcilingStrategyExtension extension= cast(IReconcilingStrategyExtension) strategy; extension.setProgressMonitor(getProgressMonitor()); }
--- a/dwtx/jface/text/source/AnnotationModel.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/source/AnnotationModel.d Sun Aug 24 03:23:46 2008 +0200 @@ -887,7 +887,7 @@ Annotation a= cast(Annotation) e.next(); Position p= cast(Position) fAnnotations.get(a); removePosition(fDocument, p); -// p.delete(); +// p.delete_(); synchronized (getLockObject()) { getAnnotationModelEvent().annotationRemoved(a, p); } @@ -922,7 +922,7 @@ p= cast(Position) fAnnotations.get(annotation); if (fDocument !is null) { removePosition(fDocument, p); -// p.delete(); +// p.delete_(); } fAnnotations.remove(annotation);
--- a/dwtx/jface/text/source/AnnotationPainter.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/source/AnnotationPainter.d Sun Aug 24 03:23:46 2008 +0200 @@ -627,7 +627,7 @@ isWorldChange= true; if (DEBUG && event is null) - System.out.println("AP: INTERNAL CHANGE"); //$NON-NLS-1$ + System.out_.println("AP: INTERNAL CHANGE"); //$NON-NLS-1$ Iterator iter= decorationsMap.entrySet().iterator(); while (iter.hasNext()) { @@ -1022,7 +1022,7 @@ if ( cast(ITextViewerExtension2)fSourceViewer ) { if cast(DEBUG) - System.out.println("AP: invalidating offset: " + r.getOffset() + ", length= " + r.getLength()); //$NON-NLS-1$ //$NON-NLS-2$ + System.out_.println("AP: invalidating offset: " + r.getOffset() + ", length= " + r.getLength()); //$NON-NLS-1$ //$NON-NLS-2$ (cast(ITextViewerExtension2)fSourceViewer).invalidateTextPresentation(r.getOffset(), r.getLength()); @@ -1048,7 +1048,7 @@ IRegion region= tp.getExtent(); if cast(DEBUG) - System.out.println("AP: applying text presentation offset: " + region.getOffset() + ", length= " + region.getLength()); //$NON-NLS-1$ //$NON-NLS-2$ + System.out_.println("AP: applying text presentation offset: " + region.getOffset() + ", length= " + region.getLength()); //$NON-NLS-1$ //$NON-NLS-2$ for (int layer= 0, maxLayer= 1; layer < maxLayer; layer++) { @@ -1127,7 +1127,7 @@ } } else { if (DEBUG && event !is null && event.isWorldChange()) { - System.out.println("AP: WORLD CHANGED, stack trace follows:"); //$NON-NLS-1$ + System.out_.println("AP: WORLD CHANGED, stack trace follows:"); //$NON-NLS-1$ new Throwable().printStackTrace(System.out); }
--- a/dwtx/jface/text/templates/DocumentTemplateContext.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/templates/DocumentTemplateContext.d Sun Aug 24 03:23:46 2008 +0200 @@ -199,7 +199,7 @@ /* * @see dwtx.jface.text.templates.TemplateContext#evaluate(dwtx.jface.text.templates.Template) */ - public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException { + public TemplateBuffer evaluate(Template template) { if (!canEvaluate(template)) return null;
--- a/dwtx/jface/text/templates/InclusivePositionUpdater.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/templates/InclusivePositionUpdater.d Sun Aug 24 03:23:46 2008 +0200 @@ -107,7 +107,7 @@ position.setLength(length - deleted + eventNewLength); } else { // event consumes the position - delete it - position.delete(); + position.delete_(); } } } catch (BadPositionCategoryException e) {
--- a/dwtx/jface/text/templates/TemplateContextType.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/jface/text/templates/TemplateContextType.d Sun Aug 24 03:23:46 2008 +0200 @@ -247,7 +247,7 @@ * @throws MalformedTreeException if the positions in the buffer overlap * @throws BadLocationException if the buffer cannot be successfully modified */ - public void resolve(TemplateBuffer buffer, TemplateContext context) throws MalformedTreeException, BadLocationException { + public void resolve(TemplateBuffer buffer, TemplateContext context) { Assert.isNotNull(context); TemplateVariable[] variables= buffer.getVariables();
--- a/dwtx/text/edits/EditDocument.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/text/edits/EditDocument.d Sun Aug 24 03:23:46 2008 +0200 @@ -68,7 +68,7 @@ throw new UnsupportedOperationException(); } - public void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException { + public void addPosition(String category, Position position) { throw new UnsupportedOperationException(); } @@ -84,7 +84,7 @@ throw new UnsupportedOperationException(); } - public int computeIndexInCategory(String category, int offset) throws BadLocationException, BadPositionCategoryException { + public int computeIndexInCategory(String category, int offset) { throw new UnsupportedOperationException(); }
--- a/dwtx/text/edits/TextEdit.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/text/edits/TextEdit.d Sun Aug 24 03:23:46 2008 +0200 @@ -730,7 +730,7 @@ * * @see TextEditProcessor#performEdits() */ - public final UndoEdit apply(IDocument document, int style) throws MalformedTreeException, BadLocationException { + public final UndoEdit apply(IDocument document, int style) { try { TextEditProcessor processor= new TextEditProcessor(document, this, style); return processor.performEdits(); @@ -756,7 +756,7 @@ * undefined if this exception is thrown. * @see #apply(IDocument, int) */ - public final UndoEdit apply(IDocument document) throws MalformedTreeException, BadLocationException { + public final UndoEdit apply(IDocument document) { return apply(document, CREATE_UNDO | UPDATE_REGIONS); }
--- a/dwtx/text/edits/TextEditProcessor.d Sun Aug 24 02:31:41 2008 +0200 +++ b/dwtx/text/edits/TextEditProcessor.d Sun Aug 24 03:23:46 2008 +0200 @@ -172,7 +172,7 @@ * tree can't be executed. The state of the document is undefined if this * exception is thrown. */ - public UndoEdit performEdits() throws MalformedTreeException, BadLocationException { + public UndoEdit performEdits() { if (!fChecked) { fRoot.dispatchCheckIntegrity(this); } else {