Introduction

This document lists changes made to the I/O API.


Index of APIs

Incompatible changes by date

Fuller descriptions of all changes can be found below (follow links).

Not all deprecations are listed here, assuming that the deprecated APIs continue to essentially work. For a full deprecation list, please consult the Javadoc.

All changes by date

Changes by version

These API specification versions may be used to indicate that a module requires a certain API feature in order to function. For example, if you see here a feature you need which is labelled 1.20, your manifest should contain in its main attributes the line:

OpenIDE-Module-Module-Dependencies: org.openide.io > 1.20

Changes by affected class

org.openide.windows.FoldHandle

org.openide.windows.IOColorLines

org.openide.windows.IOColorPrint

org.openide.windows.IOColors

org.openide.windows.IOContainer

org.openide.windows.IOFolding

org.openide.windows.IOPosition

org.openide.windows.IOProvider

org.openide.windows.IOSelect

org.openide.windows.OutputWriter


Details of all changes by API and date


I/O APIs

Created new user-friendly methods for working with FoldHandle instances.

Jul 17 '13; API spec. version: 1.42; affected top-level classes: FoldHandle; made by: jhavlin; issues: #232316

Added methods that provide better info about state of fold handles, and methods that handle unexpected situations silently instead of throwing exceptions.

Added LOG_SUCCESS, LOG_FAILURE, LOG_WARNING and LOG_DEBUG into IOColors.OutputType to be able to specify a color of logging messages.

Apr 25 '13; API spec. version: 1.40; affected top-level classes: IOColors; made by: jhavlin; issues: #225439

Added enum elements LOG_SUCCESS, LOG_FAILURE, LOG_WARNING and LOG_DEBUG into IOColors.OutputType that can be passed to get/setColor methods to have access to color of standard logging messages.

Added IOColors.OutputType.INPUT to be able to specify a color of input text.

Apr 18 '13; API spec. version: 1.39; affected top-level classes: IOColors; made by: mentlicher; issues: #228480

Added enum element IOColors.OutputType.INPUT that can be passed to get/setColor methods to set a color of the input text.

Adding API to have support for folding of lines

Apr 5 '13; API spec. version: 1.38; affected top-level classes: IOFolding FoldHandle; made by: jhavlin; issues: #228022

Adding class IOFolding for checking that folding is supported and for creating folds in output window, and class FoldHandle for finishing the folds and creation of nested folds.

See IOFolding, FoldHandle.

Added IOProvider.getIO variant that takes all 4 possible parameters.

Jun 22 '12; API spec. version: 1.33; affected top-level classes: IOProvider; made by: jhavlin; issues: #182538

Added method IOProvider.getIO that takes all 4 supported parameters and that complements other getIO methods. See IOProvider

The original mapping from IO name to IO object has been replaced with mapping from pair [IO container, IO name] to IO object. This mapping is used for reusing of IO objects.

Added API for fine grain control over IO select operation

May 1 '10; API spec. version: 1.23; affected top-level classes: IOSelect; made by: ivan; issues: #185209

Added class for fine control over select: IOSelect

Incompatible change to semantics of IOContainer.select()

May 1 '10; API spec. version: 1.23; affected top-level classes: IOContainer; made by: ivan; issues: #185209

After fixing bug#185209 IOContainer.select() no longer performs these operations for us so implementations of IOProvider have to do them: IOContainer.open() , IOContainer.requestVisible() .

Existing implementation of InputOutput.select() has been adjusted and is still compatible.

Adding API to have better control of text color and hyperlinks

Jul 24 '09; API spec. version: 1.18; affected top-level classes: IOColorPrint; made by: t_h; issues: #168898

Adding class for color printing. IOColorPrint,

Adding API to control output color and programmatical scrolling

Mar 6 '09; API spec. version: 1.16; affected top-level classes: IOPosition IOColors IOColorLines; made by: t_h; issues: #157911

Adding "feature class" to control output color and programmatical scrolling. IOColorLines, IOColors, IOPosition,

Multiple IOProvider support, possibility to specify "parent container" for IO tab

Feb 5 '09; API spec. version: 1.15; affected top-level classes: IOProvider IOContainer; made by: t_h; issues: #157911

Added static IOProvider.get(String name) to get specific implementation of IOProvider. Added IOProvider.getName() which should be overriden by subclasses to provide its name (ID).

IOContainer was introduced as an accessor to "parent container" for IO components (tab). IOProvider.getIO(String name, Action[] additionalActions, IOContainer ioContainer) can be used to specify alternative container.

First "feature class" IOTab added to provide API for getting/setting icon/tooltip for IO tab.

No need to require IOProvider token anymore

Jul 19 '06; API spec. version: 1.11; affected top-level classes: IOProvider; made by: jtulach; issues: #34699

If your module depends on org.openide.io > 1.11 or higher there is no need to specify that it also requires an implementation of the API by use of OpenIDE-Module-Requires: org.openide.windows.IOProvider, this token will be requested automatically by the org.openide.io module itself.

Added API to add actions to output's toolbar

Jan 12 '05; API spec. version: 1.6; affected top-level classes: IOProvider; made by: mkleint; issues: #43332

Added an additional method InputOutput getIO(String name, Action[] additionalActions) that accepts additional array of javax.swing.Action instances. It allows to define domain-specific additional actions that can be performed on the content of the output.

The method should be ideally abstract but because it's uncertain how many implementations of IOProvider are there, the method is non-abstract and in it's default impl, delegates to the InputOutput getIO(String name, boolean newIO) method. Implementors of the class are encourages to implement the new method.

Added API to mark OutputListeners a important

Nov 11 '04; API spec. version: 1.5; affected top-level classes: OutputWriter; made by: mkleint; issues: #48339

Added an additional method OutputWriter.println(String, OutputListener, boolean) that accepts additional boolean parameter (is Important or not). It allows the API users to mark the line and it's listener as important. Such a line can be marked in different color, the output can stop there to draw user's attention etc.

The method should be ideally abstract but because it's uncertain how many implementations are there, the method is non-abstract and in it's default impl, delegates to the OutputWriter.println(String, OutputListener) method, ignoring the boolean parameter. Implementors of the class are encourages to implement the new method.


Built on October 17 2017.  |  Portions Copyright 1997-2017 Oracle. All rights reserved.