Skip navigation links
org.openide.text 6.90

Text API

See: Description

Text API 
Package Description
NetBeans is able to integrate multiple editors for different content types and mechanically access their content.

XXX no answer for arch-overall

What is New (see all changes)?

Use Cases

XXX no answer for arch-usecases

Exported Interfaces

This table lists all of the module exported APIs with defined stability classifications. It is generated based on answers to questions about the architecture of the module. Read them all...
Group of java interfaces
Interface NameIn/OutStabilitySpecified in What Document?
EditorAPIExportedOfficial .../org/openide/text/doc-files/api.html


In order to speedup, or remove the load of initialization of kit in AWT during startup, there is a special API that allows to ask the kit to pre-initialize. If the kit implements Callable interface from JDK, it is called in non-AWT thread. This works since version 6.18 and can be disabled by property oldInitialization.

Group of property interfaces
Interface NameIn/OutStabilitySpecified in What Document?

Property hold instance of IndentEngine and this indentation engine is used instead of system one.


In order to fix issue 51872 the openide needs a way how to be notified about change of a document outside of its Document lock. DocumentListeners are always notified under the lock, so a special contract has been established (since version 5.3) by registering an instance of VetoableListener by calling putProperty ("modificationListener", listener). The NetBeans aware documents are adviced to honor this property and call the listener outside of the document lock when a modification is made. The actual contract of the call can be seen in in methods insertString and remove.


Document property that allows to execute a runnable before save of a document is performed. For example an extra whitespace accumulated during typing can be removed by exploiting this property.


CloneableEditorSupport understands not only its Env.TIME property, but also special "expectedTime". When this one arrives, it means refresh its internal last saved time, but without any refresh. This functionality is used from DataEditorSupport when the DataObject is moved to new location and we need to adjust the time to the new file object.


Component client property which is set to Boolean.TRUE if an editor pane is actively used by a cloneable editor. Once the component gets closed the CloneableEditor sets the property to Boolean.FALSE.

oldInitializationExportedUnder Development

As the speedup of startup done in version 6.18 is not fully compatible, there is a way to get back the original behaviour: just use this.putClientProperty("oldInitialization", Boolean.TRUE) and the whole initialization will be done in AWT thread. This is generally slower, but compatible.


In order to measure startup improvements between AWT and non-AWT startup, we have a property dedicated to testing that can switch all editors to be opened in AWT. Just start NetBeans with -J-Dorg.openide.text.CloneableEditor.oldInitialization=true. This property may be discontiued anytime.

Group of branding interfaces
Interface NameIn/OutStabilitySpecified in What Document?

Control on reload yes/no dialog in CloneableEditorSupport by setting the ASK_OnReload key in org/netbeans/modules/openide/text/ to yes or no in a branding file in your application.

Group of layer interfaces
Interface NameIn/OutStabilitySpecified in What Document?
Editors-TabActionsExportedUnder Development

Actions for the editor tab (window) context menu can be injected into Editors/TabActions.

Implementation Details

Where are the sources for the module?

The sources for the module are in the Apache Git repositories or in the GitHub repositories.

What do other modules need to do to declare a dependency on this one, in addition to or instead of a plain module dependency?

XXX no answer for deploy-dependencies

Read more about the implementation in the answers to architecture questions.

Skip navigation links
org.openide.text 6.90