mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup
This commit is contained in:
+32
-37
@@ -40,6 +40,7 @@ import com.intellij.openapi.editor.actionSystem.DocCommandGroupId;
|
||||
import com.intellij.openapi.editor.colors.EditorFontType;
|
||||
import com.intellij.openapi.editor.ex.*;
|
||||
import com.intellij.openapi.editor.ex.util.EditorUIUtil;
|
||||
import com.intellij.openapi.editor.ex.util.EditorUtil;
|
||||
import com.intellij.openapi.editor.markup.ErrorStripeRenderer;
|
||||
import com.intellij.openapi.editor.markup.RangeHighlighter;
|
||||
import com.intellij.openapi.fileEditor.impl.EditorWindowHolder;
|
||||
@@ -79,8 +80,6 @@ import java.util.List;
|
||||
import java.util.Queue;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import static com.intellij.openapi.editor.ex.util.EditorUtil.isRealFileEditor;
|
||||
|
||||
public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMarkupModel {
|
||||
private static final TooltipGroup ERROR_STRIPE_TOOLTIP_GROUP = new TooltipGroup("ERROR_STRIPE_TOOLTIP_GROUP", 0);
|
||||
|
||||
@@ -121,11 +120,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
private int myMinMarkHeight;// height for horizontal, width for vertical stripes
|
||||
private static final int myPreviewLines = Math.max(2, Math.min(25, Integer.getInteger("preview.lines", 5)));// Actually preview has myPreviewLines * 2 + 1 lines (above + below + current one)
|
||||
private static final int myCachePreviewLines = 100;// Actually cache image has myCachePreviewLines * 2 + 1 lines (above + below + current one)
|
||||
@Nullable private LightweightHint myEditorPreviewHint = null;
|
||||
@Nullable private LightweightHint myEditorPreviewHint;
|
||||
@NotNull private final EditorFragmentRenderer myEditorFragmentRenderer;
|
||||
private int myRowAdjuster = 0;
|
||||
private int myWheelAccumulator = 0;
|
||||
private int myLastVisualLine = 0;
|
||||
private int myRowAdjuster;
|
||||
private int myWheelAccumulator;
|
||||
private int myLastVisualLine;
|
||||
|
||||
EditorMarkupModelImpl(@NotNull EditorImpl editor) {
|
||||
super(editor.getDocument());
|
||||
@@ -194,9 +193,8 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
int visualY = myEditor.getLineHeight() * visualLine;
|
||||
boolean isVisible = area.contains(area.x, visualY) && myWheelAccumulator == 0;
|
||||
|
||||
TooltipRenderer bigRenderer;
|
||||
if (UIUtil.uiParents(myEditor.getComponent(), false).filter(EditorWindowHolder.class).isEmpty() || isVisible || !UISettings.getInstance().SHOW_EDITOR_TOOLTIP) {
|
||||
final Set<RangeHighlighter> highlighters = new THashSet<RangeHighlighter>();
|
||||
final Set<RangeHighlighter> highlighters = new THashSet<>();
|
||||
getNearestHighlighters(this, me.getY(), highlighters);
|
||||
getNearestHighlighters(((EditorEx)getEditor()).getFilteredDocumentMarkupModel(), me.getY(), highlighters);
|
||||
if (highlighters.isEmpty()) return false;
|
||||
@@ -211,7 +209,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
}
|
||||
me = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(), me.getX(), y + 1, e.getClickCount(),
|
||||
e.isPopupTrigger());
|
||||
bigRenderer = myTooltipRendererProvider.calcTooltipRenderer(highlighters);
|
||||
TooltipRenderer bigRenderer = myTooltipRendererProvider.calcTooltipRenderer(highlighters);
|
||||
if (bigRenderer != null) {
|
||||
showTooltip(me, bigRenderer, createHint(me));
|
||||
return true;
|
||||
@@ -221,7 +219,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
float rowRatio = (float)visualLine /(myEditor.getVisibleLineCount() - 1);
|
||||
int y = myRowAdjuster != 0 ? (int)(rowRatio * myEditor.getVerticalScrollBar().getHeight()) : me.getY();
|
||||
me = new MouseEvent(me.getComponent(), me.getID(), me.getWhen(), me.getModifiers(), me.getX(), y, me.getClickCount(), me.isPopupTrigger());
|
||||
final List<RangeHighlighterEx> highlighters = new ArrayList<RangeHighlighterEx>();
|
||||
final List<RangeHighlighterEx> highlighters = new ArrayList<>();
|
||||
collectRangeHighlighters(this, visualLine, highlighters);
|
||||
collectRangeHighlighters(myEditor.getFilteredDocumentMarkupModel(), visualLine, highlighters);
|
||||
myEditorFragmentRenderer.update(visualLine, highlighters, me.isAltDown());
|
||||
@@ -267,7 +265,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
|
||||
@Nullable
|
||||
private RangeHighlighter getNearestRangeHighlighter(@NotNull final MouseEvent e) {
|
||||
List<RangeHighlighter> highlighters = new ArrayList<RangeHighlighter>();
|
||||
List<RangeHighlighter> highlighters = new ArrayList<>();
|
||||
getNearestHighlighters(this, e.getY(), highlighters);
|
||||
getNearestHighlighters(myEditor.getFilteredDocumentMarkupModel(), e.getY(), highlighters);
|
||||
RangeHighlighter nearestMarker = null;
|
||||
@@ -459,7 +457,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
}
|
||||
|
||||
if (myErrorStripeRenderer != null) {
|
||||
int x = isMirrored() ? 0 : (getThinGap() + myMinMarkHeight);
|
||||
int x = isMirrored() ? 0 : getThinGap() + myMinMarkHeight;
|
||||
final Rectangle b = new Rectangle(x, 0, getErrorIconWidth(), getErrorIconHeight());
|
||||
myErrorStripeRenderer.paint(this, g, b);
|
||||
}
|
||||
@@ -477,7 +475,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
}
|
||||
|
||||
private boolean transparent() {
|
||||
return Registry.is("editor.transparent.scrollbar", false) && isRealFileEditor(myEditor);
|
||||
return Registry.is("editor.transparent.scrollbar", false) && EditorUtil.isRealFileEditor(myEditor);
|
||||
}
|
||||
|
||||
private class MyErrorPanel extends ButtonlessScrollBarUI implements MouseMotionListener, MouseListener, MouseWheelListener, UISettingsListener {
|
||||
@@ -500,7 +498,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
|
||||
@Override
|
||||
protected boolean isMacScrollbarHiddenAndXcodeLikeScrollbar() {
|
||||
return super.isMacScrollbarHiddenAndXcodeLikeScrollbar() && isRealFileEditor(myEditor);
|
||||
return super.isMacScrollbarHiddenAndXcodeLikeScrollbar() && EditorUtil.isRealFileEditor(myEditor);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -603,7 +601,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
|
||||
@Override
|
||||
protected boolean alwaysPaintThumb() {
|
||||
if (scrollbar.getOrientation() == Adjustable.VERTICAL) return !(xcodeLikeScrollbar() && isRealFileEditor(myEditor));
|
||||
if (scrollbar.getOrientation() == Adjustable.VERTICAL) return !(xcodeLikeScrollbar() && EditorUtil.isRealFileEditor(myEditor));
|
||||
return super.alwaysPaintThumb();
|
||||
}
|
||||
|
||||
@@ -619,8 +617,8 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
|
||||
@Override
|
||||
protected void paintMaxiThumb(@NotNull Graphics2D g, @NotNull Rectangle thumbBounds) {
|
||||
int arc = 3;
|
||||
g.setColor(adjustColor(getGradientDarkColor()));
|
||||
int arc = 3;
|
||||
g.fillRoundRect(isMirrored() ? -3 : 2, 0, thumbBounds.width, thumbBounds.height, arc, arc);
|
||||
}
|
||||
|
||||
@@ -701,7 +699,6 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
final Rectangle clip = new Rectangle(0, yrange.getStartOffset(), gutterWidth, yrange.getLength() + myMinMarkHeight);
|
||||
paintTrackBasement(g, clip);
|
||||
|
||||
Document document = myEditor.getDocument();
|
||||
int startOffset = yPositionToOffset(clip.y - myMinMarkHeight, true);
|
||||
int endOffset = yPositionToOffset(clip.y + clip.height, false);
|
||||
|
||||
@@ -715,11 +712,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
}
|
||||
|
||||
private void drawMarkup(@NotNull final Graphics g, int startOffset, int endOffset, @NotNull MarkupModelEx markup1, @NotNull MarkupModelEx markup2) {
|
||||
final Queue<PositionedStripe> thinEnds = new PriorityQueue<PositionedStripe>(5, (o1, o2) -> o1.yEnd - o2.yEnd);
|
||||
final Queue<PositionedStripe> wideEnds = new PriorityQueue<PositionedStripe>(5, (o1, o2) -> o1.yEnd - o2.yEnd);
|
||||
final Queue<PositionedStripe> thinEnds = new PriorityQueue<>(5, (o1, o2) -> o1.yEnd - o2.yEnd);
|
||||
final Queue<PositionedStripe> wideEnds = new PriorityQueue<>(5, (o1, o2) -> o1.yEnd - o2.yEnd);
|
||||
// sorted by layer
|
||||
final List<PositionedStripe> thinStripes = new ArrayList<PositionedStripe>(); // layer desc
|
||||
final List<PositionedStripe> wideStripes = new ArrayList<PositionedStripe>(); // layer desc
|
||||
final List<PositionedStripe> thinStripes = new ArrayList<>(); // layer desc
|
||||
final List<PositionedStripe> wideStripes = new ArrayList<>(); // layer desc
|
||||
final int[] thinYStart = new int[1]; // in range 0..yStart all spots are drawn
|
||||
final int[] wideYStart = new int[1]; // in range 0..yStart all spots are drawn
|
||||
|
||||
@@ -906,7 +903,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
int inc = e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL ? e.getUnitsToScroll() * e.getScrollAmount() :
|
||||
e.getWheelRotation() < 0 ? -e.getScrollAmount() : e.getScrollAmount();
|
||||
// Stop accumulating when the last or the first line has been reached as 'adjusted' position to show lens.
|
||||
if ((myLastVisualLine < myEditor.getVisibleLineCount() - 1 && inc > 0) || (myLastVisualLine > 0 && inc < 0)) {
|
||||
if (myLastVisualLine < myEditor.getVisibleLineCount() - 1 && inc > 0 || myLastVisualLine > 0 && inc < 0) {
|
||||
myWheelAccumulator += inc;
|
||||
}
|
||||
myRowAdjuster = myWheelAccumulator / myEditor.getLineHeight();
|
||||
@@ -993,7 +990,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
ContainerUtil.add(listener, myErrorMarkerListeners, parent);
|
||||
}
|
||||
|
||||
public void markDirtied(@NotNull ProperTextRange yPositions) {
|
||||
private void markDirtied(@NotNull ProperTextRange yPositions) {
|
||||
if (myDirtyYPositions != WHOLE_DOCUMENT) {
|
||||
int start = Math.max(0, yPositions.getStartOffset() - myEditor.getLineHeight());
|
||||
int end = myEditorScrollbarTop + myEditorTargetHeight == 0 ? yPositions.getEndOffset() + myEditor.getLineHeight()
|
||||
@@ -1033,7 +1030,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
|
||||
final String text = tooltipObject.toString();
|
||||
if (tooltips == null) {
|
||||
tooltips = new THashSet<String>();
|
||||
tooltips = new THashSet<>();
|
||||
}
|
||||
if (tooltips.add(text)) {
|
||||
if (bigRenderer == null) {
|
||||
@@ -1115,13 +1112,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
else if (start == end || offsetToLine(start, document) == endLineNumber) {
|
||||
endY = startY; // both offsets are on the same line, no need to recalc Y position
|
||||
}
|
||||
else if (myEditorSourceHeight < editorTargetHeight) {
|
||||
endY = myEditorScrollbarTop + endLineNumber * myEditor.getLineHeight();
|
||||
}
|
||||
else {
|
||||
if (myEditorSourceHeight < editorTargetHeight) {
|
||||
endY = myEditorScrollbarTop + endLineNumber * myEditor.getLineHeight();
|
||||
}
|
||||
else {
|
||||
endY = myEditorScrollbarTop + (int)((float)endLineNumber / lineCount * editorTargetHeight);
|
||||
}
|
||||
endY = myEditorScrollbarTop + (int)((float)endLineNumber / lineCount * editorTargetHeight);
|
||||
}
|
||||
if (endY < startY) endY = startY;
|
||||
return new ProperTextRange(startY, endY);
|
||||
@@ -1161,7 +1156,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
private class EditorFragmentRenderer implements TooltipRenderer {
|
||||
private int myVisualLine;
|
||||
private boolean myShowInstantly;
|
||||
private final List<RangeHighlighterEx> myHighlighters = new ArrayList<RangeHighlighterEx>();
|
||||
private final List<RangeHighlighterEx> myHighlighters = new ArrayList<>();
|
||||
@Nullable private BufferedImage myCacheLevel1;
|
||||
@Nullable private BufferedImage myCacheLevel2;
|
||||
private int myCacheStartLine;
|
||||
@@ -1169,13 +1164,13 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
private int myStartVisualLine;
|
||||
private int myEndVisualLine;
|
||||
private int myRelativeY;
|
||||
private boolean myDelayed = false;
|
||||
private boolean isDirty = false;
|
||||
private final AtomicReference<Point> myPointHolder = new AtomicReference<Point>();
|
||||
private final AtomicReference<HintHint> myHintHolder = new AtomicReference<HintHint>();
|
||||
private boolean myDelayed;
|
||||
private boolean isDirty;
|
||||
private final AtomicReference<Point> myPointHolder = new AtomicReference<>();
|
||||
private final AtomicReference<HintHint> myHintHolder = new AtomicReference<>();
|
||||
|
||||
private EditorFragmentRenderer() {
|
||||
update(-1, Collections.<RangeHighlighterEx>emptyList(), false);
|
||||
update(-1, Collections.emptyList(), false);
|
||||
}
|
||||
|
||||
void update(int visualLine, @NotNull Collection<RangeHighlighterEx> rangeHighlighters, boolean showInstantly) {
|
||||
@@ -1325,11 +1320,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark
|
||||
//Add glass effect
|
||||
Shape s = new Rectangle(0, 0, size.width, size.height);
|
||||
double cx = size.width / 2;
|
||||
double cy = 0;
|
||||
double rx = size.width / 10;
|
||||
int ry = myEditor.getLineHeight() * 3 / 2;
|
||||
g2.setPaint(new GradientPaint(0, 0, Gray._255.withAlpha(75), 0, ry, Gray._255.withAlpha(10)));
|
||||
double pseudoMajorAxis = size.width - rx * 9 / 5;
|
||||
double cy = 0;
|
||||
Shape topShape1 = new Ellipse2D.Double(cx - rx - pseudoMajorAxis / 2, cy - ry, 2 * rx, 2 * ry);
|
||||
Shape topShape2 = new Ellipse2D.Double(cx - rx + pseudoMajorAxis / 2, cy - ry, 2 * rx, 2 * ry);
|
||||
Area topArea = new Area(topShape1);
|
||||
|
||||
Reference in New Issue
Block a user