mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
update gutter icon for related file when related items are changed
This commit is contained in:
@@ -35,7 +35,7 @@ import java.awt.event.MouseEvent;
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
public class LineMarkerInfo<T extends PsiElement> {
|
||||
private final Icon myIcon;
|
||||
protected final Icon myIcon;
|
||||
private final WeakReference<T> elementRef;
|
||||
public final int startOffset;
|
||||
public final int endOffset;
|
||||
@@ -157,7 +157,7 @@ public class LineMarkerInfo<T extends PsiElement> {
|
||||
return myInfo.myIconAlignment;
|
||||
}
|
||||
|
||||
private boolean looksTheSameAs(@NotNull LineMarkerGutterIconRenderer renderer) {
|
||||
protected boolean looksTheSameAs(@NotNull LineMarkerGutterIconRenderer renderer) {
|
||||
return
|
||||
myInfo.getElement() != null &&
|
||||
renderer.myInfo.getElement() != null &&
|
||||
|
||||
@@ -60,4 +60,27 @@ public class RelatedItemLineMarkerInfo<T extends PsiElement> extends LineMarkerI
|
||||
public Collection<? extends GotoRelatedItem> createGotoRelatedItems() {
|
||||
return myTargets.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GutterIconRenderer createGutterRenderer() {
|
||||
if (myIcon == null) return null;
|
||||
return new RelatedItemLineMarkerGutterIconRenderer<T>(this);
|
||||
}
|
||||
|
||||
private static class RelatedItemLineMarkerGutterIconRenderer<T extends PsiElement> extends LineMarkerGutterIconRenderer<T> {
|
||||
public RelatedItemLineMarkerGutterIconRenderer(final RelatedItemLineMarkerInfo<T> markerInfo) {
|
||||
super(markerInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean looksTheSameAs(@NotNull LineMarkerGutterIconRenderer renderer) {
|
||||
if (!(renderer instanceof RelatedItemLineMarkerGutterIconRenderer) || !super.looksTheSameAs(renderer)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final RelatedItemLineMarkerInfo<?> markerInfo = (RelatedItemLineMarkerInfo<?>)getLineMarkerInfo();
|
||||
final RelatedItemLineMarkerInfo<?> otherInfo = (RelatedItemLineMarkerInfo<?>)renderer.getLineMarkerInfo();
|
||||
return markerInfo.myTargets.equals(otherInfo.myTargets);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user