1) Moved net.sourceforge.phpeclipse.ui\src\net\sourceforge\phpdt back to net.sourcefo...
[phpeclipse.git] / net.sourceforge.phpeclipse.ui / src / net / sourceforge / phpeclipse / phpeditor / LinePainter.java
diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/phpeditor/LinePainter.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/phpeditor/LinePainter.java
deleted file mode 100644 (file)
index b0f7533..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-package net.sourceforge.phpeclipse.phpeditor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.swt.custom.LineBackgroundEvent;
-import org.eclipse.swt.custom.LineBackgroundListener;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-
-public class LinePainter implements IPainter, LineBackgroundListener {
-
-       private final ISourceViewer fViewer;
-
-       private Color fHighlightColor;
-
-       private IPositionManager fPositionManager;
-
-       // positions to keep track of beginning and end of line to be painted or
-       // cleared
-       private Position fCurrentLine = new Position(0, 0);
-
-       private Position fLastLine = new Position(0, 0);
-
-       // used to keep track of the last line painted
-       private int fLastLineNumber = -1;
-
-       private boolean fIsActive;
-
-       public LinePainter(ISourceViewer sourceViewer) {
-               fViewer = sourceViewer;
-       }
-
-       public void setHighlightColor(Color highlightColor) {
-               fHighlightColor = highlightColor;
-       }
-
-       /*
-        * @see LineBackgroundListener#lineGetBackground(LineBackgroundEvent)
-        */
-       public void lineGetBackground(LineBackgroundEvent event) {
-               // don't use cached line information because of asynch painting
-
-               StyledText textWidget = fViewer.getTextWidget();
-               if (textWidget != null) {
-
-                       int caret = textWidget.getCaretOffset();
-                       int length = event.lineText.length();
-
-                       if (event.lineOffset <= caret && caret <= event.lineOffset + length)
-                               event.lineBackground = fHighlightColor;
-                       else
-                               event.lineBackground = textWidget.getBackground();
-               }
-       }
-
-       private boolean updateHighlightLine() {
-               try {
-
-                       IDocument document = fViewer.getDocument();
-
-                       int offset = fViewer.getTextWidget().getCaretOffset()
-                                       + fViewer.getVisibleRegion().getOffset();
-                       int lineNumber = document.getLineOfOffset(offset);
-
-                       // redraw if the current line number is different from the last line
-                       // number we painted
-                       // initially fLastLineNumber is -1
-                       if (lineNumber != fLastLineNumber) {
-
-                               fLastLine.offset = fCurrentLine.offset;
-                               fLastLine.length = fCurrentLine.length;
-                               fLastLine.isDeleted = fCurrentLine.isDeleted;
-
-                               fCurrentLine.isDeleted = false;
-                               fCurrentLine.offset = document.getLineOffset(lineNumber);
-                               if (lineNumber == document.getNumberOfLines() - 1)
-                                       fCurrentLine.length = document.getLength()
-                                                       - fCurrentLine.offset;
-                               else
-                                       fCurrentLine.length = document
-                                                       .getLineOffset(lineNumber + 1)
-                                                       - fCurrentLine.offset;
-
-                               fLastLineNumber = lineNumber;
-                               return true;
-
-                       }
-
-               } catch (BadLocationException e) {
-               }
-
-               return false;
-       }
-
-       private void drawHighlightLine(Position position, int visibleOffset) {
-               StyledText textWidget = fViewer.getTextWidget();
-
-               // if the position that is about to be drawn was deleted then we can't
-               if (position.isDeleted())
-                       return;
-
-               int delta = position.offset - visibleOffset;
-               if (0 <= delta && delta <= fViewer.getVisibleRegion().getLength()) {
-                       Point upperLeft = textWidget.getLocationAtOffset(delta);
-                       int width = textWidget.getClientArea().width
-                                       + textWidget.getHorizontalPixel();
-                       int height = textWidget.getLineHeight();
-                       textWidget.redraw(upperLeft.x, upperLeft.y, width, height, false);
-               }
-       }
-
-       /*
-        * @see IPainter#deactivate(boolean)
-        */
-       public void deactivate(boolean redraw) {
-               if (fIsActive) {
-                       fIsActive = false;
-
-                       /*
-                        * on turning off the feature one has to paint the currently
-                        * highlighted line with the standard background color
-                        */
-                       if (redraw)
-                               drawHighlightLine(fCurrentLine, fViewer.getVisibleRegion()
-                                               .getOffset());
-
-                       fViewer.getTextWidget().removeLineBackgroundListener(this);
-
-                       if (fPositionManager != null)
-                               fPositionManager.removeManagedPosition(fCurrentLine);
-
-                       fLastLineNumber = -1;
-               }
-       }
-
-       /*
-        * @see IPainter#dispose()
-        */
-       public void dispose() {
-       }
-
-       /*
-        * @see IPainter#paint(int)
-        */
-       public void paint(int reason) {
-
-               // check selection
-               Point selection = fViewer.getTextWidget().getSelectionRange();
-               if (selection.y > 0) {
-                       deactivate(true);
-                       return;
-               }
-
-               // initialization
-               if (!fIsActive) {
-                       fViewer.getTextWidget().addLineBackgroundListener(this);
-                       fPositionManager.addManagedPosition(fCurrentLine);
-                       fIsActive = true;
-               }
-
-               // redraw line highlight only if it hasn't been drawn yet on the
-               // respective line
-               if (updateHighlightLine()) {
-                       // used to handle segmented view of source files
-                       int visibleRegionOffset = fViewer.getVisibleRegion().getOffset();
-                       // clear last line
-                       drawHighlightLine(fLastLine, visibleRegionOffset);
-                       // draw new line
-                       drawHighlightLine(fCurrentLine, visibleRegionOffset);
-               }
-       }
-
-       /*
-        * @see IPainter#setPositionManager(IPositionManager)
-        */
-       public void setPositionManager(IPositionManager manager) {
-               fPositionManager = manager;
-       }
-}
\ No newline at end of file