Package org.eclipse.jface.text

Examples of org.eclipse.jface.text.ITextViewerExtension5


        int lineNumber= fParentRuler.getLineOfLastMouseButtonActivity();
        final StyledText textWidget= fCachedTextViewer.getTextWidget();
        if (textWidget != null && !textWidget.isFocusControl())
          textWidget.setFocus();
        if (expandExistingSelection && fCachedTextViewer instanceof ITextViewerExtension5 && textWidget != null) {
          ITextViewerExtension5 extension5= ((ITextViewerExtension5)fCachedTextViewer);
          // Find model cursor position
          int widgetCaret= textWidget.getCaretOffset();
          int modelCaret= extension5.widgetOffset2ModelOffset(widgetCaret);
          // Find model selection range
          Point selection= fCachedTextViewer.getSelectedRange();
          // Start from tail of selection range (opposite of cursor position)
          int startOffset= modelCaret == selection.x ? selection.x + selection.y : selection.x;
View Full Code Here


            if (p.x > relativePosition.x)
              widgetOffset--;

            // Convert to model offset
            if (fCachedTextViewer instanceof ITextViewerExtension5) {
              ITextViewerExtension5 extension= (ITextViewerExtension5)fCachedTextViewer;
              offset= extension.widgetOffset2ModelOffset(widgetOffset);
            } else
              offset= widgetOffset + fCachedTextViewer.getVisibleRegion().getOffset();

          } catch (IllegalArgumentException ex) {
            int lineEndOffset= lineInfo.getOffset() + lineInfo.getLength();

            // Convert to widget offset
            int lineEndWidgetOffset;
            if (fCachedTextViewer instanceof ITextViewerExtension5) {
              ITextViewerExtension5 extension= (ITextViewerExtension5)fCachedTextViewer;
              lineEndWidgetOffset= extension.modelOffset2WidgetOffset(lineEndOffset);
            } else
              lineEndWidgetOffset= lineEndOffset - fCachedTextViewer.getVisibleRegion().getOffset();

            Point p= fCachedTextWidget.getLocationAtOffset(lineEndWidgetOffset);
            if (p.x < relativePosition.x)
View Full Code Here

    Rectangle r= new Rectangle(0, 0, 0, 0);
    int yy, hh= ANNOTATION_HEIGHT;

    IDocument document= fTextViewer.getDocument();
    StyledText textWidget= fTextViewer.getTextWidget();
    ITextViewerExtension5 extension= null;
    IRegion visible= null;
    if (fTextViewer instanceof ITextViewerExtension5)
      extension= (ITextViewerExtension5) fTextViewer;
    else
      visible= fTextViewer.getVisibleRegion(); // legacy support

    WidgetInfos infos= null;
   
    for (Iterator iterator= fAnnotationsSortedByLayer.iterator(); iterator.hasNext();) {
      Object annotationType= iterator.next();

      if (skip(annotationType))
        continue;

      int[] style= new int[] { FilterIterator.PERSISTENT, FilterIterator.TEMPORARY };
      for (int t=0; t < style.length; t++) {
        boolean areColorsComputed= false;
        Color fill= null;
        Color stroke= null;

        Iterator e= new FilterIterator(annotationType, style[t], fCachedAnnotations.iterator());
        while (e.hasNext()) {
          Annotation a= (Annotation) e.next();
          Position p= fModel.getPosition(a);

          if (p == null)
            continue;
          if (visible != null && !p.overlapsWith(visible.getOffset(), visible.getLength()))
            continue;

          int annotationOffset= p.getOffset();
          int annotationLength= p.getLength();
          IRegion widgetRegion= null;
          if (visible != null) {
            annotationOffset= Math.max(p.getOffset(), visible.getOffset());
            int annotationEnd= Math.min(p.getOffset() + p.getLength(), visible.getOffset() + visible.getLength());
            annotationLength= annotationEnd - annotationOffset;
          } else {
            widgetRegion= extension.modelRange2WidgetRange(new Region(annotationOffset, annotationLength));
            if (widgetRegion == null)
              continue;
          }
         
          if (infos == null) {
View Full Code Here

   
    if (lines[1] > infos.maxLines)
      lines[1]= infos.maxLines;
   
    if (fTextViewer instanceof ITextViewerExtension5) {
      ITextViewerExtension5 extension= (ITextViewerExtension5) fTextViewer;
      lines[0]= extension.widgetLine2ModelLine(lines[0]);
      lines[1]= extension.widgetLine2ModelLine(lines[1]);
    } else {
      try {
        IRegion visible= fTextViewer.getVisibleRegion();
        int lineNumber= fTextViewer.getDocument().getLineOfOffset(visible.getOffset());
        lines[0] += lineNumber;
View Full Code Here

  protected void doPaint1(GC gc) {

    if (fModel == null || fCachedTextViewer == null)
      return;

    ITextViewerExtension5 extension= (ITextViewerExtension5) fCachedTextViewer;

    fScrollPos= fCachedTextWidget.getTopPixel();
    Point dimension= fCanvas.getSize();

    int vOffset= getInclusiveTopIndexStartOffset();
    int vLength= getExclusiveBottomIndexEndOffset() - vOffset;

    // draw Annotations
    Rectangle r= new Rectangle(0, 0, 0, 0);
    ReusableRegion range= new ReusableRegion();

    int minLayer= Integer.MAX_VALUE, maxLayer= Integer.MIN_VALUE;
    fCachedAnnotations.clear();
    Iterator iter;
    if (fModel instanceof IAnnotationModelExtension2)
      iter= ((IAnnotationModelExtension2)fModel).getAnnotationIterator(vOffset, vLength + 1, true, true);
    else
      iter= fModel.getAnnotationIterator();

    while (iter.hasNext()) {
      Annotation annotation= (Annotation) iter.next();

      if (skip(annotation))
        continue;

      Position position= fModel.getPosition(annotation);
      if (position == null)
        continue;

      // https://bugs.eclipse.org/bugs/show_bug.cgi?id=217710
      int extendedVLength= position.getLength() == 0 ? vLength + 1 : vLength;
      if (!position.overlapsWith(vOffset, extendedVLength))
        continue;

      int lay= IAnnotationAccessExtension.DEFAULT_LAYER;
      if (fAnnotationAccessExtension != null)
        lay= fAnnotationAccessExtension.getLayer(annotation);

      minLayer= Math.min(minLayer, lay);
      maxLayer= Math.max(maxLayer, lay);
      fCachedAnnotations.add(new Tuple(annotation, position));
    }
    Collections.sort(fCachedAnnotations, fTupleComparator);

    for (int layer= minLayer; layer <= maxLayer; layer++) {
      for (int i= 0, n= fCachedAnnotations.size(); i < n; i++) {
        Tuple tuple= (Tuple) fCachedAnnotations.get(i);
        Annotation annotation= tuple.annotation;
        Position position= tuple.position;

        int lay= IAnnotationAccessExtension.DEFAULT_LAYER;
        if (fAnnotationAccessExtension != null)
          lay= fAnnotationAccessExtension.getLayer(annotation);
        if (lay != layer// wrong layer: skip annotation
          continue;

        range.setOffset(position.getOffset());
        range.setLength(position.getLength());
        IRegion widgetRegion= extension.modelRange2WidgetRange(range);
        if (widgetRegion == null)
          continue;

        int startLine= extension.widgetLineOfWidgetOffset(widgetRegion.getOffset());
        if (startLine == -1)
          continue;

        int endLine= extension.widgetLineOfWidgetOffset(widgetRegion.getOffset() + Math.max(widgetRegion.getLength() -1, 0));
        if (endLine == -1)
          continue;

        r.x= 0;
        r.y= JFaceTextUtil.computeLineHeight(fCachedTextWidget, 0, startLine, startLine- fScrollPos;
View Full Code Here

        if (pp.fLayer != layer// wrong layer: skip annotation
          continue;

        Position p= pp.fPosition;
        if (fSourceViewer instanceof ITextViewerExtension5) {
          ITextViewerExtension5 extension3= (ITextViewerExtension5) fSourceViewer;
          if (null == extension3.modelRange2WidgetRange(new Region(p.getOffset(), p.getLength())))
            continue;
        } else if (!fSourceViewer.overlapsWithVisibleRegion(p.offset, p.length)) {
          continue;
        }
View Full Code Here

  private IRegion getWidgetRange(int modelOffset, int modelLength) {
    if (modelOffset == Integer.MAX_VALUE)
      return null;

    if (fSourceViewer instanceof ITextViewerExtension5) {
      ITextViewerExtension5 extension= (ITextViewerExtension5) fSourceViewer;
      fReusableRegion.setOffset(modelOffset);
      fReusableRegion.setLength(modelLength);
      return extension.modelRange2WidgetRange(fReusableRegion);
    }

    IRegion region= fSourceViewer.getVisibleRegion();
    int offset= region.getOffset();
    int length= region.getLength();
View Full Code Here

  private IRegion getModelRange(int offset, int length) {
    if (offset == Integer.MAX_VALUE)
      return null;

    if (fSourceViewer instanceof ITextViewerExtension5) {
      ITextViewerExtension5 extension= (ITextViewerExtension5) fSourceViewer;
      return extension.widgetRange2ModelRange(new Region(offset, length));
    }

    IRegion region= fSourceViewer.getVisibleRegion();
    return new Region(region.getOffset() + offset, length);
  }
View Full Code Here

   */
  private ILineRange modelLinesToWidgetLines(ILineRange range) {
    int widgetStartLine= -1;
    int widgetEndLine= -1;
    if (fViewer instanceof ITextViewerExtension5) {
      ITextViewerExtension5 extension= (ITextViewerExtension5) fViewer;
      int modelEndLine= end(range);
      for (int modelLine= range.getStartLine(); modelLine < modelEndLine; modelLine++) {
        int widgetLine= extension.modelLine2WidgetLine(modelLine);
        if (widgetLine != -1) {
          if (widgetStartLine == -1)
            widgetStartLine= widgetLine;
          widgetEndLine= widgetLine;
        }
View Full Code Here

   * @return the corresponding widget range
   * @since 2.1
   */
  private IRegion modelRange2WidgetRange(IRegion region) {
    if (fTextViewer instanceof ITextViewerExtension5) {
      ITextViewerExtension5 extension= (ITextViewerExtension5) fTextViewer;
      return extension.modelRange2WidgetRange(region);
    }

    IRegion visibleRegion= fTextViewer.getVisibleRegion();
    int start= region.getOffset() - visibleRegion.getOffset();
    int end= start + region.getLength();
View Full Code Here

TOP

Related Classes of org.eclipse.jface.text.ITextViewerExtension5

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.