blob: 3c615af0b57fbbd74d50102dae6a2572d1bec38b [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.
-->
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../nbbuild/javadoctools/apichanges.dtd">
<apichanges>
<apidefs>
<apidef name="awt">AWT API</apidef>
</apidefs>
<changes>
<change id="NotificationCategory">
<api name="awt"/>
<summary>Add notification category to the NotificationDisplayer API</summary>
<version major="7" minor="58"/>
<date day="27" month="3" year="2013"/>
<author login="jpeska"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Clients can specify notification category. There are 3 default categories (Info, Warning, Error) but clients can also create a custom category using layer.xml
</description>
<class package="org.openide.awt" name="NotificationDisplayer"/>
<issue number="227690"/>
</change>
<change id="Actions.checkbox.default">
<api name="awt"/>
<summary>The value in Preferences for Actions.checkbox can have a default</summary>
<version major="7" minor="53"/>
<date day="18" month="9" year="2012"/>
<author login="jlahoda"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
A default value can be specified for a preference value for Actions.checkbox.
</description>
<class package="org.openide.awt" name="Actions"/>
<issue number="217978"/>
</change>
<change id="BrowserExtensions">
<api name="awt"/>
<summary>Minor API extensions to allow better integration of embedded browsers.</summary>
<version major="7" minor="52"/>
<date day="31" month="8" year="2012"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" source="compatible" deprecation="no" semantic="compatible" modification="no" deletion="no"/>
<description>
Internal web browser can now contain an additional toolbar component: HtmlBrowser(Factory, boolean, boolean, Component)
Browser implementation can pass arbitrary data to Web browser window's Lookup: HtmlBrowser.Impl.getLookup()
</description>
<class package="org.openide.awt" name="HtmlBrowser"/>
<issue number="217171"/>
</change>
<change id="ToolbarWithOverflow">
<api name="awt"/>
<summary>ToolbarWithOverflow class that adds an overflow button when the toolbar becomes too small to show all the available actions.</summary>
<version major="7" minor="51"/>
<date day="8" month="8" year="2012"/>
<author login="theofanis"/>
<compatibility addition="yes" binary="compatible" source="compatible" deprecation="no" semantic="compatible" modification="no" deletion="no"/>
<description>
ToolbarWithOverflow class is added. It can be used to add an overflow button
when the toolbar becomes too small to show all the available actions.
</description>
<class package="org.openide.awt" name="ToolbarWithOverflow"/>
<issue number="216175"/>
</change>
<change id="ColorComboBox">
<api name="awt"/>
<summary>ColorComboBox for color selection.</summary>
<version major="7" minor="50"/>
<date day="3" month="8" year="2012"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" source="compatible" deprecation="no" semantic="compatible" modification="no" deletion="no"/>
<description>
There's a new class ColorComboBox that can be used as color picker.
</description>
<class package="org.openide.awt" name="ColorComboBox"/>
<issue number="216013"/>
</change>
<change id="QuickSearch.alwaysShown">
<api name="awt"/>
<summary>QuickSearch allows to customize of whether the quick search field should always be shown, or not.</summary>
<version major="7" minor="49"/>
<date day="2" month="8" year="2012"/>
<author login="theofanis"/>
<compatibility addition="yes" binary="compatible" source="compatible" deprecation="no" semantic="compatible" modification="no" deletion="no"/>
<description>
QuickSearch.isAlwaysShown() and QuickSearch.setAlwaysShown(boolean) methods are added.
They can be used to change the default behavior of not showing the quick search field until something is typed.
</description>
<class package="org.openide.awt" name="QuickSearch"/>
<issue number="215833"/>
</change>
<change id="TabbedPaneFactorySubClass">
<api name="awt"/>
<summary>TabbedPaneFactory can be subclassed.</summary>
<date day="17" month="7" year="2012"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" source="compatible" deprecation="no" semantic="compatible" modification="no" deletion="no"/>
<description>
It is possible to subclass TabbedPaneFactory to provide custom
implementations of close button tabbed pane.
</description>
<class package="org.openide.awt" name="TabbedPaneFactory"/>
<issue number="215265"/>
</change>
<change id="CheckForUpdatesProvider">
<api name="awt"/>
<summary>Support for Check for Updates feature</summary>
<version major="7" minor="45"/>
<date day="16" month="5" year="2012"/>
<author login="jrechtacek"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
A service provider of UI for Check for Updates feature, for example in About dialog.
The instance of the provider should be installed in default lookup using {@link org.openide.util.lookup.ServiceProvider}.
</description>
<class package="org.openide.awt" name="CheckForUpdatesProvider"/>
<issue number="212218"/>
</change>
<change id="QuickSearch">
<api name="awt"/>
<summary>QuickSearch class that allows to attach quick search field to an arbitratry component.</summary>
<date day="8" month="3" year="2012"/>
<author login="mentlicher"/>
<compatibility addition="yes" binary="compatible" source="compatible" deprecation="no" semantic="compatible" modification="no" deletion="no"/>
<description>
QuickSearch class is added. It can be used to attach
a quick search functionality to an arbitrary component.
</description>
<class package="org.openide.awt" name="QuickSearch"/>
<issue number="208794"/>
</change>
<change id="Actions.forID">
<api name="awt"/>
<summary>Added <code>Actions.forID</code></summary>
<version major="7" minor="42"/>
<date year="2012" month="1" day="6"/>
<author login="jglick"/>
<compatibility addition="yes" source="compatible">
<p>
Calls to <code>FileUtil.getConfigObject</code> or similar should be reviewed.
</p>
<p>
Modules with a dependency only on <code>org.openide.loaders</code>
but not <code>org.openide.awt</code> must add the latter dep in
order to use <code>AcceleratorBinding</code>.
</p>
</compatibility>
<description>
<p>
Added a utility method <code>Actions.forID</code>.
Also moved <code>AcceleratorBinding</code> down into the <code>org.openide.awt</code>
module (keeping the same FQN and signature).
</p>
</description>
<class package="org.openide.awt" name="Actions"/>
<issue number="205798"/>
</change>
<change id="ActionRegistration.lazy">
<api name="awt"/>
<summary>Added <code>lazy</code> attribute to <code>ActionRegistration</code></summary>
<version major="7" minor="41"/>
<date year="2011" month="12" day="14"/>
<author login="jglick"/>
<compatibility addition="yes" source="compatible">
<p>
New warnings will be issued for existing eager registrations.
The warning can be suppressed by explicitly setting <code>lazy=false</code>,
but this is a good time to review whether the registration could
in fact be made lazy.
</p>
</compatibility>
<description>
<p>
Added attribute explicitly controlling whether an action registration
uses a lazy factory method or not.
</p>
</description>
<class package="org.openide.awt" name="ActionRegistration"/>
<issue number="206093"/>
</change>
<change id="closebutton.api">
<api name="awt"/>
<summary>Close Button API</summary>
<version major="7" minor="38"/>
<date day="14" month="9" year="2011"/>
<author login="mkristofic"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>
New close button factory to a create close button or a big close button.
</p>
</description>
<class package="org.openide.awt" name="CloseButtonFactory"/>
<issue number="201639"/>
</change>
<change id="mnemonics.in.popup">
<api name="awt"/>
<summary>Turn on Mnemonics in Popup Menus</summary>
<version major="7" minor="37"/>
<date day="14" month="6" year="2011"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>
New branding key for applications built on top of NetBeans
Platform to <a href="@TOP@architecture-summary.html#branding-USE_MNEMONICS">
turn mnemonics in popup menus on</a>.
</p>
</description>
<issue number="184891"/>
</change>
<change id="ActionRegistration.menuOrPopupText">
<api name="awt"/>
<summary>New attributes (popupText, menuText) in @ActionRegistration annotation</summary>
<version major="7" minor="35"/>
<date day="27" month="5" year="2011"/>
<author login="tstupka"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>
New attributes (popupText, menuText) in @ActionRegistration annotation to provide
text for menu items or popup menu items according to the
<a href="@TOP@/org/openide/awt/Actions.html#connect-javax.swing.JMenuItem-javax.swing.Action-boolean-">Actions.connect</a>
method.
</p>
</description>
<class package="org.openide.awt" name="ActionRegistration"/>
<issue number="197789"/>
</change>
<change id="Actions.selected">
<api name="awt"/>
<summary>Support "selected" icons in Actions and Actions.checkbox</summary>
<version major="7" minor="34"/>
<date day="24" month="5" year="2011"/>
<author login="err"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>
Handle _selected, _rolloverSelected and _disabledSelected
icon resources in Actions.connect.
Actions.checkbox on a Toolbar uses them if they are available.
</p>
</description>
<class package="org.openide.awt" name="Actions"/>
<issue number="197639"/>
</change>
<change id="Savable">
<api name="awt"/>
<summary>Savable context interface</summary>
<version major="7" minor="33"/>
<date day="20" month="5" year="2011"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>
New interface for objects that can be saved. Old
<a href="@org-openide-nodes@/org/openide/cookies/SaveCookie.html">SaveCookie</a>
is retrofitted to implement the new <code>Savable</code> interface.
</p>
</description>
<class package="org.netbeans.api.actions" name="Savable"/>
<class package="org.netbeans.spi.actions" name="AbstractSavable"/>
<issue number="77210"/>
</change>
<change id="Actions.context-context">
<api name="awt"/>
<summary>Context Actions Can Specify Different Default Context</summary>
<version major="7" minor="31"/>
<date day="27" month="3" year="2011"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>
<a href="@org-openide-awt@/org/openide/awt/Actions.html#context-java.lang.Class-boolean-boolean-org.openide.util.ContextAwareAction-java.lang.String-java.lang.String-java.lang.String-boolean-">
Action.context</a>, when used from layer accepts <code>"context"</code>
attribute.
</p>
</description>
<class package="org.openide.awt" name="Actions"/>
<issue number="77210"/>
</change>
<change id="ActionReference">
<api name="awt"/>
<summary>New @ActionReference annotations</summary>
<version major="7" minor="28"/>
<date day="5" month="9" year="2010"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>
New annotation to register references to actions from layer.
</p>
</description>
<class package="org.openide.awt" name="ActionReference"/>
<class package="org.openide.awt" name="ActionReferences"/>
<issue number="189558"/>
</change>
<change id="ActionRegistration">
<api name="awt"/>
<summary>New @ActionRegistration annotations</summary>
<version major="7" minor="26"/>
<date day="10" month="8" year="2010"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>Instead of registering actions in layer as advocated by various
<a href="@TOP@/org/openide/awt/Actions.html#alwaysEnabled-java.awt.event.ActionListener-java.lang.String-java.lang.String-boolean-">
action factory methods</a> one can use newly created
<a href="@TOP@/org/openide/awt/ActionRegistration.html">annotations</a>.
</p>
</description>
<class package="org.openide.awt" name="ActionRegistration"/>
<class package="org.openide.awt" name="ActionID"/>
<issue number="183794"/>
</change>
<change id="UndoRedo.Provider">
<api name="awt"/>
<summary>Introducing UndoRedo.Provider</summary>
<version major="7" minor="25"/>
<date day="29" month="6" year="2010"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" deletion="no" semantic="compatible"/>
<description>
<p>Undo and Redo actions now seek their context for implementation
of <a href="@TOP@/org/openide/awt/UndoRedo.Provider.html">UndoRedo.Provider</a>.
If found, it influences their enabled/disabled state. If there is no
such provider, the implementation fallbacks to currently activated
<a href="@org-openide-windows@/org/openide/windows/TopComponent.html">TopComponent</a>.
</p>
</description>
<class package="org.openide.awt" name="UndoRedo"/>
<issue number="180614"/>
</change>
<change id="HIDE_WHEN_DISABLED">
<api name="awt"/>
<summary><code>HIDE_WHEN_DISABLED</code></summary>
<version major="7" minor="22"/>
<date day="1" month="4" year="2010"/>
<author login="jglick"/>
<compatibility addition="yes">
<p>
Actions formerly implementing <code>DynamicMenuContent</code> solely to
conditionally hide an action are encouraged to use the new API.
</p>
</compatibility>
<description>
<p>
New action property which makes it simple to conditionally hide,
rather than merely grey out, a context menu item.
</p>
</description>
<class package="org.openide.awt" name="DynamicMenuContent"/>
<issue number="182488"/>
</change>
<change id="Notification.SILENT">
<api name="awt"/>
<summary>Support for silent notifications</summary>
<version major="7" minor="18"/>
<date day="16" month="10" year="2009"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
New priority to show a notification but without its details initially.
The user can display the details baloon manually later.
</description>
<class package="org.openide.awt" name="NotificationDisplayer"/>
<issue number="174183"/>
</change>
<change id="Actions.checkbox">
<api name="awt"/>
<summary>Actions.checkbox() can represent a boolean key in Preferences.</summary>
<version major="7" minor="17"/>
<date day="9" month="10" year="2009"/>
<author login="mmetelka"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
<a href="@TOP@/org/openide/awt/Actions.html#checkbox-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-">
checkbox</a>
added to create an action that represents a key in Preferences.
</description>
<class package="org.openide.awt" name="Actions"/>
<issue number="166027"/>
</change>
<change id="AlwaysEnabledAction.CheckBox">
<api name="awt"/>
<summary>AlwaysEnabledAction can represent a boolean key in Preferences.</summary>
<version major="7" minor="15"/>
<date day="24" month="8" year="2009"/>
<author login="mmetelka"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
<a href="@TOP@/org/openide/awt/Actions.html#alwaysEnabled-java.awt.event.ActionListener-java.lang.String-java.lang.String-boolean-">
alwaysEnabledAction</a>
was enhanced to understand
<code>&lt;attr name="PreferencesKey" stringvalue="boolean-key-name"/&gt;</code>
together with <code>&lt;attr name="PreferencesNode" stringvalue="prefstype:/nodepath"/&gt;</code>
where <code>prefstype</code> can be
<ul>
<li>"system" for <code>Preferences.systemRoot()</code></li>
<li>"user" for <code>Preferences.userRoot()</code></li>
<li>"nb" for <code>NbPreferences.root()</code></li>
</ul>
or the property value can be <code>Preferences</code> instance or it can be a <code>Lookup</code>
with the <code>Preferences</code> instance in it.
The action will be represented by check box menu item in both menu and popup menu automatically.
</description>
<class package="org.openide.awt" name="Actions"/>
<issue number="166027"/>
</change>
<change id="ExternalURLDisplayer">
<api name="awt"/>
<summary>URLDisplayer can show URLs in an external browser even
if the preferred browser is an internal one.</summary>
<version major="7" minor="14"/>
<date day="7" month="8" year="2009"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
URLDisplayer.showURL(URL) shows the given page using preferred
web browser defined in IDE options. However when the preffered browser
is an internal one (either embedded native browser or SwingBrowser)
then there's need to show some URLs in an external browser, e.g. when
a modal dialog is showing.
Method showURLExternal(URL) attempts to display the given page in
an external browser. The default implementation just delegates to showURL(URL).
</description>
<class package="org.openide.awt" name="HtmlBrowser"/>
<issue number="169240"/>
</change>
<change id="HtmlBrowser.toolbar">
<api name="awt"/>
<summary>Added 'location' String property to HtmlBrowser.Impl</summary>
<version major="7" minor="13"/>
<date day="4" month="8" year="2009"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
HtmlBrowser.Impl class now has a String property to set/get browser
location. The location doesn't have to be a valid URL, for example
"about:config" may be accepted as well depeneding on actual browser
implementation.
The default property implementation attempts to convert the String
location to/from URL address.
</description>
<class package="org.openide.awt" name="HtmlBrowser"/>
<issue number="169241"/>
</change>
<change id="Actions.asynchronous">
<api name="awt"/>
<summary>Support for asynchronous actions</summary>
<version major="7" minor="12"/>
<date day="30" month="7" year="2009"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
The layer definition used by factory methods for
<a href="@TOP@/org/openide/awt/Actions.html#context-java.lang.Class-boolean-boolean-org.openide.util.ContextAwareAction-java.lang.String-java.lang.String-java.lang.String-boolean-">
context</a>
and
<a href="@TOP@/org/openide/awt/Actions.html#callback-java.lang.String-javax.swing.Action-boolean-java.lang.String-java.lang.String-boolean-">
callback</a>
and
<a href="@TOP@/org/openide/awt/Actions.html#alwaysEnabled-java.awt.event.ActionListener-java.lang.String-java.lang.String-boolean-">
alwaysEnabledAction</a>
were enhanced to understand <code>&lt;attr name="asynchronous" boolvalue="true"/&gt;</code>
attribute. This extends these new factories with capabilities
already present in old <code>SystemAction</code>, thus makes
it easier to migrate from old to new while retaining compatible
behaviour.
</description>
<class package="org.openide.awt" name="Actions"/>
<issue number="168547"/>
</change>
<change id="HtmlBrowser.dispose">
<api name="awt"/>
<summary>Added <code>HtmlBrowser.dispose</code></summary>
<version major="7" minor="11"/>
<date day="15" month="7" year="2009"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Added method dispose() to HtmlBrowser.Impl class which should be invoked
when the browser component is no longer needed. The method is needed
for embedded browser to release native component(s). The default
implementation does nothing.
</description>
<class package="org.openide.awt" name="HtmlBrowser"/>
<issue number="167901"/>
</change>
<change id="Actions.context">
<api name="awt"/>
<summary>Context Aware Action Factories</summary>
<version major="7" minor="10"/>
<date day="1" month="7" year="2009"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" source="incompatible" deprecation="no" deletion="no" modification="no"/>
<description>
<p>
Two new factory methods for creating
<a href="@TOP@/org/openide/awt/Actions.html#context-java.lang.Class-boolean-boolean-org.openide.util.ContextAwareAction-java.lang.String-java.lang.String-java.lang.String-boolean-">
context</a>
and
<a href="@TOP@/org/openide/awt/Actions.html#callback-java.lang.String-javax.swing.Action-boolean-java.lang.String-java.lang.String-boolean-">
callback</a>
actions and bunch of
<a href="@TOP@/org/netbeans/api/actions/package-summary.html">
context interfaces</a>.
</p>
<p>
As part of introduction of the
<a href="@TOP@/org/netbeans/api/actions/package-summary.html">
context interfaces</a>, several already existing interfaces
(usually carrying <em>Cookie</em> suffix in their name) were
retrofitted to extend these new
<a href="@TOP@/org/netbeans/api/actions/package-summary.html">alternatives</a>.
This is binary and semantically compatible (as the methods closure
remains the same) and <a href="@org-openide-nodes@/overview-summary.html">the module</a>
providing <em>cookies</em> already had a runtime dependency on
<a href="@org-openide-awt@/overview-summary.html">org.openide.awt</a>
module. However this change can cause problems during compilation.
Those who compiled against
<a href="@org-openide-nodes@/overview-summary.html">Nodes API</a> only
and implemented one of the <em>cookie</em> interfaces need to add
(compile time) dependency on
<a href="@org-openide-awt@/overview-summary.html">org.openide.awt</a> as well.
</p>
</description>
<class package="org.openide.awt" name="Actions"/>
<class package="org.netbeans.api.actions" name="Openable"/>
<class package="org.netbeans.api.actions" name="Closable"/>
<class package="org.netbeans.api.actions" name="Editable"/>
<class package="org.netbeans.api.actions" name="Viewable"/>
<class package="org.netbeans.api.actions" name="Printable"/>
<issue number="166658"/>
</change>
<change id="Hide-close-button-in-CloseButtonTabbedPane">
<api name="awt"/>
<summary>API to hide close button in CloseButtonTabbedPane</summary>
<version major="7" minor="8"/>
<date day="6" month="5" year="2009"/>
<author login="jbecicka"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Added possibility to hide close button in CloseButtonTabbedPane
through tab's client property
component.putClientProperty(TabbedPaneFactory.NO_CLOSE_BUTTON, Boolean.TRUE)
</description>
<issue number="164578"/>
</change>
<change id="AlwaysEnabledAction-extra-properties-and-name-sync">
<api name="awt"/>
<summary>AlwaysEnabledAction extra properties and Action.NAME synchronization</summary>
<version major="7" minor="7"/>
<date day="7" month="4" year="2009"/>
<author login="mmetelka"/>
<compatibility addition="no" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="yes"/>
<description>
Actions.alwaysEnabled() now checks whether Action.NAME property value
of the delegate action (if defined) matches to the one in the declared
for the action in the xml-layer.
The AlwaysEnabledAction.getValue() now resolves all the keys
in Acxtion.getValue() against the defined attributes in the xml-layer.
</description>
<issue number="150875"/>
</change>
<change id="Notifications">
<api name="awt"/>
<summary>Support for showing of notification-like messages in the main status line.</summary>
<version major="7" minor="6"/>
<date day="5" month="3" year="2009"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Notifications are generic events that require user's attention and are
visualized in a way similar to 'new email' notifications in e.g. Thunderbird.
Each notification has an associated icon, title, details text and an
action to be invoked on mouse click.
The default implementation of this API shows each new notification
in a balloon-like tooltip for a few seconds and a list of all notifications
is available on mouse-click in the main status bar.
Each notification is available until cleared either by user action
or programmatically by calling clear() method.
</description>
<class package="org.openide.awt" name="NotificationDisplayer"/>
<class package="org.openide.awt" name="Notification"/>
<issue number="159614"/>
</change>
<change id="StatusTextImportance">
<api name="awt"/>
<summary>Allow messages to show in the main status line permanently.</summary>
<version major="7" minor="5"/>
<date day="6" month="1" year="2009"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Because of merging of editor's status line with main window's status line
it is necessary to define the 'importance' of messages being displayed in the
main status line. Messages with higher importance will replace messages
with lower importance. These important messages will stay permanently visible
until explicitly cleared or replaced (as opposed to current implementation
when all status line messages are removed after some time) or when handle
object associated with these messages gets garbage-collected.
</description>
<class package="org.openide.awt" name="StatusDisplayer"/>
<issue number="156357"/>
</change>
<change id="Actions.MenuText">
<api name="awt"/>
<summary>Actions can have "menuText" and "popupText" properties</summary>
<version major="7" minor="1"/>
<date day="12" month="3" year="2008"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="yes" deletion="no" modification="no"/>
<description>
In order to allow dynamic names of actions, the <a href="@TOP@/org/openide/awt/Actions.html#connect-javax.swing.JMenuItem-javax.swing.Action-boolean-">Actions.connect</a>
method now understands additional properties that influence the text
of menu items or popup menu items build for this action.
</description>
<class package="org.openide.awt" name="Actions"/>
</change>
<change id="SpinButton.RepeatThread">
<api name="awt"/>
<summary>Hidden field SpinButton.rt made accessible</summary>
<version major="7" minor="0"/>
<date day="2" month="1" year="2008"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="yes" deletion="no" modification="no"/>
<description>
SpinButton used to have a field <code>rt</code>. The type of the field was a package private class.
As such the field was inaccessible to API users. Because this is not
checked as an error with our new
<a href="http://wiki.netbeans.org/wiki/view/SignatureTest">signature test infrastructure</a>,
we made the type of the field visible.
</description>
<class package="org.openide.awt" name="SpinButton"/>
</change>
<change id="DropDownButton-added">
<api name="awt"/>
<summary>Added factory class for drop-down buttons</summary>
<version major="6" minor="11"/>
<date day="4" month="5" year="2007"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Added a factory class that can create special buttons with a small arrow icon that brings up a popup menu when clicked.
</description>
<class package="org.openide.awt" name="DropDownButtonFactory"/>
<issue number="102614"/>
</change>
<change id="CloseableTabbedPane-added">
<api name="awt"/>
<summary>Added TabbedPane with closeable tabs</summary>
<version major="6" minor="10"/>
<date day="28" month="2" year="2007"/>
<author login="saubrecht"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Added a factory class for special <code>JTabbedPane</code> that displays a small 'close' button in each tab.
When user clicks the close button a <code>PropertyChangeEvent</code> is fired from the
tabbed pane.
</description>
<class package="org.openide.awt" name="TabbedPaneFactory"/>
<issue number="55845"/>
</change>
<change id="Actions.ButtonActionConnector-added">
<api name="awt"/>
<summary>Actions.ButtonActionConnector interface added</summary>
<version major="6" minor="9"/>
<date day="1" month="2" year="2007"/>
<author login="dstrupl"/>
<compatibility addition="yes" modification="no" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no"/>
<description>
The addition enables to plug in additional logic for action enabling and disabling
based on for example authorization information. The added SPI interface is being
looked up in the default lookup. If there is no implementation the original behaviour
is preserverd.
</description>
<class package="org.openide.awt" name="Actions"/>
<issue number="93519"/>
</change>
<change id="DynamicMenuContent-added">
<api name="awt"/>
<summary>DynamicMenuContent interface added</summary>
<version major="6" minor="5"/>
<date day="12" month="6" year="2005"/>
<author login="mkleint"/>
<compatibility addition="yes" modification="yes" binary="compatible" source="compatible" semantic="incompatible" deprecation="yes" deletion="no"/>
<description>
In order to support MacOSX top menus and to fix problems with deprecated <code>JInlineMenu</code>, this new
interface was added that allows to handle dynamic content in <a href="@org-openide-util-ui@/org/openide/util/actions/Presenter.Menu.html">Presenter.Menu</a>
and <a href="@org-openide-util-ui@/org/openide/util/actions/Presenter.Popup.html">Presenter.Popup</a>.
If the instance returned by Presenter.Menu/Popup is an instance of <a href="@TOP@/org/openide/awt/DynamicMenuContent.html">DynamicMenuContent</a>, it's methods are
consulted when creating/updating the menu.
<code>JInlineMenu</code> rewritten to use this new approach in a backward compatible way, however changed during visibility of the menu are not supported.
<code>JMenuPlus</code> and <code>JPopupMenuPlus</code> are deprecated and behave exactly like their standard Swing counterparts.
<code>Actions.Submenu</code> and <code>Actions.MenuItem</code> now implement <code>DynamicMenuContent</code> interface.
</description>
<class package="org.openide.awt" name="DynamicMenuContent"/>
<class package="org.openide.awt" name="JInlineMenu"/>
<class package="org.openide.awt" name="JMenuPlus"/>
<class package="org.openide.awt" name="JPopupMenuPlus"/>
<class package="org.openide.awt" name="Actions"/>
<issue number="35827"/>
</change>
<change id="statuslineelementprovider-added">
<api name="awt"/>
<summary>Make IDE's status bar pluggable.</summary>
<version major="6" minor="4"/>
<date day="4" month="5" year="2005"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
By registering org.openide.awt.StatusLineElementProvider in the default lookup (META-INF/servides)
one can provide a custom component that will be incorporated into the IDE's statusbar.
The exact location of your component is determined by the ordering of the providers.
</description>
<class package="org.openide.awt" name="StatusLineElementProvider"/>
<issue number="55828"/>
</change>
<change id="actions-with-custom-tooltip-have-shortcuts-in-toolbar">
<api name="awt"/>
<summary>Actions with custom tooltip have tooltip with shortcut in toolbars</summary>
<version major="6" minor="3"/>
<date day="29" month="4" year="2005"/>
<author login="jlahoda"/>
<compatibility semantic="incompatible"/>
<description>
If an action specifies a tooltip, the tooltip of the corresponding toolbar button is augmented
with shortcut in the same way as when the action does not specify tooltip.
</description>
<issue number="57974"/>
</change>
<change>
<api name="awt"/>
<summary>HTML browser factory deprecated, use lookup instead</summary>
<date day="8" month="3" year="2001"/>
<compatibility modification="yes" deprecation="yes" binary="compatible" source="compatible" semantic="compatible" addition="no" deletion="no"/>
<description>
<code>HtmlBrower.setFactory()</code> is deprecated and its functionality
can be obtained by registering <code>HtmlBrowser.Impl</code> in Lookup
folder. This allows to register more browsers in IDE, create
customizable browsers and switch between them.
</description>
<class package="org.openide.awt" name="HtmlBrowser"/>
</change>
<change>
<api name="awt"/>
<summary>Display names for toolbars</summary>
<date day="8" month="12" year="2000"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Added display name support for Toolbar class. New constructors and methods:
<ul>
<li>
<code>Toolbar(String name, String displayName)</code>
</li>
<li>
<code>Toolbar(String name, String displayName, boolean floatable)</code>
</li>
<li>
<code>setDisplayName(String displayName)</code>
</li>
<li>
<code>String getDisplayName()</code>
</li>
</ul>
</description>
<class package="org.openide.awt" name="Toolbar" link="no"/>
</change>
<change>
<api name="awt"/>
<summary>Cleaned up accidentally public members of <code>Toolbar</code>
</summary>
<date day="19" month="4" year="2000"/>
<compatibility deletion="yes" source="incompatible" binary="compatible" semantic="compatible" deprecation="no" addition="no" modification="no">
First broken, later restored binary compatibility in trunk and
<code>boston</code>. It is possible but unlikely that the first two
changes could cause incompatibilities; normally only the core
implementation uses the <code>Toolbar</code> class anyway.
</compatibility>
<description>
Several public fields removed from <code>DnDEvent</code>
(<code>dx</code>, <code>dy</code>, <code>name</code>, and
<code>type</code>); public methods serving only to implement
<code>MouseInputListener</code> have been removed (as well as the
implements-clause for this interface); <code>BASIC_HEIGHT</code> now
final (it was static and only intended as a constant, so this is not
incompatible).
</description>
<class package="org.openide.awt" name="Toolbar" link="no"/>
</change>
<change id="HtmlBrowser.getBrowserImpl-getBrowserComponent">
<api name="awt"/>
<summary>Added methods to <code>HtmlBrowser</code>
</summary>
<version major="4" minor="27"/>
<date day="7" month="5" year="2004"/>
<author login="jglick"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
<p>
The methods <code>getBrowserImpl</code> and
<code>getBrowserComponent</code> were added to <code>HtmlBrowser</code>
for use by core.
</p>
</description>
<class package="org.openide.awt" name="HtmlBrowser"/>
</change>
<change id="ToolbarPool-create-new">
<api name="awt"/>
<summary>Create your own toolbar pool</summary>
<version major="1" minor="5"/>
<date day="27" month="4" year="2001"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
New constructor of <code>ToolbarPool</code>. Now any module can create its
own <code>ToolbarPool</code> and use it.
</description>
<class package="org.openide.awt" name="ToolbarPool" link="no"/>
</change>
<change id="Mnemonics">
<api name="awt"/>
<summary>
<code>org.openide.awt.Mnemonics</code> added</summary>
<version major="3" minor="37"/>
<date day="10" month="2" year="2003"/>
<author login="jglick"/>
<compatibility deprecation="yes" addition="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/>
<description>
The class <code>org.openide.awt.Mnemonics</code> was introduced as a
centralized and convenient place to set localized text for a variety of
components while properly handling mnemonics in a variety of
international scripts.
</description>
<class package="org.openide.awt" name="Mnemonics"/>
<class package="org.openide.awt" name="Actions"/>
<issue number="26640"/>
</change>
<change>
<api name="awt"/>
<summary>Can request to use textual icons for actions</summary>
<date day="23" month="3" year="2000"/>
<author login="jglick"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
<code>ButtonBridge</code> has protected method with which it is possible
to specify whether or not to use textual icons rather than empty ones if
an action has no icon.
</description>
<class package="org.openide.awt" name="Actions"/>
</change>
<change id="no-icon-in-menu-for-actions">
<api name="awt"/>
<summary>Added property to <code>SystemAction/Action</code> that causes it's icon not to be displayed in menu.</summary>
<version major="4" minor="49"/>
<date day="12" month="10" year="2004"/>
<author login="mkleint"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
<p>
<code>SystemAction putValue("noIconInMenu", Boolean.TRUE)</code> influences the display of the action
in the main menu, the item will have no icon there. Works for Actions that don't define custom MenuPresenter.
This property is considered temporary, applications building on top of the platform that
don't want this functionality, have to patch the actions' code.
</p>
</description>
<class package="org.openide.awt" name="awt" link="no"/>
</change>
<change>
<api name="awt"/>
<summary>Allow asynchronous execution of actions</summary>
<version major="4" minor="26"/>
<date day="17" month="2" year="2004"/>
<author login="jtulach"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Support for asynchronous execution of actions has been re-added. Right now
all <code>CallableSystemAction</code> that return <code>true</code>
from their <code>asynchronous</code> method are executed outside of AWT thread.
However as most actions shall be executed synchronously, it is still required
for a subclass of <code>CallableSystemAction</code> to override the method
with own implementation otherwise a warning is printed.
<p>
There is a special contract to allow asynchronous actions to be executed
synchronously, by using special <code>ActionEvent</code> with <q>waitFinished</q>
as action command.
</p>
</description>
<class package="org.openide.util.actions" name="CallableSystemAction" link="no"/>
<issue number="39640"/>
</change>
<change>
<api name="awt"/>
<summary>Lightweight HTML rendering methods</summary>
<version major="4" minor="32"/>
<date day="3" month="5" year="2004"/>
<author login="tboudreau"/>
<compatibility addition="yes" deprecation="no" />
<description>
A lightweight HTML renderer which can render a limited subset of
HTML has been added to the APIs, and will be used in Explorer.
Nodes wishing to provide text rendered in HTML may do so by
returning subset-compliant HTML formatted text from the new
method <code>getHtmlDisplayName</code>. An interface,
<code>HTMLStatus</code> has been created which extends
<code>FileSystem.Status</code>, has been created, which allows
filesystems to supply HTML formatted status information, by
implementing it on their <code>FileSystem.Status</code> implementation.
Filesystems which delegate to other filesystems my implement
FileSystem.HtmlStatus and simply return null for filesystems which
do not support it.
If one is present, DataNode will use it to supply HTML formatted
text to Explorer. The renderer itself can be found in
org.openide.awt.HtmlRenderer.
</description>
<class package="org.openide.filesystems.FileSystem" name="HtmlStatus" link="no"/>
<class package="org.openide.nodes" name="Node" link="no"/>
<class package="org.openide.awt" name="HtmlRenderer"/>
<class package="org.openide.loaders" name="DataNode" link="no"/>
<issue number="29466"/>
</change>
<change>
<api name="awt"/>
<summary>Support for pressed, disabled and rollover icons added to SystemAction and Actions</summary>
<version major="4" minor="22"/>
<date day="8" month="1" year="2004"/>
<author login="dstrupl"/>
<compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
<description>
Method SystemAction.getValue() was modified to support one additional special parameter: "iconBase".
If a value with this key is required the method calls into SystemAction.iconResource. Class
org.openide.awt.Actions uses value of "iconBase" to fetch the icons. The "iconBase" parameter is
used not only when connecting SystemAction but for all javax.swing.Action instances. The value of
"iconBase" is a path to the icon resources without the trailing .gif. The code in Actions adds
.gif, _pressed.gif, _disabled.gif and _rollover.gif suffices to the iconBase.
</description>
<class package="org.openide.util.actions" name="SystemAction" link="no"/>
<class package="org.openide.awt" name="awt" link="no"/>
<issue number="32256"/>
</change>
<change>
<api name="awt"/>
<summary>New Actions system - part I.</summary>
<version major="3" minor="32"/>
<date day="21" month="1" year="2003"/>
<author login="pzavadsky"/>
<compatibility deprecation="yes" addition="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no" modification="no"/>
<description>
<p>
According to changes in action system (see the change 3.29),
also the method <code>TopComponent.getSystemActions()</code>
is replaced by <code>TopComponent.getActions()</code> method.
</p>
</description>
<class package="org.openide.windows" name="TopComponent" link="no"/>
<issue number="30231"/>
</change>
<change>
<api name="awt"/>
<summary>New Actions system - part I.</summary>
<version major="3" minor="29"/>
<date day="8" month="1" year="2003"/>
<author login="jtulach"/>
<author login="pzavadsky"/>
<compatibility deprecation="yes" addition="yes" modification="yes" binary="compatible" source="compatible" semantic="compatible" deletion="no"/>
<description>
<p>
Introduction of new action system, which generally means
move from usage of <code>SystemAction</code> to <code>Action</code> instances.
Further step would be declarative actions
usage which is not subject of current change, it will be part of later changes.
</p>
</description>
<class package="org.openide.awt" name="awt" link="no"/>
<issue number="27868"/>
</change>
</changes>
<htmlcontents>
<head>
<title>Change History for the Actions 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>
<h2>What do the Dates Mean?</h2>
<p>The supplied dates indicate when the API change was made, on the CVS
trunk. From this you can generally tell whether the change should be
present in a given build or not; for trunk builds, simply whether it
was made before or after the change; for builds on a stabilization
branch, whether the branch was made before or after the given date. In
some cases corresponding API changes have been made both in the trunk
and in an in-progress stabilization branch, if they were needed for a
bug fix; this ought to be marked in this list.</p>
<ul>
<li>The <code>release41</code> branch was made on Apr 03 '05 for use in the NetBeans 4.1 release.
Specification versions: 6.0 begins after this point.</li>
<li>The <code>release40</code> branch was made on Nov 01 '04 for use in the NetBeans 4.0 release.
Specification versions: 5.0 begins after this point.</li>
</ul>
<hr/>
<standard-changelists module-code-name="org.openide.actions"/>
<hr/>
<p>@FOOTER@</p>
</body>
</htmlcontents>
</apichanges>