blob: 7d9158ab6f4b9127b6feea1685f4d482970d5bf1 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<?xml-stylesheet type="text/xml" href="../../nbbuild/javadoctools/apichanges.xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">
<!--
INFO FOR PEOPLE ADDING CHANGES:
Check the DTD (apichanges.dtd) for details on the syntax. You do not
need to regenerate the HTML, as this is part of Javadoc generation; just
change the XML. Rough syntax of a change (several parts optional):
<change>
<api name="compiler"/>
<summary>Some brief description here, can use <b>XHTML</b></summary>
<version major="1" minor="99"/>
<date day="13" month="6" year="2001"/>
<author login="jrhacker"/>
<compatibility addition="yes"/>
<description>
The main description of the change here.
Again can use full <b>XHTML</b> as needed.
</description>
<class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
<issue number="14309"/>
</change>
Also permitted elements: <package>, <branch>. <version> is API spec
version, recommended for all new changes. <compatibility> should say
if things were added/modified/deprecated/etc. and give all information
related to upgrading old code. List affected top-level classes and
link to issue numbers if applicable. See the DTD for more details.
Changes need not be in any particular order, they are sorted in various
ways by the stylesheet anyway.
Dates are assumed to mean "on the trunk". If you *also* make the same
change on a stabilization branch, use the <branch> tag to indicate this
and explain why the change was made on a branch in the <description>.
Please only change this file on the trunk! Rather: you can change it
on branches if you want, but these changes will be ignored; only the
trunk version of this file is important.
Deprecations do not count as incompatible, assuming that code using the
deprecated calls continues to see their documented behavior. But do
specify deprecation="yes" in <compatibility>.
This file is not a replacement for Javadoc: it is intended to list changes,
not describe the complete current behavior, for which ordinary documentation
is the proper place.
-->
<apichanges>
<!-- First, a list of API names you may use: -->
<apidefs>
<apidef name="general">Project UI API</apidef>
<!-- etc. -->
</apidefs>
<!-- ACTUAL CHANGES BEGIN HERE: -->
<changes>
<change id="project-problems-implementation">
<api name="general"/>
<summary>Allow pluggable implementation for ProjectProblems API.</summary>
<version major="1" minor="105"/>
<date day="22" month="2" year="2022"/>
<author login="sdedic"/>
<compatibility addition="yes"/>
<description>
<p>
<a href="@TOP@/org/netbeans/api/project/ui/ProjectProblems.html">ProjectProblems API</a> now delegates to
<a href="@TOP@/org/netbeans/spi/project/ui/ProjectProblemsImplementation .html">ProjectProblemsImplementation</a>
registered in default Lookup.
</p>
</description>
</change>
<change id="newProjectAction.preselectCategory">
<api name="general"/>
<summary>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.</summary>
<version major="1" minor="81"/>
<date day="14" month="4" year="2015"/>
<author login="tstupka"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="CommonProjectActions"/>
<issue number="251563"/>
</change>
<change id="server.is.free">
<api name="general"/>
<summary>Split the api into a desktop (swing, awt) and NetBeans dependent and independent part.</summary>
<version major="1" minor="78"/>
<date day="26" month="5" year="2014"/>
<author login="tstupka"/>
<compatibility addition="yes">
<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>
</compatibility>
<description>
<p>
The following classes were moved into the
<a href="@org-netbeans-modules-projectuiapi-base@/overview-summary.html">org.netbeans.modules.projectuiapi.base</a> module:
</p>
<ul>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/api/project/ui/OpenProjects.html">OpenProjects</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/api/project/ui/ProjectGroup.html">ProjectGroup</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/api/project/ui/ProjectGroupChangeEvent.html">ProjectGroupChangeEvent</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/api/project/ui/ProjectGroupChangeListener.html">ProjectGroupChangeListener</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/spi/project/ui/PrivilegedTemplates.html">PrivilegedTemplates</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/spi/project/ui/ProjectOpenedHook.html">ProjectOpenedHook</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/spi/project/ui/ProjectProblemResolver.html">ProjectProblemResolver</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/spi/project/ui/ProjectProblemsProvider.html">ProjectProblemsProvider</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/spi/project/ui/RecommendedTemplates.html">RecommendedTemplates</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/spi/project/ui/support/ProjectProblemsProviderSupport.html">ProjectProblemsProviderSupport</a></li>
<li><a href="@org-netbeans-modules-projectuiapi-base@/org/netbeans/spi/project/ui/support/UILookupMergerSupport.html">UILookupMergerSupport</a></li>
</ul>
</description>
</change>
<change id="BuildExecutionSupport.lastItem">
<api name="general"/>
<summary>Provide last runing item from BuildExecutionSupport. Listen on changes of it.</summary>
<version major="1" minor="78"/>
<date day="15" month="7" year="2014"/>
<author login="tstupka"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="BuildExecutionSupport"/>
<issue number="245350"/>
</change>
<change id="ProjectProblemsProvider.unresolvable">
<api name="general"/>
<summary>Allow creating ProjectProblemsProvider.ProjectProblem without a ProjectProblemResolver </summary>
<version major="1" minor="74"/>
<date day="7" month="10" year="2013"/>
<author login="mkleint"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui" name="ProjectProblemsProvider" link="no"/>
<issue number="236325"/>
</change>
<change id="CustomizerProvider2">
<api name="general"/>
<summary>Moved CustomizerProvider2 from java.api.common</summary>
<version major="1" minor="71"/>
<date day="13" month="5" year="2013"/>
<author login="psomol"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<issue number="229161"/>
</change>
<change id="project.licensePath">
<api name="general"/>
<summary>Project system related file templates can include shared license header file</summary>
<version major="1" minor="69"/>
<date day="27" month="2" year="2013"/>
<author login="mkleint"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<issue number="193981"/>
</change>
<change id="BuildExecutionSupport.ActionItem">
<api name="general"/>
<summary>Added BuildExecutionSupport.ActionItem extension to BuildExecutionSupport.Item</summary>
<version major="1" minor="69"/>
<date day="22" month="2" year="2013"/>
<author login="mkleint"/>
<compatibility addition="yes"/>
<description>
<p>
Implementing <code>BuildExecutionSupport.ActionItem</code> allows creating execution history lists at various places, currently the toolbar for Run action.
</p>
</description>
<class package="org.netbeans.spi.project.ui.support" name="BuildExecutionSupport"/>
<issue number="193873"/>
</change>
<change id="CommonProjectActions.PROJECT_PARENT_FOLDER">
<api name="general"/>
<summary>Added CommonProjectActions.PROJECT_PARENT_FOLDER constant</summary>
<version major="1" minor="67"/>
<date day="24" month="1" year="2013"/>
<author login="psomol"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="CommonProjectActions"/>
<issue number="217087"/>
</change>
<change id="ProjectCustomizer.Category.CloseListener">
<api name="general"/>
<summary>Added Close listener to ProjectCustomizer.Category.</summary>
<version major="1" minor="65"/>
<date day="10" month="11" year="2012"/>
<author login="psomol"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="219827"/>
</change>
<change id="ProjectProblemsProviderSupport">
<api name="general"/>
<summary>Added a support class for ProjectProblemsProvider.</summary>
<version major="1" minor="63"/>
<date day="2" month="10" year="2012"/>
<author login="tmysik"/>
<compatibility addition="yes"/>
<description>
<p>
Added support class for provider of project metadata problems.
</p>
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectProblemsProviderSupport" link="no"/>
<issue number="219313"/>
</change>
<change id="ProjectGroup">
<api name="general"/>
<summary>API to get current active project group and listen to project groups switching</summary>
<version major="1" minor="61"/>
<date day="25" month="8" year="2012"/>
<author login="mkleint"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.api.project.ui" name="OpenProjects" link="no"/>
<class package="org.netbeans.api.project.ui" name="ProjectGroup" link="no"/>
<class package="org.netbeans.api.project.ui" name="ProjectGroupChangeListener" link="no"/>
<class package="org.netbeans.api.project.ui" name="ProjectGroupChangeEvent" link="no"/>
<issue number="91031"/>
</change>
<change id="ProjectProblems">
<api name="general"/>
<summary>Added an SPI to provide project metadata problems.</summary>
<version major="1" minor="60"/>
<date day="24" month="7" year="2012"/>
<author login="tzezula"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.api.project.ui" name="ProjectProblems"/>
<class package="org.netbeans.spi.project.ui" name="ProjectProblemsProvider" link="no"/>
<class package="org.netbeans.spi.project.ui" name="ProjectProblemResolver" link="no"/>
<issue number="215628"/>
</change>
<change id="PathFinder">
<api name="general"/>
<summary>Extracted <code>findPath</code> method into a new interface <code>PathFinder</code></summary>
<version major="1" minor="59"/>
<date day="13" month="7" year="2012"/>
<author login="tzezula"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui" name="PathFinder"/>
<issue number="208241"/>
</change>
<change id="setAsMain">
<api name="general"/>
<summary>Programmatically setting main project deprecated</summary>
<version major="1" minor="56"/>
<date day="19" month="3" year="2012"/>
<author login="jglick"/>
<compatibility deprecation="yes"/>
<description>
<p>
Setting a main project programmatically is now deprecated.
Checking for a main project set explicitly by the user is still common.
</p>
</description>
<class package="org.netbeans.api.project.ui" name="OpenProjects" link="no"/>
<class package="org.netbeans.spi.project.ui.templates.support" name="Templates" link="no"/>
<issue number="166780"/>
</change>
<change id="FileSensitiveAction.performer">
<api name="general"/>
<summary>Adding ability to create a file sensitive action with custom performer</summary>
<version major="1" minor="56"/>
<date day="13" month="1" year="2012"/>
<author login="yardus"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="FileSensitiveActions"/>
<class package="org.netbeans.spi.project.ui.support" name="FileActionPerformer"/>
<issue number="51571"/>
</change>
<change id="willOpenProjects">
<api name="general"/>
<summary>Will open project notification</summary>
<version major="1" minor="55"/>
<date day="12" month="12" year="2011"/>
<author login="jtulach"/>
<compatibility addition="yes"/>
<description>
<p>
A <a href="@TOP@/architecture-summary.html#property-willOpenProjects">
new friend contract</a> added for benefit of ide.ergonomics
module.
</p>
</description>
<class package="org.netbeans.api.project.ui" name="OpenProjects" link="no"/>
<issue number="203220"/>
</change>
<change id="Templates.definesMainProject">
<api name="general"/>
<summary>Added <code>definesMainProject</code> property to wizards</summary>
<version major="1" minor="47"/>
<date day="21" month="4" year="2010"/>
<author login="jglick"/>
<compatibility addition="yes">
<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>
</compatibility>
<description>
<p>
Added official way to specify whether a New Project wizard
should set a main project.
</p>
</description>
<class package="org.netbeans.spi.project.ui.templates.support" name="Templates"/>
<issue number="184213"/>
</change>
<change id="Templates.buildSimpleTargetChooser">
<api name="general"/>
<summary>Added <code>Templates.buildSimpleTargetChooser</code></summary>
<version major="1" minor="45"/>
<date day="13" month="4" year="2010"/>
<author login="jglick"/>
<compatibility addition="yes" deprecation="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.templates.support" name="Templates"/>
<issue number="141886"/>
</change>
<change id="CommonProjectActions.forType">
<api name="general"/>
<summary>Added <code>CommonProjectActions.forType</code></summary>
<version major="1" minor="43"/>
<date day="1" month="4" year="2010"/>
<author login="jglick"/>
<compatibility addition="yes">
<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>
</compatibility>
<description>
<p>
Added a standard way for the context menu of a project's root
node to be defined declaratively.
</p>
</description>
<class package="org.netbeans.spi.project.ui.support" name="CommonProjectActions"/>
<issue number="182488"/>
</change>
<change id="ProjectChooser.encodingRenderer">
<api name="general"/>
<summary>Added public static ProjectCustomizer.encodingModel(String) and public static ProjectCustomizer.encodingRenderer()</summary>
<version major="1" minor="42"/>
<date day="25" month="3" year="2010"/>
<author login="tboudreau"/>
<compatibility addition="yes" source="compatible" semantic="compatible"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="182711"/>
</change>
<change id="CompositeCategoryProvider.Registration">
<api name="general"/>
<summary>Customizer panel registrations using annotations</summary>
<version major="1" minor="38"/>
<date day="10" month="9" year="2009"/>
<author login="jglick"/>
<compatibility semantic="compatible"/>
<description>
<p>
<code>@CompositeCategoryProvider.Registration</code> may be used
to register project customizer panels.
</p>
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="171029"/>
</change>
<change id="ActionProvider.global">
<api name="general"/>
<summary>Globally registered <code>ActionProvider</code>s</summary>
<version major="1" minor="37"/>
<date day="23" month="7" year="2009"/>
<author login="jglick"/>
<compatibility semantic="compatible"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="FileSensitiveActions"/>
<issue number="102081"/>
</change>
<change id="open-with-progress">
<api name="general"/>
<summary>OpenProjects.open() supports visual progress</summary>
<version major="1" minor="35"/>
<date day="6" month="5" year="2009"/>
<author login="ovrabec"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
<description>
<p>
<code>OpenProjects.open</code> has now new overloaded
variant that supports visual indication of the open progress.
</p>
</description>
<class package="org.netbeans.api.project.ui" name="OpenProjects" link="no"/>
<issue number="162588"/>
</change>
<change id="isProjectOpen">
<api name="general"/>
<summary>Utility method OpenProjects.isProjectOpen</summary>
<version major="1" minor="34"/>
<date day="7" month="4" year="2009"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
<description>
<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>
</description>
<class package="org.netbeans.api.project.ui" name="OpenProjects" link="no"/>
<issue number="161120"/>
</change>
<change id="nodefactory-ann">
<api name="general"/>
<summary>Add annotation @NodeFactory.Registration</summary>
<version major="1" minor="33"/>
<date day="20" month="11" year="2008"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
<description>
<p>
Add annotation @NodeFactory.Registration to replace registration in layer files.
</p>
</description>
<class package="org.netbeans.spi.project.ui.support" name="NodeFactory"/>
<issue number="153015"/>
</change>
<change id="stop-repeat-build">
<api name="general"/>
<summary>Pluggable Repeat/Stop build actions</summary>
<version major="1" minor="32"/>
<date day="23" month="10" year="2008"/>
<author login="mkleint"/>
<compatibility modification="yes" semantic="compatible"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="BuildExecutionSupport"/>
<issue number="110465"/>
</change>
<change id="ProjectsRootNode-badging">
<api name="general"/>
<summary>Project root nodes automatically badged</summary>
<version major="1" minor="31"/>
<date day="9" month="6" year="2008"/>
<author login="jglick"/>
<compatibility modification="yes" semantic="compatible"/>
<description>
<p>
Project root nodes will now automatically be badged
according to VCS status of contained files.
</p>
</description>
<class package="org.netbeans.spi.project.ui" name="LogicalViewProvider"/>
<issue number="135399"/>
</change>
<change id="project-encoding-property">
<api name="general"/>
<summary>Adding template attribute <code>project.encoding</code></summary>
<version major="1" minor="29"/>
<date day="26" month="3" year="2008"/>
<author login="abadea"/>
<compatibility addition="yes"/>
<description>
Added the template attribute <code>project.encoding</code> for templates using scripting language.
</description>
<issue number="129685"/>
</change>
<change id="folder-based-privileged-templates">
<api name="general"/>
<summary>PrivilegedTemplates instance in global action context is preferred</summary>
<version major="1" minor="28"/>
<date day="21" month="3" year="2008"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
<description>
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.
</description>
<class package="org.netbeans.spi.project.ui" name="PrivilegedTemplates" link="no"/>
<issue number="122942"/>
</change>
<change id="observe-opening-closing">
<api name="general"/>
<summary>Added ways to track projects opening and closing</summary>
<version major="1" minor="27"/>
<date day="6" month="2" year="2008"/>
<author login="mkubec"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
<description>
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.
</description>
<class package="org.netbeans.api.project.ui" name="OpenProjects" link="no"/>
<issue number="124980"/>
</change>
<change id="store-listener-added">
<api name="general"/>
<summary>Added methods for creating customizer UI with additional listener for saving outside of AWT EQ</summary>
<version major="1" minor="26"/>
<date day="9" month="1" year="2008"/>
<author login="mkubec"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
<description>
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.
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="91291"/>
</change>
<change id="project-open-hook-merger">
<api name="general"/>
<summary>Add <code>LookupMerger</code>implementation for <code>ProjectOpenedHook</code></summary>
<version major="1" minor="24"/>
<date day="10" month="5" year="2007"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
<description>
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.
</description>
<class package="org.netbeans.spi.project.ui.support" name="UILookupMergerSupport" link="no"/>
<issue number="103106"/>
</change>
<change id="project-license-property">
<api name="general"/>
<summary>Adding template attribute <code>project.license</code></summary>
<version major="1" minor="23"/>
<date day="26" month="3" year="2007"/>
<author login="jpokorsky"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
<description>
Added the template attribute <code>project.license</code> for templates using scripting language.
</description>
<issue number="95399"/>
</change>
<change id="non-leaf-category-node-customizer">
<api name="general"/>
<summary>Added a way how to define UI component for non-leaf category node in project customizer</summary>
<version major="1" minor="22"/>
<date day="5" month="1" year="2007"/>
<author login="mkubec"/>
<compatibility addition="no" binary="compatible" deletion="no" deprecation="no" modification="yes" semantic="incompatible" source="compatible">
Semantic change of handling files according to location and name on layer filesystem - File of particular filename
under category folder is handled differently.
</compatibility>
<description>
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.
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="91276"/>
</change>
<change id="ProjectCustomizer.Category.buttonListener">
<api name="general"/>
<summary>Ability to attach a ok button listener on single customizer category.</summary>
<version major="1" minor="21"/>
<date day="23" month="10" year="2006"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible">
</compatibility>
<description>
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.
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="85405"/>
</change>
<change id="PROPERTY_MAIN_PROJECT">
<api name="general"/>
<summary>Added OpenProjects.PROPERTY_MAIN_PROJECT property</summary>
<version major="1" minor="20"/>
<date day="16" month="10" year="2006"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="yes" semantic="compatible" source="compatible">
</compatibility>
<description>
Added <code>OpenProjects.PROPERTY_MAIN_PROJECT</code> property and firing changes in main project property value
to listeners attached to OpenProjects.
</description>
<class package="org.netbeans.api.project.ui" name="OpenProjects" link="no"/>
<issue number="64491"/>
</change>
<change id="lookup-provider.ui">
<api name="general"/>
<summary>Added LookupMerger implementations for PrivilegedTemplates and RecommendedTemplates</summary>
<version major="1" minor="19"/>
<date day="5" month="10" year="2006"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible">
</compatibility>
<description>
<p>
Related to 1.12 change in Project API.
<code>LookupMerger</code> implementation for <code>PrivilegedTemplates</code> and
<code>RecommendedTemplates</code> added.
</p>
</description>
<class package="org.netbeans.spi.project.ui.support" name="UILookupMergerSupport" link="no"/>
<issue number="83343"/>
</change>
<change id="NodeFactory">
<api name="general"/>
<summary>Ability to construct project node's children from multiple sources.</summary>
<version major="1" minor="18"/>
<date day="18" month="9" year="2006"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible">
</compatibility>
<description>
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.
</description>
<class package="org.netbeans.spi.project.ui.support" name="NodeFactory"/>
<class package="org.netbeans.spi.project.ui.support" name="NodeList"/>
<class package="org.netbeans.spi.project.ui.support" name="NodeFactorySupport"/>
<issue number="72441"/>
</change>
<change id="CommonProjectActions.setProjectConfigurationAction">
<api name="general"/>
<summary>Added <code>CommonProjectActions.setProjectConfigurationAction</code></summary>
<version major="1" minor="17"/>
<date day="8" month="9" year="2006"/>
<author login="jglick"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="CommonProjectActions"/>
<issue number="49652"/>
</change>
<change id="CompositeCategoryProvider">
<api name="general"/>
<summary>Ability to construct a project customizer from panels declared in layers.</summary>
<version major="1" minor="15"/>
<date day="11" month="4" year="2006"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible">
</compatibility>
<description>
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.
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="74373"/>
</change>
<change id="getSetMainProject">
<api name="general"/>
<summary>Ability to get and set main project</summary>
<version major="1" minor="11"/>
<date day="26" month="8" year="2005"/>
<author login="jlahoda"/>
<compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible">
</compatibility>
<description>
Added <code>getMainProject</code> and <code>setMainProject</code> methods to OpenProjects.
</description>
<issue number="58461"/>
</change>
<change id="delete-copy-move-support">
<api name="general"/>
<summary>Project Delete/Copy/Rename/Move Support Added, Support for Default Project Delete/Copy/Rename/Move Added</summary>
<version major="1" minor="10"/>
<date day="22" month="8" year="2005"/>
<author login="jlahoda"/>
<compatibility addition="yes" />
<description>
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>
</description>
<issue number="61546" />
</change>
<change id="ProjectCustomizer.Category.errorMessage">
<api name="general"/>
<summary>Added ability to set an error message for project customizer's categories.</summary>
<version major="1" minor="9"/>
<date day="28" month="7" year="2005"/>
<author login="mkrauskopf"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="61036"/>
</change>
<change id="ProjectCustomizer.Category.valid">
<api name="general"/>
<summary>Added ability to set whether a project customizer's categories are valid.</summary>
<version major="1" minor="9"/>
<date day="28" month="7" year="2005"/>
<author login="mkrauskopf"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="58457"/>
</change>
<change id="ProjectActions">
<api name="general"/>
<summary>Ability to extend project context menus</summary>
<version major="1" minor="7"/>
<date day="5" month="5" year="2005"/>
<author login="pkuzel"/>
<compatibility addition="yes" semantic="incompatible">
<p>
Existing project types need to add support for the new folder
in order to comply with the guideline.
</p>
</compatibility>
<description>
Defined a folder <code>Projects/Actions/</code> which may hold
actions to be added to the context menu of any project type.
</description>
<issue number="57874"/>
</change>
<change id="CommonProjectActions.EXISTING_SOURCES_FOLDER">
<api name="general"/>
<summary>New Project Wizard Action</summary>
<version major="1" minor="3"/>
<date day="17" month="5" year="2005"/>
<author login="pkuzel"/>
<compatibility source="compatible"/>
<description>
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>
</description>
<class package="org.netbeans.spi.project.ui.support" name="CommonProjectActions"/>
<class package="org.netbeans.spi.project.ui.templates.support" name="Templates"/>
<issue number="58489" />
</change>
<change id="ProjectOpenedHook.fire-to-all">
<api name="general"/>
<summary>The <code>projectOpened</code> and <code>projectClosed</code> methods are called on
all <code>ProjectOpenedHook</code> instances in the lookup.
</summary>
<version major="1" minor="3"/>
<date day="12" month="5" year="2005"/>
<author login="jlahoda"/>
<compatibility semantic="incompatible" source="compatible">
<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>
</compatibility>
<description>
<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>
</description>
<issue number="57025" />
</change>
<change id="OpenProjects.open-close">
<api name="general"/>
<summary>Added open and close methods into <code>OpenProjects</code> class</summary>
<version major="1" minor="2"/>
<date day="14" month="12" year="2004"/>
<author login="tzezula"/>
<compatibility addition="yes"/>
<description>
<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>
</description>
<class package="org.netbeans.api.project.ui" name="OpenProjects" link="no"/>
</change>
<change id="rel-vers-1">
<api name="general"/>
<summary>Switched to major release version 1</summary>
<version major="1" minor="3"/>
<date day="22" month="12" year="2004"/>
<author login="jglick"/>
<compatibility>
<p>
Clients should begin requesting the new version to avoid a warning at startup.
</p>
</compatibility>
<description>
<p>
To indicate that this is now considered a stable API, the major release version was
incremented to 1 from 0.
</p>
</description>
<issue number="51468"/>
</change>
<change id="ProjectCustomizer.addition">
<api name="general"/>
<summary>Added support class for creating standard project customizer dialogs</summary>
<version major="1" minor="4"/>
<date day="16" month="1" year="2005"/>
<author login="phrebejk"/>
<compatibility addition="yes"/>
<description>
<p>
Added <code>org.netbeans.spi.project.ui.support.ProjectCustomizer</code>
containing support methods for creating standard looking project customizer
dialogs.
</p>
</description>
<class package="org.netbeans.spi.project.ui.support" name="ProjectCustomizer"/>
<issue number="49647"/>
</change>
</changes>
<!-- Now the surrounding HTML text and document structure: -->
<htmlcontents>
<!--
NO NO NO NO NO!
==============> DO NOT EDIT ME! <==============
AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT
SEE projects/projectuiapi/apichanges.xml
-->
<head>
<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">Overview</a></p>
<h1>Introduction</h1>
<p>This document lists changes made to the <a href="@org-netbeans-modules-projectuiapi@/index.html">Project UI API</a>.</p>
<!-- The actual lists of changes, as summaries and details: -->
<hr/>
<standard-changelists module-code-name="org.netbeans.modules.projectuiapi/1"/>
<hr/><p>@FOOTER@</p>
</body>
</htmlcontents>
</apichanges>