blob: c0adbecab9ae07bf1029ed3d95575632865f3f39 [file] [log] [blame]
<html>
<!--
NO NO NO NO NO!
==============> DO NOT EDIT ME! <==============
AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT
SEE projects/projectuiapi/apichanges.xml
-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Change History for the Project UI API</title>
<link rel="stylesheet" href="prose.css" type="text/css">
</head>
<body>
<p class="overviewlink">
<a href="overview-summary.html" shape="rect">Overview</a>
</p>
<h1>Introduction</h1>
<p>This document lists changes made to the <a href="../org-netbeans-modules-projectuiapi/index.html" shape="rect">Project UI API</a>.</p>
<!-- The actual lists of changes, as summaries and details: -->
<hr>
<h1>
<a name="list-all-apis">Index of APIs</a>
</h1>
<ul>
<li>
<a href="#general">Project UI API</a>
</li>
</ul>
<h1>
<a name="incompat-by-date">Incompatible changes by date</a>
</h1>
<p>Fuller descriptions of all changes can be found below (follow links).</p>
<p>Not all deprecations are listed here, assuming that the deprecated
APIs continue to essentially work. For a full deprecation list, please
consult the
<a href="deprecated-list.html">Javadoc</a>.</p>
<ul>
<li>(Jan 5 '07) <a href="#non-leaf-category-node-customizer">Added a way how to define UI component for non-leaf category node in project customizer</a>
</li>
<li>(May 12 '05) <a href="#ProjectOpenedHook.fire-to-all">The <code>projectOpened</code> and <code>projectClosed</code> methods are called on
all <code>ProjectOpenedHook</code> instances in the lookup.
</a>
</li>
<li>(May 5 '05) <a href="#ProjectActions">Ability to extend project context menus</a>
</li>
</ul>
<h1>
<a name="all-by-date">All changes by date</a>
</h1>
<ul>
<li>(Apr 14 '15) <a href="#newProjectAction.preselectCategory">Provide a method to create an action that invokes the new project wizard,
preselects a category and propagates a set of properties to the wizard descriptor.</a>
</li>
<li>(Jul 15 '14) <a href="#BuildExecutionSupport.lastItem">Provide last runing item from BuildExecutionSupport. Listen on changes of it.</a>
</li>
<li>(May 26 '14) <a href="#server.is.free">Split the api into a desktop (swing, awt) and NetBeans dependent and independent part.</a>
</li>
<li>(Oct 7 '13) <a href="#ProjectProblemsProvider.unresolvable">Allow creating ProjectProblemsProvider.ProjectProblem without a ProjectProblemResolver </a>
</li>
<li>(May 13 '13) <a href="#CustomizerProvider2">Moved CustomizerProvider2 from java.api.common</a>
</li>
<li>(Feb 27 '13) <a href="#project.licensePath">Project system related file templates can include shared license header file</a>
</li>
<li>(Feb 22 '13) <a href="#BuildExecutionSupport.ActionItem">Added BuildExecutionSupport.ActionItem extension to BuildExecutionSupport.Item</a>
</li>
<li>(Jan 24 '13) <a href="#CommonProjectActions.PROJECT_PARENT_FOLDER">Added CommonProjectActions.PROJECT_PARENT_FOLDER constant</a>
</li>
<li>(Nov 10 '12) <a href="#ProjectCustomizer.Category.CloseListener">Added Close listener to ProjectCustomizer.Category.</a>
</li>
<li>(Oct 2 '12) <a href="#ProjectProblemsProviderSupport">Added a support class for ProjectProblemsProvider.</a>
</li>
<li>(Aug 25 '12) <a href="#ProjectGroup">API to get current active project group and listen to project groups switching</a>
</li>
<li>(Jul 24 '12) <a href="#ProjectProblems">Added an SPI to provide project metadata problems.</a>
</li>
<li>(Jul 13 '12) <a href="#PathFinder">Extracted <code>findPath</code> method into a new interface <code>PathFinder</code></a>
</li>
<li>(Mar 19 '12) <a href="#setAsMain">Programmatically setting main project deprecated</a>
</li>
<li>(Jan 13 '12) <a href="#FileSensitiveAction.performer">Adding ability to create a file sensitive action with custom performer</a>
</li>
<li>(Dec 12 '11) <a href="#willOpenProjects">Will open project notification</a>
</li>
<li>(Apr 21 '10) <a href="#Templates.definesMainProject">Added <code>definesMainProject</code> property to wizards</a>
</li>
<li>(Apr 13 '10) <a href="#Templates.buildSimpleTargetChooser">Added <code>Templates.buildSimpleTargetChooser</code></a>
</li>
<li>(Apr 1 '10) <a href="#CommonProjectActions.forType">Added <code>CommonProjectActions.forType</code></a>
</li>
<li>(Mar 25 '10) <a href="#ProjectChooser.encodingRenderer">Added public static ProjectCustomizer.encodingModel(String) and public static ProjectCustomizer.encodingRenderer()</a>
</li>
<li>(Sep 10 '09) <a href="#CompositeCategoryProvider.Registration">Customizer panel registrations using annotations</a>
</li>
<li>(Jul 23 '09) <a href="#ActionProvider.global">Globally registered <code>ActionProvider</code>s</a>
</li>
<li>(May 6 '09) <a href="#open-with-progress">OpenProjects.open() supports visual progress</a>
</li>
<li>(Apr 7 '09) <a href="#isProjectOpen">Utility method OpenProjects.isProjectOpen</a>
</li>
<li>(Nov 20 '08) <a href="#nodefactory-ann">Add annotation @NodeFactory.Registration</a>
</li>
<li>(Oct 23 '08) <a href="#stop-repeat-build">Pluggable Repeat/Stop build actions</a>
</li>
<li>(Jun 9 '08) <a href="#ProjectsRootNode-badging">Project root nodes automatically badged</a>
</li>
<li>(Mar 26 '08) <a href="#project-encoding-property">Adding template attribute <code>project.encoding</code></a>
</li>
<li>(Mar 21 '08) <a href="#folder-based-privileged-templates">PrivilegedTemplates instance in global action context is preferred</a>
</li>
<li>(Feb 6 '08) <a href="#observe-opening-closing">Added ways to track projects opening and closing</a>
</li>
<li>(Jan 9 '08) <a href="#store-listener-added">Added methods for creating customizer UI with additional listener for saving outside of AWT EQ</a>
</li>
<li>(May 10 '07) <a href="#project-open-hook-merger">Add <code>LookupMerger</code>implementation for <code>ProjectOpenedHook</code></a>
</li>
<li>(Mar 26 '07) <a href="#project-license-property">Adding template attribute <code>project.license</code></a>
</li>
<li>(Jan 5 '07) <a href="#non-leaf-category-node-customizer">Added a way how to define UI component for non-leaf category node in project customizer</a>
</li>
<li>(Oct 23 '06) <a href="#ProjectCustomizer.Category.buttonListener">Ability to attach a ok button listener on single customizer category.</a>
</li>
<li>(Oct 16 '06) <a href="#PROPERTY_MAIN_PROJECT">Added OpenProjects.PROPERTY_MAIN_PROJECT property</a>
</li>
<li>(Oct 5 '06) <a href="#lookup-provider.ui">Added LookupMerger implementations for PrivilegedTemplates and RecommendedTemplates</a>
</li>
<li>(Sep 18 '06) <a href="#NodeFactory">Ability to construct project node's children from multiple sources.</a>
</li>
<li>(Sep 8 '06) <a href="#CommonProjectActions.setProjectConfigurationAction">Added <code>CommonProjectActions.setProjectConfigurationAction</code></a>
</li>
<li>(Apr 11 '06) <a href="#CompositeCategoryProvider">Ability to construct a project customizer from panels declared in layers.</a>
</li>
<li>(Aug 26 '05) <a href="#getSetMainProject">Ability to get and set main project</a>
</li>
<li>(Aug 22 '05) <a href="#delete-copy-move-support">Project Delete/Copy/Rename/Move Support Added, Support for Default Project Delete/Copy/Rename/Move Added</a>
</li>
<li>(Jul 28 '05) <a href="#ProjectCustomizer.Category.errorMessage">Added ability to set an error message for project customizer's categories.</a>
</li>
<li>(Jul 28 '05) <a href="#ProjectCustomizer.Category.valid">Added ability to set whether a project customizer's categories are valid.</a>
</li>
<li>(May 17 '05) <a href="#CommonProjectActions.EXISTING_SOURCES_FOLDER">New Project Wizard Action</a>
</li>
<li>(May 12 '05) <a href="#ProjectOpenedHook.fire-to-all">The <code>projectOpened</code> and <code>projectClosed</code> methods are called on
all <code>ProjectOpenedHook</code> instances in the lookup.
</a>
</li>
<li>(May 5 '05) <a href="#ProjectActions">Ability to extend project context menus</a>
</li>
<li>(Jan 16 '05) <a href="#ProjectCustomizer.addition">Added support class for creating standard project customizer dialogs</a>
</li>
<li>(Dec 22 '04) <a href="#rel-vers-1">Switched to major release version 1</a>
</li>
<li>(Dec 14 '04) <a href="#OpenProjects.open-close">Added open and close methods into <code>OpenProjects</code> class</a>
</li>
</ul>
<h1>
<a name="all-by-version">Changes by version</a>
</h1>
<p>
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 <samp>1.20</samp>, your
manifest should contain in its main attributes the line:
</p>
<pre>OpenIDE-Module-Module-Dependencies: org.netbeans.modules.projectuiapi/1 &gt; 1.20</pre>
<ul>
<li>
(1.81) <a href="#newProjectAction.preselectCategory">Provide a method to create an action that invokes the new project wizard,
preselects a category and propagates a set of properties to the wizard descriptor.</a>
</li>
<li>
(1.78) <a href="#server.is.free">Split the api into a desktop (swing, awt) and NetBeans dependent and independent part.</a>
</li>
<li>
(1.78) <a href="#BuildExecutionSupport.lastItem">Provide last runing item from BuildExecutionSupport. Listen on changes of it.</a>
</li>
<li>
(1.74) <a href="#ProjectProblemsProvider.unresolvable">Allow creating ProjectProblemsProvider.ProjectProblem without a ProjectProblemResolver </a>
</li>
<li>
(1.71) <a href="#CustomizerProvider2">Moved CustomizerProvider2 from java.api.common</a>
</li>
<li>
(1.69) <a href="#project.licensePath">Project system related file templates can include shared license header file</a>
</li>
<li>
(1.69) <a href="#BuildExecutionSupport.ActionItem">Added BuildExecutionSupport.ActionItem extension to BuildExecutionSupport.Item</a>
</li>
<li>
(1.67) <a href="#CommonProjectActions.PROJECT_PARENT_FOLDER">Added CommonProjectActions.PROJECT_PARENT_FOLDER constant</a>
</li>
<li>
(1.65) <a href="#ProjectCustomizer.Category.CloseListener">Added Close listener to ProjectCustomizer.Category.</a>
</li>
<li>
(1.63) <a href="#ProjectProblemsProviderSupport">Added a support class for ProjectProblemsProvider.</a>
</li>
<li>
(1.61) <a href="#ProjectGroup">API to get current active project group and listen to project groups switching</a>
</li>
<li>
(1.60) <a href="#ProjectProblems">Added an SPI to provide project metadata problems.</a>
</li>
<li>
(1.59) <a href="#PathFinder">Extracted <code>findPath</code> method into a new interface <code>PathFinder</code></a>
</li>
<li>
(1.56) <a href="#setAsMain">Programmatically setting main project deprecated</a>
</li>
<li>
(1.56) <a href="#FileSensitiveAction.performer">Adding ability to create a file sensitive action with custom performer</a>
</li>
<li>
(1.55) <a href="#willOpenProjects">Will open project notification</a>
</li>
<li>
(1.47) <a href="#Templates.definesMainProject">Added <code>definesMainProject</code> property to wizards</a>
</li>
<li>
(1.45) <a href="#Templates.buildSimpleTargetChooser">Added <code>Templates.buildSimpleTargetChooser</code></a>
</li>
<li>
(1.43) <a href="#CommonProjectActions.forType">Added <code>CommonProjectActions.forType</code></a>
</li>
<li>
(1.42) <a href="#ProjectChooser.encodingRenderer">Added public static ProjectCustomizer.encodingModel(String) and public static ProjectCustomizer.encodingRenderer()</a>
</li>
<li>
(1.38) <a href="#CompositeCategoryProvider.Registration">Customizer panel registrations using annotations</a>
</li>
<li>
(1.37) <a href="#ActionProvider.global">Globally registered <code>ActionProvider</code>s</a>
</li>
<li>
(1.35) <a href="#open-with-progress">OpenProjects.open() supports visual progress</a>
</li>
<li>
(1.34) <a href="#isProjectOpen">Utility method OpenProjects.isProjectOpen</a>
</li>
<li>
(1.33) <a href="#nodefactory-ann">Add annotation @NodeFactory.Registration</a>
</li>
<li>
(1.32) <a href="#stop-repeat-build">Pluggable Repeat/Stop build actions</a>
</li>
<li>
(1.31) <a href="#ProjectsRootNode-badging">Project root nodes automatically badged</a>
</li>
<li>
(1.29) <a href="#project-encoding-property">Adding template attribute <code>project.encoding</code></a>
</li>
<li>
(1.28) <a href="#folder-based-privileged-templates">PrivilegedTemplates instance in global action context is preferred</a>
</li>
<li>
(1.27) <a href="#observe-opening-closing">Added ways to track projects opening and closing</a>
</li>
<li>
(1.26) <a href="#store-listener-added">Added methods for creating customizer UI with additional listener for saving outside of AWT EQ</a>
</li>
<li>
(1.24) <a href="#project-open-hook-merger">Add <code>LookupMerger</code>implementation for <code>ProjectOpenedHook</code></a>
</li>
<li>
(1.23) <a href="#project-license-property">Adding template attribute <code>project.license</code></a>
</li>
<li>
(1.22) <a href="#non-leaf-category-node-customizer">Added a way how to define UI component for non-leaf category node in project customizer</a>
</li>
<li>
(1.21) <a href="#ProjectCustomizer.Category.buttonListener">Ability to attach a ok button listener on single customizer category.</a>
</li>
<li>
(1.20) <a href="#PROPERTY_MAIN_PROJECT">Added OpenProjects.PROPERTY_MAIN_PROJECT property</a>
</li>
<li>
(1.19) <a href="#lookup-provider.ui">Added LookupMerger implementations for PrivilegedTemplates and RecommendedTemplates</a>
</li>
<li>
(1.18) <a href="#NodeFactory">Ability to construct project node's children from multiple sources.</a>
</li>
<li>
(1.17) <a href="#CommonProjectActions.setProjectConfigurationAction">Added <code>CommonProjectActions.setProjectConfigurationAction</code></a>
</li>
<li>
(1.15) <a href="#CompositeCategoryProvider">Ability to construct a project customizer from panels declared in layers.</a>
</li>
<li>
(1.11) <a href="#getSetMainProject">Ability to get and set main project</a>
</li>
<li>
(1.10) <a href="#delete-copy-move-support">Project Delete/Copy/Rename/Move Support Added, Support for Default Project Delete/Copy/Rename/Move Added</a>
</li>
<li>
(1.9) <a href="#ProjectCustomizer.Category.errorMessage">Added ability to set an error message for project customizer's categories.</a>
</li>
<li>
(1.9) <a href="#ProjectCustomizer.Category.valid">Added ability to set whether a project customizer's categories are valid.</a>
</li>
<li>
(1.7) <a href="#ProjectActions">Ability to extend project context menus</a>
</li>
<li>
(1.4) <a href="#ProjectCustomizer.addition">Added support class for creating standard project customizer dialogs</a>
</li>
<li>
(1.3) <a href="#CommonProjectActions.EXISTING_SOURCES_FOLDER">New Project Wizard Action</a>
</li>
<li>
(1.3) <a href="#ProjectOpenedHook.fire-to-all">The <code>projectOpened</code> and <code>projectClosed</code> methods are called on
all <code>ProjectOpenedHook</code> instances in the lookup.
</a>
</li>
<li>
(1.3) <a href="#rel-vers-1">Switched to major release version 1</a>
</li>
<li>
(1.2) <a href="#OpenProjects.open-close">Added open and close methods into <code>OpenProjects</code> class</a>
</li>
</ul>
<h1>
<a name="all-by-class">Changes by affected class</a>
</h1>
<h2>
<a name="org.netbeans.spi.project.ui.support.BuildExecutionSupport"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>BuildExecutionSupport</code></a>
</h2><ul><li>(Jul 15 '14) <a href="#BuildExecutionSupport.lastItem">Provide last runing item from BuildExecutionSupport. Listen on changes of it.</a>
</li>
<li>(Feb 22 '13) <a href="#BuildExecutionSupport.ActionItem">Added BuildExecutionSupport.ActionItem extension to BuildExecutionSupport.Item</a>
</li>
<li>(Oct 23 '08) <a href="#stop-repeat-build">Pluggable Repeat/Stop build actions</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.CommonProjectActions"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>CommonProjectActions</code></a>
</h2><ul><li>(Apr 14 '15) <a href="#newProjectAction.preselectCategory">Provide a method to create an action that invokes the new project wizard,
preselects a category and propagates a set of properties to the wizard descriptor.</a>
</li>
<li>(Jan 24 '13) <a href="#CommonProjectActions.PROJECT_PARENT_FOLDER">Added CommonProjectActions.PROJECT_PARENT_FOLDER constant</a>
</li>
<li>(Apr 1 '10) <a href="#CommonProjectActions.forType">Added <code>CommonProjectActions.forType</code></a>
</li>
<li>(Sep 8 '06) <a href="#CommonProjectActions.setProjectConfigurationAction">Added <code>CommonProjectActions.setProjectConfigurationAction</code></a>
</li>
<li>(May 17 '05) <a href="#CommonProjectActions.EXISTING_SOURCES_FOLDER">New Project Wizard Action</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.FileActionPerformer"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>FileActionPerformer</code></a>
</h2><ul><li>(Jan 13 '12) <a href="#FileSensitiveAction.performer">Adding ability to create a file sensitive action with custom performer</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.FileSensitiveActions"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>FileSensitiveActions</code></a>
</h2><ul><li>(Jan 13 '12) <a href="#FileSensitiveAction.performer">Adding ability to create a file sensitive action with custom performer</a>
</li>
<li>(Jul 23 '09) <a href="#ActionProvider.global">Globally registered <code>ActionProvider</code>s</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.LogicalViewProvider"><code><span style="color:gray">org.netbeans.spi.project.ui.</span>LogicalViewProvider</code></a>
</h2><ul><li>(Jun 9 '08) <a href="#ProjectsRootNode-badging">Project root nodes automatically badged</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.NodeFactory"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>NodeFactory</code></a>
</h2><ul><li>(Nov 20 '08) <a href="#nodefactory-ann">Add annotation @NodeFactory.Registration</a>
</li>
<li>(Sep 18 '06) <a href="#NodeFactory">Ability to construct project node's children from multiple sources.</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.NodeFactorySupport"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>NodeFactorySupport</code></a>
</h2><ul><li>(Sep 18 '06) <a href="#NodeFactory">Ability to construct project node's children from multiple sources.</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.NodeList"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>NodeList</code></a>
</h2><ul><li>(Sep 18 '06) <a href="#NodeFactory">Ability to construct project node's children from multiple sources.</a>
</li></ul><h2>
<a name="org.netbeans.api.project.ui.OpenProjects"><code><span style="color:gray">org.netbeans.api.project.ui.</span>OpenProjects</code></a>
</h2><ul><li>(Aug 25 '12) <a href="#ProjectGroup">API to get current active project group and listen to project groups switching</a>
</li>
<li>(Mar 19 '12) <a href="#setAsMain">Programmatically setting main project deprecated</a>
</li>
<li>(Dec 12 '11) <a href="#willOpenProjects">Will open project notification</a>
</li>
<li>(May 6 '09) <a href="#open-with-progress">OpenProjects.open() supports visual progress</a>
</li>
<li>(Apr 7 '09) <a href="#isProjectOpen">Utility method OpenProjects.isProjectOpen</a>
</li>
<li>(Feb 6 '08) <a href="#observe-opening-closing">Added ways to track projects opening and closing</a>
</li>
<li>(Oct 16 '06) <a href="#PROPERTY_MAIN_PROJECT">Added OpenProjects.PROPERTY_MAIN_PROJECT property</a>
</li>
<li>(Dec 14 '04) <a href="#OpenProjects.open-close">Added open and close methods into <code>OpenProjects</code> class</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.PathFinder"><code><span style="color:gray">org.netbeans.spi.project.ui.</span>PathFinder</code></a>
</h2><ul><li>(Jul 13 '12) <a href="#PathFinder">Extracted <code>findPath</code> method into a new interface <code>PathFinder</code></a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.PrivilegedTemplates"><code><span style="color:gray">org.netbeans.spi.project.ui.</span>PrivilegedTemplates</code></a>
</h2><ul><li>(Mar 21 '08) <a href="#folder-based-privileged-templates">PrivilegedTemplates instance in global action context is preferred</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.ProjectCustomizer"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>ProjectCustomizer</code></a>
</h2><ul><li>(Nov 10 '12) <a href="#ProjectCustomizer.Category.CloseListener">Added Close listener to ProjectCustomizer.Category.</a>
</li>
<li>(Mar 25 '10) <a href="#ProjectChooser.encodingRenderer">Added public static ProjectCustomizer.encodingModel(String) and public static ProjectCustomizer.encodingRenderer()</a>
</li>
<li>(Sep 10 '09) <a href="#CompositeCategoryProvider.Registration">Customizer panel registrations using annotations</a>
</li>
<li>(Jan 9 '08) <a href="#store-listener-added">Added methods for creating customizer UI with additional listener for saving outside of AWT EQ</a>
</li>
<li>(Jan 5 '07) <a href="#non-leaf-category-node-customizer">Added a way how to define UI component for non-leaf category node in project customizer</a>
</li>
<li>(Oct 23 '06) <a href="#ProjectCustomizer.Category.buttonListener">Ability to attach a ok button listener on single customizer category.</a>
</li>
<li>(Apr 11 '06) <a href="#CompositeCategoryProvider">Ability to construct a project customizer from panels declared in layers.</a>
</li>
<li>(Jul 28 '05) <a href="#ProjectCustomizer.Category.errorMessage">Added ability to set an error message for project customizer's categories.</a>
</li>
<li>(Jul 28 '05) <a href="#ProjectCustomizer.Category.valid">Added ability to set whether a project customizer's categories are valid.</a>
</li>
<li>(Jan 16 '05) <a href="#ProjectCustomizer.addition">Added support class for creating standard project customizer dialogs</a>
</li></ul><h2>
<a name="org.netbeans.api.project.ui.ProjectGroup"><code><span style="color:gray">org.netbeans.api.project.ui.</span>ProjectGroup</code></a>
</h2><ul><li>(Aug 25 '12) <a href="#ProjectGroup">API to get current active project group and listen to project groups switching</a>
</li></ul><h2>
<a name="org.netbeans.api.project.ui.ProjectGroupChangeEvent"><code><span style="color:gray">org.netbeans.api.project.ui.</span>ProjectGroupChangeEvent</code></a>
</h2><ul><li>(Aug 25 '12) <a href="#ProjectGroup">API to get current active project group and listen to project groups switching</a>
</li></ul><h2>
<a name="org.netbeans.api.project.ui.ProjectGroupChangeListener"><code><span style="color:gray">org.netbeans.api.project.ui.</span>ProjectGroupChangeListener</code></a>
</h2><ul><li>(Aug 25 '12) <a href="#ProjectGroup">API to get current active project group and listen to project groups switching</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.ProjectProblemResolver"><code><span style="color:gray">org.netbeans.spi.project.ui.</span>ProjectProblemResolver</code></a>
</h2><ul><li>(Jul 24 '12) <a href="#ProjectProblems">Added an SPI to provide project metadata problems.</a>
</li></ul><h2>
<a name="org.netbeans.api.project.ui.ProjectProblems"><code><span style="color:gray">org.netbeans.api.project.ui.</span>ProjectProblems</code></a>
</h2><ul><li>(Jul 24 '12) <a href="#ProjectProblems">Added an SPI to provide project metadata problems.</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.ProjectProblemsProvider"><code><span style="color:gray">org.netbeans.spi.project.ui.</span>ProjectProblemsProvider</code></a>
</h2><ul><li>(Oct 7 '13) <a href="#ProjectProblemsProvider.unresolvable">Allow creating ProjectProblemsProvider.ProjectProblem without a ProjectProblemResolver </a>
</li>
<li>(Jul 24 '12) <a href="#ProjectProblems">Added an SPI to provide project metadata problems.</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.ProjectProblemsProviderSupport"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>ProjectProblemsProviderSupport</code></a>
</h2><ul><li>(Oct 2 '12) <a href="#ProjectProblemsProviderSupport">Added a support class for ProjectProblemsProvider.</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.templates.support.Templates"><code><span style="color:gray">org.netbeans.spi.project.ui.templates.support.</span>Templates</code></a>
</h2><ul><li>(Mar 19 '12) <a href="#setAsMain">Programmatically setting main project deprecated</a>
</li>
<li>(Apr 21 '10) <a href="#Templates.definesMainProject">Added <code>definesMainProject</code> property to wizards</a>
</li>
<li>(Apr 13 '10) <a href="#Templates.buildSimpleTargetChooser">Added <code>Templates.buildSimpleTargetChooser</code></a>
</li>
<li>(May 17 '05) <a href="#CommonProjectActions.EXISTING_SOURCES_FOLDER">New Project Wizard Action</a>
</li></ul><h2>
<a name="org.netbeans.spi.project.ui.support.UILookupMergerSupport"><code><span style="color:gray">org.netbeans.spi.project.ui.support.</span>UILookupMergerSupport</code></a>
</h2><ul><li>(May 10 '07) <a href="#project-open-hook-merger">Add <code>LookupMerger</code>implementation for <code>ProjectOpenedHook</code></a>
</li>
<li>(Oct 5 '06) <a href="#lookup-provider.ui">Added LookupMerger implementations for PrivilegedTemplates and RecommendedTemplates</a>
</li></ul><hr>
<h1>
<a name="details-by-api">Details of all changes by API and date</a>
</h1>
<hr style="width:50%">
<h2>
<a name="general">Project UI API</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="newProjectAction.preselectCategory">Provide a method to create an action that invokes the new project wizard,
preselects a category and propagates a set of properties to the wizard descriptor.</a>
</h3>
<em>Apr 14 '15; API spec. version: 1.81; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/CommonProjectActions.html"><code>CommonProjectActions</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=251563">
#251563</a></em>
<br>
<p>
<code>CommonProjectActions.newProjectAction</code> makes it
so far posible to set the new projects parent folder by a
property. It would be also usefull to preselect the category
and to propagate custom properties to the new project wizard
descriptor.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="BuildExecutionSupport.lastItem">Provide last runing item from BuildExecutionSupport. Listen on changes of it.</a>
</h3>
<em>Jul 15 '14; API spec. version: 1.78; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/BuildExecutionSupport.html"><code>BuildExecutionSupport</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=245350">
#245350</a></em>
<br>
<p>
<code>BuildExecutionSupport</code> makes it so far posible to register a running build/run/debug task.
It would be also usefull to provide the last run item and to be notified about changes of it.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="server.is.free">Split the api into a desktop (swing, awt) and NetBeans dependent and independent part.</a>
</h3>
<em>May 26 '14; API spec. version: 1.78; made by: tstupka</em>
<br>
<p>
The following classes were moved into the
<a href="../org-netbeans-modules-projectuiapi-base/overview-summary.html" shape="rect">org.netbeans.modules.projectuiapi.base</a> module:
</p>
<ul>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/api/project/ui/OpenProjects.html" shape="rect">OpenProjects</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/api/project/ui/ProjectGroup.html" shape="rect">ProjectGroup</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/api/project/ui/ProjectGroupChangeEvent.html" shape="rect">ProjectGroupChangeEvent</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/api/project/ui/ProjectGroupChangeListener.html" shape="rect">ProjectGroupChangeListener</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/spi/project/ui/PrivilegedTemplates.html" shape="rect">PrivilegedTemplates</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/spi/project/ui/ProjectOpenedHook.html" shape="rect">ProjectOpenedHook</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/spi/project/ui/ProjectProblemResolver.html" shape="rect">ProjectProblemResolver</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/spi/project/ui/ProjectProblemsProvider.html" shape="rect">ProjectProblemsProvider</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/spi/project/ui/RecommendedTemplates.html" shape="rect">RecommendedTemplates</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/spi/project/ui/support/ProjectProblemsProviderSupport.html" shape="rect">ProjectProblemsProviderSupport</a>
</li>
<li>
<a href="../org-netbeans-modules-projectuiapi-base/org/netbeans/spi/project/ui/support/UILookupMergerSupport.html" shape="rect">UILookupMergerSupport</a>
</li>
</ul>
<br>
<strong>Compatibility: </strong>
<p>
Runtime compatibility remains, compile time compatibility is
mostly preserved too. It is however recommended to upgrade
dependencies of client modules. Try running
<code>ant fix-dependencies</code> in your Ant module.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectProblemsProvider.unresolvable">Allow creating ProjectProblemsProvider.ProjectProblem without a ProjectProblemResolver </a>
</h3>
<em>Oct 7 '13; API spec. version: 1.74; affected top-level classes: <code>org.netbeans.spi.project.ui.ProjectProblemsProvider</code>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=236325">
#236325</a></em>
<br>
<p>
<code>ProjectProblemsProvider.ProjectProblem</code> has so far required a <code>ProjectProblemResolver</code> effectively
making all problems resolvable, however a few places emerged where an automated resolution is not at hand and still we want to report the
error/warning. 2 new factory methods introduced.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CustomizerProvider2">Moved CustomizerProvider2 from java.api.common</a>
</h3>
<em>May 13 '13; API spec. version: 1.71; made by: psomol; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=229161">
#229161</a></em>
<br>
<p>
<code>CustomizerProvider2</code> has been available so far in <code>java.api.common</code> but
requests have been made to move it to <code>projectuiapi</code>, where its parent
<code>CustomizerProvider</code> resides, before <code>CustomizerProvider3</code> is defined.
For reasoning see Issue 229161.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="project.licensePath">Project system related file templates can include shared license header file</a>
</h3>
<em>Feb 27 '13; API spec. version: 1.69; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=193981">
#193981</a></em>
<br>
<p>
When including license headers into templates, the only license templates from IDE's configuration were accessible.
Now templates can include new expression to set a path to a license template within the project's own space.
The new way to include license headers is <code>&lt;#include "${project.licensePath}"&gt;</code>.
Project types need to provide their own way of defining the license template location and mapping it to project.licensePath item in
their <code>CreateFromTemplateAttributesProvider</code> implementation.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="BuildExecutionSupport.ActionItem">Added BuildExecutionSupport.ActionItem extension to BuildExecutionSupport.Item</a>
</h3>
<em>Feb 22 '13; API spec. version: 1.69; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/BuildExecutionSupport.html"><code>BuildExecutionSupport</code></a>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=193873">
#193873</a></em>
<br>
<p>
Implementing <code>BuildExecutionSupport.ActionItem</code> allows creating execution history lists at various places, currently the toolbar for Run action.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CommonProjectActions.PROJECT_PARENT_FOLDER">Added CommonProjectActions.PROJECT_PARENT_FOLDER constant</a>
</h3>
<em>Jan 24 '13; API spec. version: 1.67; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/CommonProjectActions.html"><code>CommonProjectActions</code></a>; made by: psomol; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=217087">
#217087</a></em>
<br>
<p>
Added CommonProjectActions.PROJECT_PARENT_FOLDER constant that is respected by the <code>CommonProjectActions.newProject()</code> action
and the project's parent directory can be set that way.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectCustomizer.Category.CloseListener">Added Close listener to ProjectCustomizer.Category.</a>
</h3>
<em>Nov 10 '12; API spec. version: 1.65; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: psomol; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=219827">
#219827</a></em>
<br>
<p>
Added a Close listener to ProjectCustomizer.Category to enable
correct memory management when specific project properties are
to be maintained while Project Properties dialog is displayed,
containing various, possibly extended, categories. This is the case
with JWSProjectProperties and JFXProjectProperties, where cleanup
is needed at the time of dialog closing. The introduction of
a Close listener here actually enables to deprecate J2SECustomPropertySaver
interface and thus make the same mechanism available even outside
J2SE projects.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectProblemsProviderSupport">Added a support class for ProjectProblemsProvider.</a>
</h3>
<em>Oct 2 '12; API spec. version: 1.63; affected top-level classes: <code>org.netbeans.spi.project.ui.support.ProjectProblemsProviderSupport</code>; made by: tmysik; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=219313">
#219313</a></em>
<br>
<p>
Added support class for provider of project metadata problems.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectGroup">API to get current active project group and listen to project groups switching</a>
</h3>
<em>Aug 25 '12; API spec. version: 1.61; affected top-level classes: <code>org.netbeans.api.project.ui.OpenProjects</code> <code>org.netbeans.api.project.ui.ProjectGroup</code> <code>org.netbeans.api.project.ui.ProjectGroupChangeListener</code> <code>org.netbeans.api.project.ui.ProjectGroupChangeEvent</code>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=91031">
#91031</a></em>
<br>
<p>
Added methods to
<code>OpenProjects</code> to figure the currently active project group, access preferences related to it
and listen to changes in currently active group.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectProblems">Added an SPI to provide project metadata problems.</a>
</h3>
<em>Jul 24 '12; API spec. version: 1.60; affected top-level classes: <a href="./org/netbeans/api/project/ui/ProjectProblems.html"><code>ProjectProblems</code></a> <code>org.netbeans.spi.project.ui.ProjectProblemsProvider</code> <code>org.netbeans.spi.project.ui.ProjectProblemResolver</code>; made by: tzezula; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=215628">
#215628</a></em>
<br>
<p>
Added a SPI allowing project to provide project metadata problems.
These problems are shown in the Resolve Project Problems Customizer,
project with project problems are annotated by broken project badge.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="PathFinder">Extracted <code>findPath</code> method into a new interface <code>PathFinder</code></a>
</h3>
<em>Jul 13 '12; API spec. version: 1.59; affected top-level classes: <a href="./org/netbeans/spi/project/ui/PathFinder.html"><code>PathFinder</code></a>; made by: tzezula; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=208241">
#208241</a></em>
<br>
<p>
Extracted <code>findPath</code> method from <code>LogicalViewProvider</code> into a new interface <code>PathFinder</code>.
A new <code>PathFinder</code> simplifies delegation of <code>findPath</code> method.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="setAsMain">Programmatically setting main project deprecated</a>
</h3>
<em>Mar 19 '12; API spec. version: 1.56; affected top-level classes: <code>org.netbeans.api.project.ui.OpenProjects</code> <code>org.netbeans.spi.project.ui.templates.support.Templates</code>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=166780">
#166780</a></em>
<br>
<p>
Setting a main project programmatically is now deprecated.
Checking for a main project set explicitly by the user is still common.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="FileSensitiveAction.performer">Adding ability to create a file sensitive action with custom performer</a>
</h3>
<em>Jan 13 '12; API spec. version: 1.56; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/FileSensitiveActions.html"><code>FileSensitiveActions</code></a> <a href="./org/netbeans/spi/project/ui/support/FileActionPerformer.html"><code>FileActionPerformer</code></a>; made by: yardus; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=51571">
#51571</a></em>
<br>
<p>
Added <code>FileSensitiveActions.fileSensitiveAction(performer, name, icon)</code> method for creating file sensitive actions with custom performers.
This method is a logical counterpart to <code>ProjectSensitiveActions.projectSensitiveAction(performer, name, icon)</code>
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="willOpenProjects">Will open project notification</a>
</h3>
<em>Dec 12 '11; API spec. version: 1.55; affected top-level classes: <code>org.netbeans.api.project.ui.OpenProjects</code>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=203220">
#203220</a></em>
<br>
<p>
A <a href="architecture-summary.html#property-willOpenProjects" shape="rect">
new friend contract</a> added for benefit of ide.ergonomics
module.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="Templates.definesMainProject">Added <code>definesMainProject</code> property to wizards</a>
</h3>
<em>Apr 21 '10; API spec. version: 1.47; affected top-level classes: <a href="./org/netbeans/spi/project/ui/templates/support/Templates.html"><code>Templates</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=184213">
#184213</a></em>
<br>
<p>
Added official way to specify whether a New Project wizard
should set a main project.
</p>
<br>
<strong>Compatibility: </strong>
<p>
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.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="Templates.buildSimpleTargetChooser">Added <code>Templates.buildSimpleTargetChooser</code></a>
</h3>
<em>Apr 13 '10; API spec. version: 1.45; affected top-level classes: <a href="./org/netbeans/spi/project/ui/templates/support/Templates.html"><code>Templates</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=141886">
#141886</a></em>
<br>
<p>
Added a builder for simple target choosers.
<code>freeFileExtension()</code> permits the user to pick a
file extension for the new file distinct from that of the template.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CommonProjectActions.forType">Added <code>CommonProjectActions.forType</code></a>
</h3>
<em>Apr 1 '10; API spec. version: 1.43; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/CommonProjectActions.html"><code>CommonProjectActions</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=182488">
#182488</a></em>
<br>
<p>
Added a standard way for the context menu of a project's root
node to be defined declaratively.
</p>
<br>
<strong>Compatibility: </strong>
<p>
Project types which <code>LogicalViewProvider</code>'s root
node currently implements <code>getActions</code> with a
hard-coded list are encouraged to switch to declarative
registration.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectChooser.encodingRenderer">Added public static ProjectCustomizer.encodingModel(String) and public static ProjectCustomizer.encodingRenderer()</a>
</h3>
<em>Mar 25 '10; API spec. version: 1.42; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: tboudreau; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=182711">
#182711</a></em>
<br>
<p>
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.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CompositeCategoryProvider.Registration">Customizer panel registrations using annotations</a>
</h3>
<em>Sep 10 '09; API spec. version: 1.38; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=171029">
#171029</a></em>
<br>
<p>
<code>@CompositeCategoryProvider.Registration</code> may be used
to register project customizer panels.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ActionProvider.global">Globally registered <code>ActionProvider</code>s</a>
</h3>
<em>Jul 23 '09; API spec. version: 1.37; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/FileSensitiveActions.html"><code>FileSensitiveActions</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=102081">
#102081</a></em>
<br>
<p>
<code>ActionProvider</code>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.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="open-with-progress">OpenProjects.open() supports visual progress</a>
</h3>
<em>May 6 '09; API spec. version: 1.35; affected top-level classes: <code>org.netbeans.api.project.ui.OpenProjects</code>; made by: ovrabec; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=162588">
#162588</a></em>
<br>
<p>
<code>OpenProjects.open</code> has now new overloaded
variant that supports visual indication of the open progress.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="isProjectOpen">Utility method OpenProjects.isProjectOpen</a>
</h3>
<em>Apr 7 '09; API spec. version: 1.34; affected top-level classes: <code>org.netbeans.api.project.ui.OpenProjects</code>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=161120">
#161120</a></em>
<br>
<p>
It came to our attention that often users of <code>OpenProjects</code>
want to find out if their project is opened or not. To simplify
such code we offer a handy utility method.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="nodefactory-ann">Add annotation @NodeFactory.Registration</a>
</h3>
<em>Nov 20 '08; API spec. version: 1.33; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/NodeFactory.html"><code>NodeFactory</code></a>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=153015">
#153015</a></em>
<br>
<p>
Add annotation @NodeFactory.Registration to replace registration in layer files.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="stop-repeat-build">Pluggable Repeat/Stop build actions</a>
</h3>
<em>Oct 23 '08; API spec. version: 1.32; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/BuildExecutionSupport.html"><code>BuildExecutionSupport</code></a>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=110465">
#110465</a></em>
<br>
<p>
Added spi for plugging into the Repeat Build/Run and Stop Build/Run
actions that were previously accessible by ant based projects only.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectsRootNode-badging">Project root nodes automatically badged</a>
</h3>
<em>Jun 9 '08; API spec. version: 1.31; affected top-level classes: <a href="./org/netbeans/spi/project/ui/LogicalViewProvider.html"><code>LogicalViewProvider</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=135399">
#135399</a></em>
<br>
<p>
Project root nodes will now automatically be badged
according to VCS status of contained files.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="project-encoding-property">Adding template attribute <code>project.encoding</code></a>
</h3>
<em>Mar 26 '08; API spec. version: 1.29; made by: abadea; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=129685">
#129685</a></em>
<br>
Added the template attribute <code>project.encoding</code> for templates using scripting language.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="folder-based-privileged-templates">PrivilegedTemplates instance in global action context is preferred</a>
</h3>
<em>Mar 21 '08; API spec. version: 1.28; affected top-level classes: <code>org.netbeans.spi.project.ui.PrivilegedTemplates</code>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=122942">
#122942</a></em>
<br>
The previous scope of PrivilegedTemplates was the whole project. Now the selected Node (active context) can
also provide an instance in it's lookup and it will be used instead of the default one from project's lookup.
In this case the last used templates will not be considered.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="observe-opening-closing">Added ways to track projects opening and closing</a>
</h3>
<em>Feb 6 '08; API spec. version: 1.27; affected top-level classes: <code>org.netbeans.api.project.ui.OpenProjects</code>; made by: mkubec; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=124980">
#124980</a></em>
<br>
Added a method to track progress of projects opening and closing. As the
opening of a project may take long time, and as there can be multiple
projects open at once, it may be necessary to be notified that the process
of open project list modification started or that it has
finished.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="store-listener-added">Added methods for creating customizer UI with additional listener for saving outside of AWT EQ</a>
</h3>
<em>Jan 9 '08; API spec. version: 1.26; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: mkubec; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=91291">
#91291</a></em>
<br>
New methods were added to allow to use additional listener for saving data after user presses OK button
on Project Customzer UI. The listener will be executed after all OkListeners and will be executed off the
AWT Event Queue. During save operation modal dialog with progress bar is displayed.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="project-open-hook-merger">Add <code>LookupMerger</code>implementation for <code>ProjectOpenedHook</code></a>
</h3>
<em>May 10 '07; API spec. version: 1.24; affected top-level classes: <code>org.netbeans.spi.project.ui.support.UILookupMergerSupport</code>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=103106">
#103106</a></em>
<br>
New method <code>UILookupMergerSupport.createProjectOpenHookMerger(ProjectOpenedHook)</code> creates an instance of
<code>LookupMerger</code> that ensures that from the <code>ProjectOpenedHook</code> instances in project's lookup, the
project's own is always called first.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="project-license-property">Adding template attribute <code>project.license</code></a>
</h3>
<em>Mar 26 '07; API spec. version: 1.23; made by: jpokorsky; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=95399">
#95399</a></em>
<br>
Added the template attribute <code>project.license</code> for templates using scripting language.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="non-leaf-category-node-customizer">Added a way how to define UI component for non-leaf category node in project customizer</a>
</h3>
<em>Jan 5 '07; API spec. version: 1.22; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: mkubec; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=91276">
#91276</a></em>
<br>
Allow to define UI component for non-leaf category node in project customizer by setting name of the
file in folder on layer filesystem. If there is a category with some subcategories and
UI component is needed for the category, the folder that defines the category in layer needs
to contain file with name 'Self.instance'. Instance of the file will be used to create
customizer component for the category.
<br>
<strong>Compatibility: </strong>
Semantic change of handling files according to location and name on layer filesystem - File of particular filename
under category folder is handled differently.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="ProjectCustomizer.Category.buttonListener">Ability to attach a ok button listener on single customizer category.</a>
</h3>
<em>Oct 23 '06; API spec. version: 1.21; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=85405">
#85405</a></em>
<br>
Allow to attach a listener to <code>ProjectCustomizer.Category</code> 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.
<br>
<strong>Compatibility: </strong>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="PROPERTY_MAIN_PROJECT">Added OpenProjects.PROPERTY_MAIN_PROJECT property</a>
</h3>
<em>Oct 16 '06; API spec. version: 1.20; affected top-level classes: <code>org.netbeans.api.project.ui.OpenProjects</code>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=64491">
#64491</a></em>
<br>
Added <code>OpenProjects.PROPERTY_MAIN_PROJECT</code> property and firing changes in main project property value
to listeners attached to OpenProjects.
<br>
<strong>Compatibility: </strong>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="lookup-provider.ui">Added LookupMerger implementations for PrivilegedTemplates and RecommendedTemplates</a>
</h3>
<em>Oct 5 '06; API spec. version: 1.19; affected top-level classes: <code>org.netbeans.spi.project.ui.support.UILookupMergerSupport</code>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=83343">
#83343</a></em>
<br>
<p>
Related to 1.12 change in Project API.
<code>LookupMerger</code> implementation for <code>PrivilegedTemplates</code> and
<code>RecommendedTemplates</code> added.
</p>
<br>
<strong>Compatibility: </strong>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="NodeFactory">Ability to construct project node's children from multiple sources.</a>
</h3>
<em>Sep 18 '06; API spec. version: 1.18; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/NodeFactory.html"><code>NodeFactory</code></a> <a href="./org/netbeans/spi/project/ui/support/NodeList.html"><code>NodeList</code></a> <a href="./org/netbeans/spi/project/ui/support/NodeFactorySupport.html"><code>NodeFactorySupport</code></a>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=72441">
#72441</a></em>
<br>
Added way to declaratively layout the subnodes of the project node, allowing 3rd party contributions
to project's Logical/Projects View.
The project's node is constructed based on layer folder content. This api change provides just
the infrastructure, the actual extension point location is up to the project type implementations.
<br>
<strong>Compatibility: </strong>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CommonProjectActions.setProjectConfigurationAction">Added <code>CommonProjectActions.setProjectConfigurationAction</code></a>
</h3>
<em>Sep 8 '06; API spec. version: 1.17; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/CommonProjectActions.html"><code>CommonProjectActions</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=49652">
#49652</a></em>
<br>
<p>
Added method <code>CommonProjectActions.setProjectConfigurationAction()</code>
to permit projects supporting configurations to include a context menu
item in their logical view to change the active configuration.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CompositeCategoryProvider">Ability to construct a project customizer from panels declared in layers.</a>
</h3>
<em>Apr 11 '06; API spec. version: 1.15; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: mkleint; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=74373">
#74373</a></em>
<br>
Added <code>createCustomizerDialog(String, Lookup, String, ActionListener, HelpCtx)</code> method to ProjectCustomizer.
That allows to construct project customizer from a layer folder content. It assumes to find instances of
<code>ProjectCustomizer.CompositeCategoryProvider</code>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.
<br>
<strong>Compatibility: </strong>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="getSetMainProject">Ability to get and set main project</a>
</h3>
<em>Aug 26 '05; API spec. version: 1.11; made by: jlahoda; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=58461">
#58461</a></em>
<br>
Added <code>getMainProject</code> and <code>setMainProject</code> methods to OpenProjects.
<br>
<strong>Compatibility: </strong>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="delete-copy-move-support">Project Delete/Copy/Rename/Move Support Added, Support for Default Project Delete/Copy/Rename/Move Added</a>
</h3>
<em>Aug 22 '05; API spec. version: 1.10; made by: jlahoda; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=61546">
#61546</a></em>
<br>
Introduced:
<ul>
<li>
<code>CommonProjectActions.deleteProjectAction</code>, <code>CommonProjectActions.copyProjectAction</code>,
<code>CommonProjectActions.moveProjectAction</code>, <code>CommonProjectActions.removeProjectAction</code> methods.</li>
<li>
<code>DefaultProjectOperations</code> support to simplify implementation of project delete/copy/rename/move for simple projects.</li>
</ul>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectCustomizer.Category.errorMessage">Added ability to set an error message for project customizer's categories.</a>
</h3>
<em>Jul 28 '05; API spec. version: 1.9; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: mkrauskopf; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=61036">
#61036</a></em>
<br>
<p>
Added <code>ProjectCustomizer.Category.setErrorMessage</code> and
<code>ProjectCustomizer.Category.getErrorMessage</code>
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).
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectCustomizer.Category.valid">Added ability to set whether a project customizer's categories are valid.</a>
</h3>
<em>Jul 28 '05; API spec. version: 1.9; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: mkrauskopf; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=58457">
#58457</a></em>
<br>
<p>
Added <code>ProjectCustomizer.Category.setValid</code> and
<code>ProjectCustomizer.Category.isValid</code> methods.
With those methods client can affect whether the OK button
of the Customizer dialog is enabled.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CommonProjectActions.EXISTING_SOURCES_FOLDER">New Project Wizard Action</a>
</h3>
<em>May 17 '05; API spec. version: 1.3; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/CommonProjectActions.html"><code>CommonProjectActions</code></a> <a href="./org/netbeans/spi/project/ui/templates/support/Templates.html"><code>Templates</code></a>; made by: pkuzel; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=58489">
#58489</a></em>
<br>
Introduced:
<ul>
<li>
<code>CommonProjectActions.newProjectAction</code> method</li>
<li>
<code>CommonProjectActions.EXISTING_SOURCES_FOLDER</code> property</li>
<li>
<code>Templates.getExistingSourcesFolder</code> method</li>
</ul>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectOpenedHook.fire-to-all">The <code>projectOpened</code> and <code>projectClosed</code> methods are called on
all <code>ProjectOpenedHook</code> instances in the lookup.
</a>
</h3>
<em>May 12 '05; API spec. version: 1.3; made by: jlahoda; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=57025">
#57025</a></em>
<br>
<p>
The <code>projectOpened</code> and <code>projectClosed</code> methods are called on
all <code>ProjectOpenedHook</code> instances found in a project's lookup.
</p>
<br>
<strong>Compatibility: </strong>
<p>
This change is incompatible because a project type can return a lookup with several
<code>ProjectOpenedHook</code>s and depend on only first one being notified on open/close.
Such a code should be rewritten using <code>org.openide.util.lookup.Lookups.exclude</code>.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectActions">Ability to extend project context menus</a>
</h3>
<em>May 5 '05; API spec. version: 1.7; made by: pkuzel; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=57874">
#57874</a></em>
<br>
Defined a folder <code>Projects/Actions/</code> which may hold
actions to be added to the context menu of any project type.
<br>
<strong>Compatibility: </strong>
<p>
Existing project types need to add support for the new folder
in order to comply with the guideline.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ProjectCustomizer.addition">Added support class for creating standard project customizer dialogs</a>
</h3>
<em>Jan 16 '05; API spec. version: 1.4; affected top-level classes: <a href="./org/netbeans/spi/project/ui/support/ProjectCustomizer.html"><code>ProjectCustomizer</code></a>; made by: phrebejk; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=49647">
#49647</a></em>
<br>
<p>
Added <code>org.netbeans.spi.project.ui.support.ProjectCustomizer</code>
containing support methods for creating standard looking project customizer
dialogs.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="rel-vers-1">Switched to major release version 1</a>
</h3>
<em>Dec 22 '04; API spec. version: 1.3; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=51468">
#51468</a></em>
<br>
<p>
To indicate that this is now considered a stable API, the major release version was
incremented to 1 from 0.
</p>
<br>
<strong>Compatibility: </strong>
<p>
Clients should begin requesting the new version to avoid a warning at startup.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="OpenProjects.open-close">Added open and close methods into <code>OpenProjects</code> class</a>
</h3>
<em>Dec 14 '04; API spec. version: 1.2; affected top-level classes: <code>org.netbeans.api.project.ui.OpenProjects</code>; made by: tzezula</em>
<br>
<p>
Added <code>open</code> and <code>close</code> methods to <code>org.netbeans.api.project.ui.OpenProjects</code>. The <code>open</code> method
opens the specified projects. The <code>close</code> method closes the specified projects.
</p>
<hr>
<p><span class="footnote">Built on September 14 2018.&nbsp;&nbsp;|&nbsp;&nbsp; Copyright &#169; 2017-2018 Apache Software Foundation. All Rights Reserved.</span></p>
</body>
</html>