<?xml version="1.0" encoding="UTF-8"?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

Copyright 1997-2012 Oracle and/or its affiliates. All rights reserved.

Oracle and Java are registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.


The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://www.netbeans.org/cddl-gplv2.html
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
specific language governing permissions and limitations under the
License.  When distributing the software, include this License Header
Notice in each file and include the License file at
nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
particular file as subject to the "Classpath" exception as provided
by Oracle in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"

Contributor(s):

The Original Software is NetBeans. The Initial Developer of the Original
Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
Microsystems, Inc. All Rights Reserved.

If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 2, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 2] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 2 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 2 code and therefore, elected the GPL
Version 2 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
-->
<!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,%20javax.swing.Action,%20boolean)">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,%20boolean,%20boolean,%20org.openide.util.ContextAwareAction,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20boolean)">
                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,%20java.lang.String,%20java.lang.String,%20boolean)">
                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,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20boolean)">
                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,%20java.lang.String,%20java.lang.String,%20boolean)">
                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,%20boolean,%20boolean,%20org.openide.util.ContextAwareAction,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20boolean)">
            context</a>
            and
            <a href="@TOP@/org/openide/awt/Actions.html#callback(java.lang.String,%20javax.swing.Action,%20boolean,%20java.lang.String,%20java.lang.String,%20boolean)">
            callback</a>
            and
            <a href="@TOP@/org/openide/awt/Actions.html#alwaysEnabled(java.awt.event.ActionListener,%20java.lang.String,%20java.lang.String,%20boolean)">
                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,%20boolean,%20boolean,%20org.openide.util.ContextAwareAction,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20boolean)">
            context</a>
            and
            <a href="@TOP@/org/openide/awt/Actions.html#callback(java.lang.String,%20javax.swing.Action,%20boolean,%20java.lang.String,%20java.lang.String,%20boolean)">
            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,%20javax.swing.Action,%20boolean)">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>
