Added method SourcesHelper.createSourceGroupModifierImplementation creating SourceGroupModifierImplementation
implementation for Ant-based projects. Also added SourcesHelper.SourceRootConfig class
and SourcesHelper.sourceRoot(String location) method for more readable configuration
of source roots. These support additional parameter hint(), which is required
for the implementation to work. Existing SourcesHelper.addPrincipalSourceRoot
and SourcesHelper.addTypedSourceRoot methods are deprecated.
TreeMake.Method(..., boolean isVarArg) to allow creation of methods with variable lenght of arguments.
DatabaseConnection.getJDBCDriver() method should be added.
OpenProjects.open has now new overloaded
variant that supports visual indication of the open progress.
The behaviour of UpdateItem.createFeature().getInstalled().isEnabled()
has been changed. Now it returns true only if
all dependencies are enabled.
It came to our attention that often users of OpenProjects
want to find out if their project is opened or not. To simplify
such code we offer a handy utility method.
Dependency now implements Serializable
The new constructor enables simplified control flow.
Use ServicesTabNodeRegistration to register your nodes into Services in the IDE.
NodeOp.factory is new layer based factory method to allow declarative definition of a root node into the UI.
Comment.create(Comment.Style, String) to create new comment of any style from string.
Task List implementation uses Indexing API to persist tasks created by FileTaskScanners. If a file hasn't changed since the last scan then the tasks associated with that file are loaded from cache to improve Task List performance. Therefore task's ActionListener isn't available when the task is restored from cache. Task providers must switch to PushTaskScanner if ActionListener is required to be available at all times.
UI/Services
configuration folder will trigger the button to be displayed which
opens a special dialog for them.
Added ability to get the underlying InputOutput
object for advanced formatting.
Added classes:
org.netbeans.spi.viewmodel.CheckNodeModel,
org.netbeans.spi.viewmodel.CheckNodeModelFilter
Adding "feature class" to control output color and programmatical scrolling.
IOColorLines,
IOColors,
IOPosition,
Introducing AntBasedProjectRegistration to
simplify registering Ant based projects. Just write the
project class and annotate it.
Properties.Initializer interface introduced to provide initial values of properties. This is necessary when properties are accessed from more places and it's not practical to copy default values to every such location.
addPropertyChangeListener() and removePropertyChangeListener() methods added to Properties class.
Added a few constants to JavaProjectConstants for use by SourceGroupModifier with relation
to java projects.
SourceGroupModifier provides ways of create specific folders (SourceGroup root folders)
in case they don't exist, eg. cannot be retrieved from Sources.
The project supporting automated creation of SourceGroup root folders needs to
provide SourceGroupModifierImplementation in the project's lookup.
Adding a new constant SimpleValueNames.ALT_HYPERLINK_ACTIVATION_MODIFIERS as the name
of an editor setting that determins shortcut for activating alternative (other than go to declaration)
hyperlink action.
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.
Added asBytes(), asText(encoding), and asLines(encoding) methods into FileObject to simplify reading of its content.
In order to be able to register debugger services on System FileSystem,
which brings more flexibility and better performance (see also
),
we add non-recursive content of org.openide.util.Lookups.forPath()
into debugger lookup.
Since debugger needs retrieve context-aware services from the lookup,
ContextAwareService interface is introduced.
Annotations are added for easy registration on module layers.
DebuggerServiceRegistration to register implementations
of interfaces, *Provider.Registration to register
implementations of appropriate providers.
Annotations are added for easy registration on module layers.
*Provider.Registration annotations are introduced to register
implementations of appropriate providers.
Convenient method for loading icons.
Added annotations to register entries to project lookup individually.
These can be used instead of implementing a LookupProvider.
Since the entries are loaded on demand, this can help avoid needless class loading.
Added FileUtil.addFileChangeListener(FileChangeListener listener, File path) and FileUtil.addFileChangeListener(FileChangeListener listener, File path). It permits you to listen to a file which does not yet exist, or continue listening to it after it is deleted and recreated, etc.
Added methods:
JPDAThread.getReadAccessLock(),
Introducing ProjectFactory2 that extends ProjectFactory
and return ProjectManager.Result instead of a simple boolean value.
Also add ProjectManager.isProject2(FileObject) method that can be used by
3rd party modules that need a fast (yet not 100% reliable) way of finding the project icon for a folder.
Rather than having to call
Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("foo/bar"),
you can simply call
FileUtil.getConfigFile("foo/bar").
readProperties method has been extended
to allow the method to return an object. Read
more.
@ConvertAsProperties annotation.
keyToString(KeyStroke stroke, boolean portable)
provides cross-platform compitable keystroke textual representation
instead of hardcoding Ctrl, Meta or Alt key.
Added @PatchedPublic to request that the module system
treat binary references to a method as public even if in source is
is not public.
Method FileUtil.setMIMEType(String extension, String mimeType) resurrected to register file extension for specified MIME type. It is persisted in userdir contrary to previous implementation. Added method FileUtil.getMIMETypeExtensions(String mimeType) to get list of file extensions associated with specified MIME type.
Added FileChooserBuilder, a utility class for working with JFileChoosers. In particular, FileChooserBuilder makes it easy to create file chooser dialogs which remember what directory the user last invoked them on, across sessions.
recognizeXML=true then
Convertors will attempt to process also files with .xml extension.
Deprecated methods related to Toolbar drag and drop.
ChildFactory.Detachable is an abstract class which adds addNotify() and removeNotify() methods to ChildFactory. addNotify() is called immediately before the first call to createKeys() after creation or a call to removeNotify().
Add annotation @NodeFactory.Registration to replace registration in layer files.
It is now possible to write declarive MIME resolvers checking file names (element name) and file content (element pattern).
Add annotation @LookupProvider.Registration to replace registration in layer files.
It is now possible to write JSR 269-compliant annotation processors which create XML layer (i.e. system filesystem) entries.
Added annotations ServiceProvider and ServiceProviders
to simplify registration of global singleton services.
DataFilter interface used to support filtering based on DataObjects. With the introduction of more effective nodes, this is slowing down the visualization of folders significantly. That is why we introduce new pre-filter which can operate on FileObjects, whithout the need to instantiate DataObjects.
Added spi for plugging into the Repeat Build/Run and Stop Build/Run actions that were previously accessible by ant based projects only.