<Swing Dev> Swing and imageio-related types that are candidates to be FunctionalInterfaces in JDK 8
Joseph Darcy
joe.darcy at oracle.com
Tue Feb 12 00:31:24 UTC 2013
And to be clear, my expectation is that the swing team will carry
through on the remainder of the work need to add the annotation to
appropriate swing types.
-Joe
On 2/11/2013 2:23 PM, Brian Goetz wrote:
> There is no automagic use of parallelism as part of either the Lambda
> language features or new libraries. All parallelism is explicit
> (though unobtrusive). So I think this comment optimizes down to "" :)
>
> On 2/11/2013 5:21 PM, Phil Race wrote:
>> Joe,
>>
>> Note that Swing is a single threaded API. You can't update the UI from
>> any thread other than the EDT.
>> Where any automatic usage of processing in parallel from additional
>> threads
>> is performed by the lambda implementation it will violate that
>> requirement.
>> So you should be circumspect in tagging Swing classes.
>>
>> -phil.
>>
>> On 2/5/2013 2:41 PM, Joe Darcy wrote:
>>> Hello,
>>>
>>> As part of Project Lambda, a FunctionalInterface annotation type was
>>> added to the platform to mark interfaces that are intended to be used
>>> in lambda expressions. I've sent out a code review request to add
>>> this annotation to types in the core-libs area [1].
>>>
>>> To assist the swing team in adding analogous annotations to your
>>> types, the list of candidate types in for swing and imageio-related
>>> classes in java.* and javax.* is given below. I recommend sub-tasks
>>> of JDK-8005297 "Add FunctionalInterface support to the platform" be
>>> used to track the work of adding @FunctionalInterface annotations to
>>> swing types.
>>>
>>> Thanks,
>>>
>>> -Joe
>>>
>>> [1]
>>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-February/014292.html
>>>
>>>
>>>
>>> jdk/src/share/classes/javax/print/FlavorException.java:39: Note:
>>> Candidate functional interface
>>> public interface FlavorException {
>>> ^
>>> jdk/src/share/classes/javax/print/event/PrintServiceAttributeListener.java:37:
>>>
>>> Note: Candidate functional interface
>>> public interface PrintServiceAttributeListener {
>>> ^
>>> jdk/src/share/classes/javax/print/event/PrintJobAttributeListener.java:34:
>>>
>>> Note: Candidate functional interface
>>> public interface PrintJobAttributeListener {
>>> ^
>>> jdk/src/share/classes/javax/swing/TransferHandler.java:128: Note:
>>> Candidate functional interface
>>> interface HasGetTransferHandler {
>>> ^
>>> jdk/src/share/classes/javax/swing/tree/TreeCellRenderer.java:42: Note:
>>> Candidate functional interface
>>> public interface TreeCellRenderer {
>>> ^
>>> jdk/src/share/classes/javax/swing/tree/RowMapper.java:36: Note:
>>> Candidate functional interface
>>> public interface RowMapper
>>> ^
>>> jdk/src/share/classes/javax/swing/table/TableCellRenderer.java:38:
>>> Note: Candidate functional interface
>>> public interface TableCellRenderer {
>>> ^
>>> jdk/src/share/classes/javax/swing/event/ChangeListener.java:36: Note:
>>> Candidate functional interface
>>> public interface ChangeListener extends EventListener {
>>> ^
>>> jdk/src/share/classes/javax/swing/event/HyperlinkListener.java:35:
>>> Note: Candidate functional interface
>>> public interface HyperlinkListener extends EventListener {
>>> ^
>>> jdk/src/share/classes/javax/swing/event/RowSorterListener.java:34:
>>> Note: Candidate functional interface
>>> public interface RowSorterListener extends java.util.EventListener {
>>> ^
>>> jdk/src/share/classes/javax/swing/event/CaretListener.java:36: Note:
>>> Candidate functional interface
>>> public interface CaretListener extends EventListener {
>>> ^
>>> jdk/src/share/classes/javax/swing/event/ListSelectionListener.java:41:
>>> Note: Candidate functional interface
>>> public interface ListSelectionListener extends EventListener
>>> ^
>>> jdk/src/share/classes/javax/swing/event/UndoableEditListener.java:37:
>>> Note: Candidate functional interface
>>> public interface UndoableEditListener extends java.util.EventListener {
>>> ^
>>> jdk/src/share/classes/javax/swing/event/TableModelListener.java:38:
>>> Note: Candidate functional interface
>>> public interface TableModelListener extends java.util.EventListener
>>> ^
>>> jdk/src/share/classes/javax/swing/event/TreeSelectionListener.java:43:
>>> Note: Candidate functional interface
>>> public interface TreeSelectionListener extends EventListener
>>> ^
>>> jdk/src/share/classes/javax/swing/ListCellRenderer.java:89: Note:
>>> Candidate functional interface
>>> public interface ListCellRenderer<E>
>>> ^
>>> jdk/src/share/classes/javax/swing/text/html/CSSBorder.java:257: Note:
>>> Candidate functional interface
>>> interface BorderPainter {
>>> ^
>>> jdk/src/share/classes/javax/swing/text/html/Map.java:234: Note:
>>> Candidate functional interface
>>> interface RegionContainment {
>>> ^
>>> jdk/src/share/classes/javax/swing/text/TabExpander.java:34: Note:
>>> Candidate functional interface
>>> public interface TabExpander {
>>> ^
>>> jdk/src/share/classes/javax/swing/text/ViewFactory.java:36: Note:
>>> Candidate functional interface
>>> public interface ViewFactory {
>>> ^
>>> jdk/src/share/classes/javax/swing/text/Position.java:49: Note:
>>> Candidate functional interface
>>> public interface Position {
>>> ^
>>> jdk/src/share/classes/javax/swing/text/Highlighter.java:112: Note:
>>> Candidate functional interface
>>> public interface HighlightPainter {
>>> ^
>>> jdk/src/share/classes/javax/swing/Painter.java:63: Note: Candidate
>>> functional interface
>>> public interface Painter<T> {
>>> ^
>>> jdk/src/share/classes/javax/swing/plaf/basic/DragRecognitionSupport.java:52:
>>>
>>> Note: Candidate functional interface
>>> public static interface BeforeDrag {
>>> ^
>>> jdk/src/share/classes/javax/swing/UIDefaults.java:951: Note: Candidate
>>> functional interface
>>> public interface LazyValue {
>>> ^
>>> jdk/src/share/classes/javax/swing/UIDefaults.java:984: Note: Candidate
>>> functional interface
>>> public interface ActiveValue {
>>> ^
>>> jdk/src/share/classes/javax/swing/JComboBox.java:1484: Note: Candidate
>>> functional interface
>>> public interface KeySelectionManager {
>>> ^
>>> jdk/src/share/classes/javax/imageio/IIOParamController.java:99: Note:
>>> Candidate functional interface
>>> public interface IIOParamController {
>>> ^
>>> jdk/src/share/classes/javax/imageio/event/IIOWriteWarningListener.java:46:
>>>
>>> Note: Candidate functional interface
>>> public interface IIOWriteWarningListener extends EventListener {
>>> ^
>>> jdk/src/share/classes/javax/imageio/event/IIOReadWarningListener.java:46:
>>>
>>> Note: Candidate functional interface
>>> public interface IIOReadWarningListener extends EventListener {
>>> ^
>>> jdk/src/share/classes/javax/imageio/metadata/IIOMetadataController.java:67:
>>>
>>> Note: Candidate functional interface
>>> public interface IIOMetadataController {
>>> ^
>>> jdk/src/share/classes/javax/imageio/spi/ServiceRegistry.java:464:
>>> Note: Candidate functional interface
>>> public interface Filter {
>>
More information about the swing-dev
mailing list