Skip navigation links

Introduction

What do the Dates Mean?

The supplied dates indicate when the API change was made, on the CVS trunk. From this you can generally tell whether the change should be present in a given build or not; for trunk builds, simply whether it was made before or after the change; for builds on a stabilization branch, whether the branch was made before or after the given date. In some cases corresponding API changes have been made both in the trunk and in an in-progress stabilization branch, if they were needed for a bug fix; this ought to be marked in this list.


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.text > 1.20

Changes by affected class

org.openide.text.ActiveEditorDrop

org.openide.text.Annotatable

org.openide.text.Annotation

org.openide.text.AnnotationProvider

org.openide.text.CloneableEditor

org.openide.text.CloneableEditorSupport

org.openide.text.CloneableEditorSupportRedirector

org.openide.windows.CloneableOpenSupport

org.openide.text.DataEditorSupport

org.openide.text.DocumentLine

org.openide.text.EditorSupport

org.openide.text.IndentEngine

org.openide.text.Line

org.openide.text.NbDocument

org.openide.loaders.OpenSupport

org.openide.text.PositionRef

org.openide.text.PrintPreferences

org.openide.text.PrintSettings


Details of all changes by API and date


Text API

Implement Position interface for compatibility

May 25 '14; API spec. version: 6.64; affected top-level classes: PositionRef; made by: sdedic; issues: #244744

PositionRef can provide a Position object, but does not itself implement the Position interface, although it can provide the offset. The change is just to formally implement the j.s.t.Position.

Added methods NbDocument.getDocument, NbDocument.openDocument with offset parameter and NbDocument.openDocument with line and column parameter

Mar 21 '12; API spec. version: 6.46; affected top-level classes: NbDocument; made by: theofanis; issues: #209058

First method gets the StyledDocument associated with a file while the other two are used to open the document associated with a file in the Editor window in a position specified by the offset or line and column while controlling open and visibility behavior.

fix hole in commit-groups about empty commit group

Jul 20 '11; API spec. version: 6.40; affected top-level classes: CloneableEditorSupport; made by: err; issues: #199568

Define semantics of a nested empty commit group. Add MARK_COMMIT_GROUP to fill a gap in API; It adds an inprogress commit-group and starts a new one.

CloneableEditor.closeLast

Jun 1 '11; API spec. version: 6.39; affected top-level classes: CloneableEditor; made by: jtulach; issues: #196810

CloneableEditor has a new utility method closeLast.

CloneableEditor(associateLookup)

Jun 1 '11; API spec. version: 6.39; affected top-level classes: CloneableEditor; made by: jtulach; issues: #196810

CloneableEditor offers new constructor that will reuse the lookup provided by its CloneableEditorSupport.

CloneableEditor.initializeBySupport

Jun 1 '11; API spec. version: 6.39; affected top-level classes: CloneableEditor; made by: jtulach; issues: #196810

Subclasses of CloneableEditor can manually request own initialization by calling its initializeBySupport method.

Added NbDocument.getEditToBeUndoneOfType

May 10 '11; API spec. version: 6.49; affected top-level classes: NbDocument; made by: mmetelka; issues: #204828

Added NbDocument.getEditToBeUndoneOfType() and NbDocument.getEditToBeRedoneOfType() to retrieve custom undoable edits that wrap document-generated undoable edits.

NbDocument.Annotatable threading changes

Feb 7 '11; API spec. version: 6.35; affected top-level classes: NbDocument; made by: mmetelka; issues: #194816

addAnnotation() and removeAnnotation() no longer re-plan their work into EDT.

Better support for vi mode

Nov 24 '10; API spec. version: 6.34; affected top-level classes: CloneableEditorSupport; made by: err; issues: #103467

Support for chunking edits via BEGIN_COMMIT_GROUP and END_COMMIT_GROUP.

Ability to inject actions into editor tab context menus

Aug 16 '10; API spec. version: 6.32; made by: jglick; issues: #189320

Actions may now be placed in Editors/TabActions to add them to the context menu of the tab of an editor window.

Deprecating style constants in NbDocument

Dec 21 '09; API spec. version: 6.29; affected top-level classes: NbDocument; made by: vstejskal; issues: #97517

Deprecating BREAKPOINT_STYLE_NAME, ERROR_STYLE_NAME, CURRENT_STYLE_NAME, NORMAL_STYLE_NAME in NbDocument class. Document styles have been abandoned when Annotations API was created. These constants are no longer functional.

Add CloneableEditorSupport.asynchronousOpen

Oct 1 '09; API spec. version: 6.26; affected top-level classes: CloneableEditorSupport; made by: mslama; issues: #171713

Add CloneableEditorSupport.asynchronous to control if CloneableEditorSupport.open opens document synchronously or not. If CloneableEditorSupport.asynchronous return true then CloneableEditorSupport.open opens document synchronously and handles UserQuestionException. If CloneableEditorSupport.asynchronous return false then CloneableEditorSupport.open does not open document. Document is then opened during initialization of CloneableEditor form non AWT thread and UserQuestionException is handled there. Implementation of method asynchronous in CloneableEditorSupport returns false ie. it keeps original behavior of CloneableEditorSupport.open. Subclasses can overwrite method asynchronous to return true to avoid blocking AWT thread by call CloneableEditorSupport.open which calls CloneableEditorSupport.openDocument.

Add NbDocument.findRecentEditorPane

Aug 12 '09; API spec. version: 6.24; affected top-level classes: NbDocument; made by: mslama; issues: #168415

Add NbDocument.findRecentEditorPane to allow non blocking retrieval of recently selected editor pane. Method returns null when editor pane initialization is not finished. Client is notified about finished pane initialization by property change event EditorCookie.Observable.PROP_OPENED_PANES. NbDocument.findRecentEditorPane is replacement for EditorCookie.getOpenedPanes which waits till all editor panes are initialized. It is nonblocking only when EditorCookie is instanceof CloneableEditorSupport.

Improve Line.show

Jul 7 '08; API spec. version: 6.21; affected top-level classes: Line; made by: mslama; issues: #138146

Improve Line.show to have better control over its open/visibility behavior. Previous version of Line.show mixes open and visibility behavior into one parameter. New version separates this into 2 parameters. It is possible to use any combination of these 2 parameters without need to add new constants for previous version. 2 enum types ShowOpenType and ShowVisibilityType are added.

"beforeSaveRunnable" document property

May 16 '08; API spec. version: 6.20; affected top-level classes: CloneableEditorSupport; made by: mmetelka; issues: #13063

CloneableEditorSupport.saveDocument() checks document's "beforeSaveDocument" property for a Runnable to be executed before the actual save will be done.

EditorKit, Document and co. are loaded on background by default

Mar 25 '08; API spec. version: 6.18; affected top-level classes: CloneableEditor; made by: jtulach; issues: #130171

In order to speedup, or remove the load of initialization of kit in AWT during startup, the initialization is done outside of AWT thread as much as possible. This provides new API for editor kits, one component and one system property.

Public static inner class NbDocument.Colors moved to org.openide.options.

May 22 '07; API spec. version: 6.16; affected top-level classes: NbDocument; made by: mslama; issues: #88531

Class NbDocument.Colors was removed to remove dependency on org.openide.options. Runtime backward compatibility was ensured by moving into org.openide.options module which is already deprecated.


Binary-compatible

Remove public field NbDocument.COLORS

May 22 '07; API spec. version: 6.16; affected top-level classes: NbDocument; made by: mslama; issues: #88531

Field NbDocument.COLORS was removed to remove dependency on org.openide.options.

Adding PrintPreferences

May 22 '07; API spec. version: 6.16; affected top-level classes: PrintPreferences; made by: rmatous; issues: #88531

Class PrintPreferences was added as replacement for original class PrintSettings.

Removing PrintSettings

May 22 '07; API spec. version: 6.16; affected top-level classes: org.openide.text.PrintSettings; made by: rmatous; issues: #88531

Classes PrintSettings and PrintSettingsBeanInfo were removed. Runtime backward compatibility was ensured by moving both into org.openide.options module which is already deprecated.


Binary-compatible

Adding Line.SHOW_REUSE and Line.SHOW_REUSE_NEW constants for Line.show method

Mar 5 '07; API spec. version: 6.14; affected top-level classes: Line; made by: pnejedly; issues: #94607

The Line.show() method accepts show mode constant, that influences the way the Line is displayed on the request. These additional constants provide new modes for opening the line in a shared editor window that can be replaced by subsequent calls of Line.show(SHOW_REUSE) on Lines from different Document. This is useful for quick source browsing without cluttering the UI with too many opened editors.

CloneableEditorSupportRedirector

Feb 7 '07; API spec. version: 6.13; affected top-level classes: CloneableEditorSupportRedirector; made by: jtulach; issues: #51690

The CloneableEditorSupportRedirector class allows a redirection of operations on a CloneableEditorSupport object to another one. This can be useful if there are two logical files representing one physical and one wants to have just a single editor for both files. In such case just implement the CloneableEditorSupportRedirector.

Adding CloneableEditorSupport.getEditorKit method

Aug 2 '06; API spec. version: 6.12; affected top-level classes: CloneableEditorSupport; made by: vstejskal; issues: #52657

The CloneableEditorSupport.getEditorKit() method allows to access EditorKits registered in MimeLookup. This is meant to be the primary way of finding EditorKits registered by Netbeans modules. The JEditorPane.createEditorKitForContentType and the other related methods in JEditorPane should only be used for finding EditorKits provided by JDK.

Editor panes listen for special objects being dragged over them

May 30 '06; API spec. version: 6.11; affected top-level classes: CloneableEditor; made by: saubrecht; issues: #50129

The custom JEditorPane used by CloneableEditor has a custom DropTarget instance which listens for some special objects (usually files) being dragged over the editor pane and uses an instace of ExternalDropHandler class from the global Lookup to see if the drop can be accepted. If the dragged object is supported then the caret in the editor does not follow the cursor to indicate the drop position as if when dragging a text snippet and regular Drop-Copy cursor is shown instead. When the object is dropped into the editor the ExternalDropHandler will process it (e.g. opens the file in a new editor tab).

Added CloneableEditorSupport.messageHtmlName method

Oct 31 '05; API spec. version: 6.8; affected top-level classes: CloneableEditorSupport CloneableEditor org.openide.text.DataEditorSupport; made by: dsimonek; issues: #66777

A messageHtmlName method has been added to CloneableEditorSupport to allow for display names with html tags. CloneableEditor uses this new method to set its html display name correctly. Also DataEditorSupport now overrides messageHtmlName to connect with Node.getHtmlDisplayName.

Added ActiveEditorDrop interface

Aug 9 '05; API spec. version: 6.6; affected top-level classes: ActiveEditorDrop; made by: mroskanin; issues: #61367

An ActiveEditorDrop interface has been added due to drag and drop callback support described at issue #61367

Added CloneableEditorSupport.wrapEditorComponent

Jul 22 '05; API spec. version: 6.4; affected top-level classes: CloneableEditorSupport CloneableEditor; made by: abadea; issues: #60922

A wrapEditorComponent method has been added to CloneableEditorSupport allowing to wrap the editor component in another component.

Annotation type extended with severity, custom_sidebar_color, browsable and priority attributes

Jul 18 '05; API spec. version: 6.3; issues: #55639
Annotation type was extended with severity, custom_sidebar_color, browsable and priority attributes.

Added a new constant Line.SHOW_TOFRONT

Mar 21 '05; API spec. version: 5.8; affected top-level classes: Line; issues: #47825
The new constant is used in the EditorSupportLineSet and brings editor's parent Window to be fronted above all other top-level windows.

CloneableEditorSupport.notifyModified is called only on first modification

Jan 14 '05; API spec. version: 5.4; affected top-level classes: CloneableEditorSupport; made by: jtulach; issues: #52493

It has been found that CloneableEditorSupport.notifyModified is called more often than it should. It used to be called after every keystroke, which is bad, as its return value could not be honored - it is not possible to prevent modification when the document is already modified. Now the method is called only on first modification of the document and if it returns false, the modification is not allowed.
This may be incompatible for clients that relied on the often calls. Such clients need to be fixed.

CloneableEditor.openAt made protected

Dec 6 '04; API spec. version: 5.2; affected top-level classes: CloneableEditorSupport; made by: pnejedly; issues: #51441

Deprecated EditorSupport has had a method openAt, which has no easy replacement in CloneableEditorSupport. The method is implemented in CloneableEditorSupport, but is package private. This change makes it protected.

Enhance SPI interface for CloneableEditorSupport.Pane providers

Aug 24 '04; API spec. version: 4.45; made by: mleint; issues: #46127
Additional method to CloneableEditorSupport.Pane interface, Pane.ensureVisible(). The implementing classes should ensure that the pane's component is open and visible after calling this method. Is used in CloneableEditorSupport.openAt().

Line.getOriginalLineNumber

Jun 8 '04; API spec. version: 4.38; affected top-level classes: Line; made by: jtulach; issues: #43484
A method that for a given line computes its original line number. Is useful when user edits text and places a breakpoint to find out what was the original line that the breakpoint should be placed to.

Support for AnnotationProvider interface

Apr 30 '04; API spec. version: 4.30; affected top-level classes: AnnotationProvider; made by: pnejedly; issues: #41345

Allow custom toolbar for NbDocument impls, editor panes separation in editor support classes

Apr 20 '04; API spec. version: 4.31; affected top-level classes: NbDocument CloneableEditorSupport CloneableEditor org.openide.text.EditorSupport; made by: mkleint; issues: #41085
In order to implement MultiViews, these changes were necessary to the org.openide.text package.

Allow CloneableEditorSupport subclasses to specify persistence ID for the associated editor TopComponent.

Feb 2 '04; API spec. version: 4.24; affected top-level classes: CloneableEditorSupport; made by: pnejedly; issues: #37892
Adding protected CloneableEditorSupport.documentID to allow subclasses to compute preferred ID String used for TopComponent persistence.

New getInputStream() method in CloneableEditorSupport

Jun 26 '03; API spec. version: 4.7; affected top-level classes: CloneableEditorSupport; made by: pjiricka; issues: #34692
New method that returns an InputStream which reads the current data from the editor, taking into account the encoding of the file. The returned InputStream contains the same data as if the file was written out to the disk. Useful when interacting with a tool that expects an InputStream, and the current (possibly modified) content of the editor is desired.

CloneableEditorSupport takes Lookup for its Lines in constructor

Apr 18 '03; API spec. version: 4.5; affected top-level classes: CloneableEditorSupport; made by: jtulach; issues: #32937
Allows subclasses of the support DataEditorSupport, etc. pass additional information to each of its Lines. Such information can consist of location like DataObject or FileObject.

PositionRef.getEditorSupport() removed

Apr 2 '03; API spec. version: 4.3; affected top-level classes: PositionRef org.openide.text.DataEditorSupport; made by: jtulach; issues: #32143
For a long time deprecated PositionRef.getEditorSupport() method has been removed to enabled separation of EditorSupport to openide-loaders.jar

Line.getDataObject() removed

Apr 2 '03; API spec. version: 4.3; affected top-level classes: Line org.openide.text.DataEditorSupport; made by: jtulach; issues: #32143
Due to separation of openide-loaders.jar the Line.getDataObject() method had to be removed and replaced by Line.getLookup which provides more general way for providing line context. The direct replacement for the old method is DataObject DataEditorSupport.findDataObject(Line).

Line constructor changed

Apr 2 '03; API spec. version: 4.3; affected top-level classes: Line DocumentLine; made by: jtulach; issues: #32143
Due to separation of openide-loaders.jar the Line and DocumentLine constructors taking DataObject had to be modified to take Lookup or plain Object instead.

CloneableEditorSupport can provide display name for its Lines

Apr 2 '03; API spec. version: 4.3; affected top-level classes: CloneableEditorSupport; made by: jtulach; issues: #32143
Added method String messageLine (Line) that can be overriden to provide meaningful display name for lines produced by this support.

Added to javadoc an IndexOutOfBoundsException can be thrown from NbDocument.findLineOffset method

Oct 31 '01; affected top-level classes: NbDocument; issues: #17144
Added declaration to javadoc of the method NbDocument.findLineOffset() can throw an unchecked IndexOutOfBoundsException. The method could throw the exception also before (and also other kinds of them see the issue), but it was not declared in javadoc. This change makes it compliant to use with standard Swing text package and also with Line.Set.getCurrent() method.

Notifications about annotation attaching/detaching added

Oct 12 '01; API spec. version: 1.38; affected top-level classes: Annotation
Added protected methods Annotation.notifyAttached() and Annotation.notifyDetached().

Get content of Annotatable

Sep 25 '01; API spec. version: 1.35; affected top-level classes: Annotatable
Added public abstract method Annotatable.getText(). Listeners can be attached to Annotatable.PROP_TEXT property.

Annotatable.isDeleted and Annotatable.getAnnotationCount are final

Sep 25 '01; API spec. version: 1.35; affected top-level classes: Annotatable
The Annotatable.isDeleted and Annotatable.getAnnotationCount are final now.
Compatibility: This is not considered as incompatible change, because the API with these methods was not published yet.

Line methods deprecated in favor of annotations

Jul 9 '01; API spec. version: 1.20; affected top-level classes: Line DocumentLine
Because of publication of Annotation API, all previously used methods like setBreakpoint, isBreakpoint, markError, unmarkError, markCurrentLine, unmarkCurrentLine, and canBeMarkedCurrent are deprecated. Use Annotation.attach() and detach() instead. Line now extends Annotatable abstract class.

New annotations API published

Jul 9 '01; API spec. version: 1.20; affected top-level classes: Annotation Annotatable NbDocument
Annotation API was published.
Compatibility: Because of publication of Annotation API, all previously used NbDocument methods like markError, markCurrent, markNormal are deprecated. Use addAnnotation and removeAnnotation instead.

Customization of editor support after creation

Dec 1 '00; affected top-level classes: CloneableEditorSupport; made by:
Added method initializeCloneableEditor to allow easier customization of the editor after creation and also after deserialization.

Can control undo/redo on editor supports

Jul 21 '00; affected top-level classes: CloneableEditorSupport
getUndoRedo() method was made protected final instead of final.

Can control title format for editor supports

Jul 17 '00; affected top-level classes: CloneableEditorSupport
updateTitles() method was made protected final instead of private.

IndentEngine a service type

Jun 23 '00; affected top-level classes: IndentEngine
Now a ServiceType. A few new methods relating to lookup.
Compatibility: Until Sep 27 '00, was incompatible (register had been deleted as it is no longer useful); the method was then restored but made deprecated.

Refactoring of editor and open supports

May 29 '00; affected top-level classes: org.openide.text.EditorSupport CloneableEditorSupport CloneableEditor org.openide.loaders.OpenSupport org.openide.windows.CloneableOpenSupport
Major refactoring of EditorSupport and OpenSupport, so that subclasses can have much finer control over pieces of its functionality.
Compatibility: First broken, Sep 29 '00 restored backwards compatibility.

Setting colors for lines deprecated

Mar 27 '00; affected top-level classes: NbDocument
NbDocument.COLORS and NbDocument.Colors deprecated.
Compatibility: First removed, later re-added but deprecated in trunk and boston. These classes were long disused (and should only have ever been used by the editor module anyway, which did not need them).

PrintSettings.getPageFormat requires a printer job

Feb 24 '00; affected top-level classes: org.openide.text.PrintSettings
getPageFormat method now requires a PrinterJob argument.
Compatibility: First removed, later re-added but deprecated in trunk and boston. User-stored settings of this class should be backwards compatible, however code directly calling getPageFormat will produce a deprecation warning. Probably no one should be directly referring to this class or its BeanInfo outside the package; public only because it is a system option that must be public to appear.