This document lists changes made to the Project UI API.
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.
projectOpened
and projectClosed
methods are called on
all ProjectOpenedHook
instances in the lookup.
definesMainProject
property to wizards
Templates.buildSimpleTargetChooser
CommonProjectActions.forType
ActionProvider
s
project.encoding
LookupMerger
implementation for ProjectOpenedHook
project.license
CommonProjectActions.setProjectConfigurationAction
projectOpened
and projectClosed
methods are called on
all ProjectOpenedHook
instances in the lookup.
OpenProjects
class
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.netbeans.modules.projectuiapi/1 > 1.20
definesMainProject
property to wizards
Templates.buildSimpleTargetChooser
CommonProjectActions.forType
ActionProvider
s
project.encoding
LookupMerger
implementation for ProjectOpenedHook
project.license
CommonProjectActions.setProjectConfigurationAction
projectOpened
and projectClosed
methods are called on
all ProjectOpenedHook
instances in the lookup.
OpenProjects
class
org.netbeans.spi.project.ui.support.BuildExecutionSupport
org.netbeans.spi.project.ui.support.CommonProjectActions
CommonProjectActions.forType
CommonProjectActions.setProjectConfigurationAction
org.netbeans.spi.project.ui.support.FileSensitiveActions
ActionProvider
s
org.netbeans.spi.project.ui.LogicalViewProvider
org.netbeans.spi.project.ui.support.NodeFactory
org.netbeans.spi.project.ui.support.NodeFactorySupport
org.netbeans.spi.project.ui.support.NodeList
org.netbeans.api.project.ui.OpenProjects
OpenProjects
class
org.netbeans.spi.project.ui.PrivilegedTemplates
org.netbeans.spi.project.ui.support.ProjectCustomizer
org.netbeans.spi.project.ui.templates.support.Templates
definesMainProject
property to wizards
Templates.buildSimpleTargetChooser
org.netbeans.spi.project.ui.support.UILookupMergerSupport
LookupMerger
implementation for ProjectOpenedHook
definesMainProject
property to wizards
Templates
; made by: jglick; issues:
#184213
Added official way to specify whether a New Project wizard should set a main project.
Internally, an unspecified wizard property is used to store this information, which was previously hard-coded in certain modules. All modules using the magic constant should switch to using the new methods instead.
Templates.buildSimpleTargetChooser
Templates
; made by: jglick; issues:
#141886
Added a builder for simple target choosers.
freeFileExtension()
permits the user to pick a
file extension for the new file distinct from that of the template.
CommonProjectActions.forType
CommonProjectActions
; made by: jglick; issues:
#182488
Added a standard way for the context menu of a project's root node to be defined declaratively.
Project types which LogicalViewProvider
's root
node currently implements getActions
with a
hard-coded list are encouraged to switch to declarative
registration.
ProjectCustomizer
; made by: tboudreau; issues:
#182711
Added factory methods to ProjectCustomizer, for creating a ComboBoxModel of Charsets for all available character encodings with an initial selection, and a ListCellRenderer for Charset objects, for use in combo boxes.
ProjectCustomizer
; made by: jglick; issues:
#171029
@CompositeCategoryProvider.Registration
may be used
to register project customizer panels.
ActionProvider
s
FileSensitiveActions
; made by: jglick; issues:
#102081
ActionProvider
s may now be registered in global
lookup so as to enable certain file-sensitive actions on certain
selections without the support of any project.
OpenProjects
; made by: ovrabec; issues:
#162588
OpenProjects.open
has now new overloaded
variant that supports visual indication of the open progress.
OpenProjects
; made by: jtulach; issues:
#161120
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.
NodeFactory
; made by: mkleint; issues:
#153015
Add annotation @NodeFactory.Registration to replace registration in layer files.
BuildExecutionSupport
; made by: mkleint; issues:
#110465
Added spi for plugging into the Repeat Build/Run and Stop Build/Run actions that were previously accessible by ant based projects only.
LogicalViewProvider
; made by: jglick; issues:
#135399
Project root nodes will now automatically be badged according to VCS status of contained files.
project.encoding
project.encoding
for templates using scripting language.
PrivilegedTemplates
; made by: mkleint; issues:
#122942
OpenProjects
; made by: mkubec; issues:
#124980
ProjectCustomizer
; made by: mkubec; issues:
#91291
LookupMerger
implementation for ProjectOpenedHook
UILookupMergerSupport
; made by: mkleint; issues:
#103106
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.
project.license
project.license
for templates using scripting language.
ProjectCustomizer
; made by: mkubec; issues:
#91276
ProjectCustomizer
; made by: mkleint; issues:
#85405
ProjectCustomizer.Category
that will notify the Category
and it's panel that the changes ought to be applied. This is generally useful as a fallback, general
solution for 3rd party plugging into the project customizer in case the given project type doesn't provide
model-driven project updating mechanism.
OpenProjects
; made by: mkleint; issues:
#64491
OpenProjects.PROPERTY_MAIN_PROJECT
property and firing changes in main project property value
to listeners attached to OpenProjects.
UILookupMergerSupport
; made by: mkleint; issues:
#83343
Related to 1.12 change in Project API.
LookupMerger
implementation for PrivilegedTemplates
and
RecommendedTemplates
added.
NodeFactory
NodeList
NodeFactorySupport
; made by: mkleint; issues:
#72441
CommonProjectActions.setProjectConfigurationAction
CommonProjectActions
; made by: jglick; issues:
#49652
Added method CommonProjectActions.setProjectConfigurationAction()
to permit projects supporting configurations to include a context menu
item in their logical view to change the active configuration.
ProjectCustomizer
; made by: mkleint; issues:
#74373
createCustomizerDialog(String, Lookup, String, ActionListener, HelpCtx)
method to ProjectCustomizer.
That allows to construct project customizer from a layer folder content. It assumes to find instances of
ProjectCustomizer.CompositeCategoryProvider
in the layer and constructs the UI from them.
The context is passed into the panel via a Lookup instance. What is in the lookup, is up to the individual project
implementations.
getMainProject
and setMainProject
methods to OpenProjects.
CommonProjectActions.deleteProjectAction
, CommonProjectActions.copyProjectAction
,
CommonProjectActions.moveProjectAction
, CommonProjectActions.removeProjectAction
methods.DefaultProjectOperations
support to simplify implementation of project delete/copy/rename/move for simple projects.ProjectCustomizer
; made by: mkrauskopf; issues:
#61036
Added ProjectCustomizer.Category.setErrorMessage
and
ProjectCustomizer.Category.getErrorMessage
methods. With those methods client can set an error message
for individual categories.
Also the default implementation of a customizer dialog uses
these methods for showing a message on the bottom of
category views and to mark category nodes for invalid
categories (similar to the error message in wizards).
ProjectCustomizer
; made by: mkrauskopf; issues:
#58457
Added ProjectCustomizer.Category.setValid
and
ProjectCustomizer.Category.isValid
methods.
With those methods client can affect whether the OK button
of the Customizer dialog is enabled.
CommonProjectActions
Templates
; made by: pkuzel; issues:
#58489
CommonProjectActions.newProjectAction
methodCommonProjectActions.EXISTING_SOURCES_FOLDER
propertyTemplates.getExistingSourcesFolder
methodprojectOpened
and projectClosed
methods are called on
all ProjectOpenedHook
instances in the lookup.
The projectOpened
and projectClosed
methods are called on
all ProjectOpenedHook
instances found in a project's lookup.
This change is incompatible because a project type can return a lookup with several
ProjectOpenedHook
s and depend on only first one being notified on open/close.
Such a code should be rewritten using org.openide.util.lookup.Lookups.exclude
.
Projects/Actions/
which may hold
actions to be added to the context menu of any project type.
Existing project types need to add support for the new folder in order to comply with the guideline.
ProjectCustomizer
; made by: phrebejk; issues:
#49647
Added org.netbeans.spi.project.ui.support.ProjectCustomizer
containing support methods for creating standard looking project customizer
dialogs.
To indicate that this is now considered a stable API, the major release version was incremented to 1 from 0.
Clients should begin requesting the new version to avoid a warning at startup.
OpenProjects
class
OpenProjects
; made by: tzezula
Added open
and close
methods to org.netbeans.api.project.ui.OpenProjects
. The open
method
opens the specified projects. The close
method closes the specified projects.
Built on December 5 2011. | Portions Copyright 1997-2011 Sun Microsystems, Inc. All rights reserved.