diff --git a/platform/platform-api/src/com/intellij/ui/ColoredListCellRenderer.java b/platform/platform-api/src/com/intellij/ui/ColoredListCellRenderer.java index 4a15ebed3bab..26a127b94cea 100644 --- a/platform/platform-api/src/com/intellij/ui/ColoredListCellRenderer.java +++ b/platform/platform-api/src/com/intellij/ui/ColoredListCellRenderer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,8 +25,8 @@ import java.awt.*; /** * @author Vladimir Kondratyev */ -public abstract class ColoredListCellRenderer extends SimpleColoredComponent implements ListCellRenderer { - private final ListCellRenderer myDefaultGtkRenderer = UIUtil.isUnderGTKLookAndFeel() ? new JComboBox().getRenderer() : null; +public abstract class ColoredListCellRenderer extends SimpleColoredComponent implements ListCellRenderer { + private final ListCellRenderer myDefaultGtkRenderer = UIUtil.isUnderGTKLookAndFeel() ? new JComboBox().getRenderer() : null; protected boolean mySelected; protected Color myForeground; @@ -45,7 +45,8 @@ public abstract class ColoredListCellRenderer extends SimpleColoredComponent getIpad().right = UIUtil.getListCellHPadding(); } - public Component getListCellRendererComponent(JList list, Object value, int index, boolean selected, boolean hasFocus) { + @Override + public Component getListCellRendererComponent(JList list, T value, int index, boolean selected, boolean hasFocus) { clear(); if (myComboBox != null) { @@ -72,7 +73,7 @@ public abstract class ColoredListCellRenderer extends SimpleColoredComponent setPaintFocusBorder(hasFocus); - customizeCellRenderer(list, (T)value, index, selected, hasFocus); + customizeCellRenderer(list, value, index, selected, hasFocus); if (myDefaultGtkRenderer != null && list.getModel() instanceof ComboBoxModel) { final Component component = myDefaultGtkRenderer.getListCellRendererComponent(list, value, index, selected, hasFocus); @@ -87,6 +88,7 @@ public abstract class ColoredListCellRenderer extends SimpleColoredComponent * When the item is selected then we use default tree's selection foreground. * It guaranties readability of selected text in any LAF. */ + @Override public final void append(@NotNull String fragment, @NotNull SimpleTextAttributes attributes, boolean isMainText) { if (mySelected) { super.append(fragment, new SimpleTextAttributes(attributes.getStyle(), mySelectionForeground), isMainText); @@ -99,6 +101,7 @@ public abstract class ColoredListCellRenderer extends SimpleColoredComponent } } + @Override @NotNull public Dimension getPreferredSize() { // There is a bug in BasicComboPopup. It does not add renderer into CellRendererPane, @@ -116,15 +119,5 @@ public abstract class ColoredListCellRenderer extends SimpleColoredComponent return result; } - protected abstract void customizeCellRenderer(JList list, T value, int index, boolean selected, boolean hasFocus); - - public abstract static class KotlinFriendlyColoredListCellRenderer extends ColoredListCellRenderer { - @Override - protected final void customizeCellRenderer(JList list, T value, int index, boolean selected, boolean hasFocus) { - - } - - // cannot specify type param in JList if JDK 6 - protected abstract void customizeCellRenderer(T value, int index, boolean selected, boolean hasFocus); - } + protected abstract void customizeCellRenderer(@NotNull JList list, T value, int index, boolean selected, boolean hasFocus); } diff --git a/platform/script-debugger/debugger-ui/src/RemoteVmConnection.kt b/platform/script-debugger/debugger-ui/src/RemoteVmConnection.kt index 23a090e12d35..fe4299e25f02 100644 --- a/platform/script-debugger/debugger-ui/src/RemoteVmConnection.kt +++ b/platform/script-debugger/debugger-ui/src/RemoteVmConnection.kt @@ -35,6 +35,7 @@ import org.jetbrains.rpc.LOG import java.net.ConnectException import java.net.InetSocketAddress import java.util.concurrent.atomic.AtomicReference +import javax.swing.JList abstract class RemoteVmConnection : VmConnection() { var port = -1 @@ -106,7 +107,7 @@ abstract class RemoteVmConnection : VmConnection() { fun RemoteVmConnection.open(address: InetSocketAddress, processHandler: ProcessHandler) = open(address, Condition { processHandler.isProcessTerminating || processHandler.isProcessTerminated }) -fun chooseDebuggee(targets: Collection, selectedIndex: Int, renderer: (T, ColoredListCellRenderer.KotlinFriendlyColoredListCellRenderer<*>) -> Unit): Promise { +fun chooseDebuggee(targets: Collection, selectedIndex: Int, renderer: (T, ColoredListCellRenderer<*>) -> Unit): Promise { if (targets.size == 1) { return resolvedPromise(targets.first()) } @@ -117,8 +118,8 @@ fun chooseDebuggee(targets: Collection, selectedIndex: Int, renderer: (T, val result = org.jetbrains.concurrency.AsyncPromise() ApplicationManager.getApplication().invokeLater { val list = JBList(targets) - list.cellRenderer = object : ColoredListCellRenderer.KotlinFriendlyColoredListCellRenderer() { - override fun customizeCellRenderer(value: T, index: Int, selected: Boolean, hasFocus: Boolean) { + list.cellRenderer = object : ColoredListCellRenderer() { + override fun customizeCellRenderer(list: JList, value: T, index: Int, selected: Boolean, hasFocus: Boolean) { renderer(value, this) } }