Support for token hierarchy snapshots and generic character preprocessing was removed from the API and SPI since there were no usecases yet and it should be possible to add the functionality later in a backward compatible way. Some more changes regarding generification etc. were performed.
LexerInput.integerState() was removed.
Javadoc says: Test whether the operating system supports icons on frames (windows). But window system used this method to decide if small 16x16 or bigger 32x32 icon should be used for frame (main window). So usage and Javadoc is inconsistent. All OS support small icon in frame. From JDK 6 it is possible to set multiple size icons for frame so OS WM selects appropriate size. I removed useless usage of this method from window system code and this method is not used elsewhere.
Added a method for registering external file that is supposed to be owned by the project, typically used in freeform project to register build products that are external to project dir.
TokenSequence.removeEmbedding() was added as counterpart
to TokenSequence.createEmbedding().
Also TokenSequence.isValid() was added to check whether
the token sequence can be used for iteration (no modifications
of the underlying input in the meantime).
MimeLookup.getLookup(String mimePath) converts
the (usually held) string mimePath to the MimePath
object automatically.
The EditorStyleConstants.Tooltip constant was added
allowing to specify tooltips in highlighting layers.
SQLIdentifiers.Quoter class which
provides a utility method for quoting SQL identifiers.
LibraryTypeProvider.getCustomizer() can return null for some volume types.
Joining sections embeddings now supported and some minor changes
were introduced like adding LanguagePath.parent().
Some is* methods with trivial implementations were removed from LanguagePath.
TokenChange.embeddedChange(Language) was removed because
there might be multiple such changes and they can be gathered
with existing methods.
Added LanguageHierarchy.embeddingPresence() method
and EmbeddingPresence enum to speed up queries
for embedded token sequences.
When TemplateWizard invokes
DataObject.createFromTemplate,
it passes as argument all its properties
to it with wizard. as a prefix. That way they are available to
underlying scripting and templating
engines.
Templates may use ${encoding} and ${nameAndExt} properties in their bodies to be substituted to the real encoding of the template instance file as well as the actual name (with extension) of the file, being created.
Added method isLocked to FileObject.
org.openide.modules.os.Linux and
org.openide.modules.os.Solaris.
For more details read here.
validate(CharSequence path) and
validate(CharSequence type, CharSequence subtype) methods
were added to the MimePath class to allow validating
mime paths and mime type components.
void CompletionResultSet.setHasAdditionalItems(boolean value) was added
to indicate that some items could exist that will likely need a long time to be computed
and added to the result set. It is preferred to add them on the special 'all' code
completion invocation only.
DatabaseMetaDataTransfer class which
contains DataFlavors for database objects and nested classes
representing those database objects during a drag and drop transfer.
Added methods getOrder, setOrder,
and affectsOrder to FileUtil.
Folders may now be ordered by setting the position attribute
on files within the folder, which should have a numeric value.
The original relative ordering constraints are now deprecated but still work.
The CodeTemplateDescription.getUniqueId method was added
and the constructor was extended to accept uniqueId
parameter.
List<Panel<Data>> was added
to ArrayIterator to avoid the need for generic array construction
by client code.
Now it's possible to provide an action that will be invoked when user chose 'Reset' in palette's popup menu or in Palette Manager window.
The CodeTemplateSettings.getCodeTemplates signature was changed
to return Collection<CodeTemplateDescription> instead
of List. Although an incompatible change this class
had never been functional and should not have been used by anybody.
ExtendedNodeModel and ExtendedNodeModelFilter interfaces
and are also added into CompoundModel:
canRename(), canCopy(), canCut(),
clipboardCopy(), clipboardCut(), getPasteTypes(),
setName(), getIconBaseWithExtension().
Added TokenHierarchy.embeddedTokenSequences method.
ChildFactory can also be used to implement synchronous children,
by setting the asynchronous parameter passed to
Children.create() to false. This could replace most
common usages of Children.Keys, and make it easy to switch to
asynchronous child computation if that is determined to be
necessary for performance reasons.
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.
Field NbDocument.COLORS was removed to remove dependency on org.openide.options.
Class PrintPreferences was added as replacement for original
class PrintSettings.
Classes PrintSettings and PrintSettingsBeanInfo
were removed. Runtime backward compatibility was ensured
by moving both into org.openide.options module which is already deprecated.
To be able to set breakpoint for number of iterations, we need to add a filter for hit counts into Breakpoint API.
Added methods:
Breakpoint.getHitCountFilter(),
Breakpoint.getHitCountFilteringStyle(),
Breakpoint.setHitCountFilter().
Added fields:
Breakpoint.PROP_HIT_COUNT_FILTER,
Breakpoint.HIT_COUNT_FILTERING_STYLE.
In order to implement annotation of method breakpoints in Editor, we need to be able to locate individual methods in Editor, based on their names and signature. Also we need annotation types for fields and methods.
Added methods:
EditorContext.getMethodLineNumber(),
EditorContext.getCurrentMethodDeclaration(),
Added fields:
EditorContext.FIELD_BREAKPOINT_ANNOTATION_TYPE,
EditorContext.DISABLED_FIELD_BREAKPOINT_ANNOTATION_TYPE,
EditorContext.METHOD_BREAKPOINT_ANNOTATION_TYPE
EditorContext.DISABLED_METHOD_BREAKPOINT_ANNOTATION_TYPE
To catch-up with JDI capabilities and be able to implement new enhancements,
we need to add support for new breakpoint properties into the debugger JPDA API.
These are mainly class and thread filters and hit counts.
Added methods:
ExceptionBreakpoint.getClassFilters(),
ExceptionBreakpoint.setClassFilters(),
ExceptionBreakpoint.getClassExclusionFilters(),
ExceptionBreakpoint.setClassExclusionFilters(),
FieldBreakpoint.getInstanceFilters(),
FieldBreakpoint.setInstanceFilters(),
FieldBreakpoint.getThreadFilters(),
FieldBreakpoint.setThreadFilters(),
JPDABreakpoint.getHitCountFilter(),
JPDABreakpoint.getHitCountFilteringStyle(),
JPDABreakpoint.setHitCountFilter(),
LineBreakpoint.getInstanceFilters(),
LineBreakpoint.setInstanceFilters(),
LineBreakpoint.getThreadFilters(),
LineBreakpoint.setThreadFilters(),
MethodBreakpoint.getMethodSignature(),
MethodBreakpoint.setMethodSignature(),
MethodBreakpoint.getInstanceFilters(),
MethodBreakpoint.setInstanceFilters(),
MethodBreakpoint.getThreadFilters(),
MethodBreakpoint.setThreadFilters().
Added fields:
ExceptionBreakpoint.PROP_CLASS_FILTERS,
ExceptionBreakpoint.PROP_CLASS_EXCLUSION_FILTERS,
FieldBreakpoint.PROP_INSTANCE_FILTERS,
FieldBreakpoint.PROP_THREAD_FILTERS,
JPDABreakpoint.PROP_HIT_COUNT_FILTER,
JPDABreakpoint.HIT_COUNT_FILTERING_STYLE,
LineBreakpoint.PROP_INSTANCE_FILTERS,
LineBreakpoint.PROP_THREAD_FILTERS,
MethodBreakpoint.PROP_METHOD_SIGNATURE,
MethodBreakpoint.PROP_INSTANCE_FILTERS,
MethodBreakpoint.PROP_THREAD_FILTERS.
Removed previously added Language.refresh() since
there is an alternative in using LanguageProvider.firePropertyChange(PROP_LANGUAGE).
UILookupMergerSupport.createProjectOpenHookMerger(ProjectOpenedHook) creates an instance of
LookupMerger that ensures that from the ProjectOpenedHook instances in project's lookup, the
project's own is always called first.
WizardDescriptor constructor for subclasses.
It allows to eliminate unchecked warnings.
Added Language.refresh() to allow languages framework
and other clients to update contents of a language dynamically.
Adds few structured logging triggers to cooperate with the UI Gestures Collector.
New method Lookups.forPath(String) has been added to replace now deprecated FolderLookup and allow modules who wants to read settings from layers to do so with a simpler code, without dependency on DataSystems API.
Added TokenHierarchy.tokenSequenceList() to find
token sequences having certain language path throughout the whole input source
or just within given offset bounds.
Also added LanguagePath.embedded(language)
and LanguagePath.embedded(suffixLanguagePath).
API has changed due to the results of API inception review.
Add framework for extending the project's build script with 3rd party snippets, allowing automated extensions to the build process.
In order to be able to provide heap walking functionality, we need methods for retrieval of class instances and back references.
Added methods:
Field.getDeclaringClass(),
JPDAClassType.getClassLoader(),
JPDAClassType.getSuperClass(),
JPDAClassType.getInstanceCount(),
JPDAClassType.getInstances(),
JPDADebugger.canGetInstanceInfo(),
JPDADebugger.getAllClasses(),
JPDADebugger.getClassesByName(),
JPDADebugger.getInstanceCounts(),
ObjectVariable.getReferringObjects(),
ObjectVariable.getClassType(),
ObjectVariable.getUniqueID().
Added classes:
VariableType,
JPDAArrayType.
The DataEditorSupport adds default implementation of SaveAsCapable interface to the CookieSet of DataObjects created by UniFileLoaders. The default implementation calls copyRename method on the DataObject.
An access to method arguments in source code is necessary for cases where we do not have full debug information.
Added methods:
EditorContext.getArguments()
Added classes:
EditorContext.MethodArgument
Whenever someone queries for encoding of a file object on default file system (e.g. the one that is provided by layers), it will get UTF-8 as the default encoding and not the system one. As a result all resources on layers should be in UTF-8 encoding.
project.license for templates using scripting language.
Added a ChangeSupport class to simplify
the management of ChangeListeners and the
firing of ChangeEvents.
Added TokenChange.isBoundsChange() to check
for changes that only modify token bounds (see method's javadoc).
Improved incrementality for embedded sections for bounds changes.
The DataEditorSupport overides the loadFromStreamToKit and saveFromKitToStream methods. In these methods it uses FileEncodingQuery to find out the encoding of the file, creates the Reader or Writer with obtained encoding and calls EditorKit.read or EditorKit.write.
Repository.getDefaultFileSystem's content can now be influenced by adding own FileSystems into global Lookup.getDefault(). This is supposed to work in a standalone mode as well as inside NetBeans Platform. The tutorial is available in the usecases section of achitecture description.
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.
Classpath implementations can now specify which files and folders/packages to include
or exclude. (This could be used for binary classpaths such as COMPILE but
currently only excludes on SOURCE paths are honored by Java language features.)
Added PartType enum and Token.partType()
that identifies whether the token is COMPLETE or which part
of a complete token this part represents (START, INNER or END).
Ant-based projects can now conveniently specify include and exclude lists for source groups based on Ant's standard patternset syntax.
JTabbedPane that displays a small 'close' button in each tab.
When user clicks the close button a PropertyChangeEvent is fired from the
tabbed pane.
The previous version of palette API mandated that editor TopComponent had to insert a PaletteController instance into its Lookup if it wants to associate the palette with it. Now it is possible to associate the palette also with an existing editor without the need to change its implementation, e.g. to add code snippets palette to java source editor.
If the mime type of active editor window has an associated instance of PaletteController in the XML layer system then palette window opens and displays the specified palette contents. The PaletteController from TopComponent's Lookup takes precedens over the PaletteController found from mime type lookup in the XML layer (if any) for backwards compatibility.
The new API is fully backwards compatible and there are no implications for existing palette providers.