<?xml version="1.0" encoding="UTF-8"?>
<!-- Search for CHANGEME in this document when copying and using it: -->
<!--
The contents of this file are subject to the terms of the Common Development
and Distribution License (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.html
or http://www.netbeans.org/cddl.txt.

When distributing Covered Code, include this CDDL Header Notice in each file
and include the License file at http://www.netbeans.org/cddl.txt.
If applicable, add the following below the CDDL Header, with the fields
enclosed by brackets [] replaced by your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"

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.
-->
<?xml-stylesheet type="text/xml" href="CHANGEME/nbbuild/javadoctools/apichanges.xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../../../../nbbuild/javadoctools/apichanges.dtd">

<!--

INFO FOR PEOPLE ADDING CHANGES:

Check the DTD (apichanges.dtd) for details on the syntax. You do not
need to regenerate the HTML, as this is part of Javadoc generation; just
change the XML. Rough syntax of a change (several parts optional):

<change>
    <api name="compiler"/>
    <summary>Some brief description here, can use <b>XHTML</b></summary>
    <version major="1" minor="99"/>
    <date day="13" month="6" year="2001"/>
    <author login="jrhacker"/>
    <compatibility addition="yes"/>
    <description>
        The main description of the change here.
        Again can use full <b>XHTML</b> as needed.
    </description>
    <class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
    <issue number="14309"/>
</change>

Also permitted elements: <package>, <branch>. <version> is API spec
version, recommended for all new changes. <compatibility> should say
if things were added/modified/deprecated/etc. and give all information
related to upgrading old code. List affected top-level classes and
link to issue numbers if applicable. See the DTD for more details.

Changes need not be in any particular order, they are sorted in various
ways by the stylesheet anyway.

Dates are assumed to mean "on the trunk". If you *also* make the same
change on a stabilization branch, use the <branch> tag to indicate this
and explain why the change was made on a branch in the <description>.

Please only change this file on the trunk! Rather: you can change it
on branches if you want, but these changes will be ignored; only the
trunk version of this file is important.

Deprecations do not count as incompatible, assuming that code using the
deprecated calls continues to see their documented behavior. But do
specify deprecation="yes" in <compatibility>.

This file is not a replacement for Javadoc: it is intended to list changes,
not describe the complete current behavior, for which ordinary documentation
is the proper place.

-->

<apichanges>

    <!-- First, a list of API names you may use: -->
    <apidefs>
        <apidef name="palette_api">Palette API</apidef>
        <!-- etc. -->
    </apidefs>

    <!-- ACTUAL CHANGES BEGIN HERE: -->

  <changes>
    <change>
        <api name="palette_api"/>
        <summary>Initial version released</summary>
        <version major="1" minor="0"/>
        <date day="21" month="7" year="2005"/>
        <author login="saubrecht"/>
        <compatibility addition="yes"/>
        <description>The first initial release of the Palette API.</description>
    </change>      
    
    <change>
        <api name="palette_api"/>
        <summary>Removing unnecessary exceptions from PaletteFactory</summary>
        <version major="1" minor="1"/>
        <date day="8" month="8" year="2005"/>
        <author login="saubrecht"/>
        <compatibility addition="no"/>
        <description>Removed IOException from the signature of methods in PaletteFactory that accept Node as an argument.</description>
    </change>      
    
    <change>
        <api name="palette_api"/>
        <summary>Added a new optional attribute that can specify the width of items in the palette.</summary>
        <version major="1" minor="2"/>
        <date day="9" month="8" year="2005"/>
        <author login="saubrecht"/>
        <compatibility addition="yes"/>
        <description>There's a new attribute "itemWidth" that can be set for palette's root node 
        (or for palette's root folder in the layer). This attribute defines the width in pixels
        for all items in the palette thus forcing the same number of columns for all categories.
        If the attribute is omitted or its value is "-1" then the item widths will be calculated
        dynamically. The attribute is read-only.</description>
    </change>      
    <change id="client-support" >
        <api name="palette_api"/>
        <summary>Palette client support released</summary>
        <version major="1" minor="3"/>
        <date day="10" month="8" year="2005"/>
        <author login="lkotouc"/>
        <compatibility addition="yes"/>
        <description>
            The first release of the Palette client support. It involves namely DTD describing item definition file format
            and some implementation addons regarding definition file parsing and custom implementation class loading.
            
            The palette item implementor can either directly provide the item body 
            or her own item class implementing <code>org.openide.text.ActiveEditorDrop</code> interface.
            
            Lookup that holds object(s) representing the selected item then associates 
            custom item class instance with the <code>org.openide.text.ActiveEditorDrop.class</code> key and 
            the body with <code>java.lang.String</code> key.
        </description>
    </change>      
    
    <change id="draganddrop_support" >
        <api name="palette_api"/>
        <summary>Added support for default drag and drop operations</summary>
        <version major="1" minor="4"/>
        <date day="13" month="9" year="2005"/>
        <author login="saubrecht"/>
        <compatibility addition="yes"/>
        <description>
            The abstract class DragAndDropHandler now provides default implementation
            for all drag and drop operations. The only method that needs to be overridden
            is <code>void customize( ExTransferable t, Lookup item )</code> to provide
            custom data flavors for items dragged from the palette to editor.<br/>
            There are also new methods (and their default implementations) in this class 
            that handle reordering of categories and reordering of items (i.e. drag and drop
            operations withing the palette window).
        </description>
    </change>      
    
    <change id="api_stabilization" >
        <api name="palette_api"/>
        <summary>The Common Palette API has been stabilized.</summary>
        <version major="1" minor="5"/>
        <date day="7" month="6" year="2006"/>
        <author login="saubrecht"/>
        <compatibility deprecation="yes"/>
        <description>
            <p>
                To indicate that this is now considered a stable API, the major release version was
                incremented to 1 from 0.
            </p>
        </description>
        <issue number="77387"/>
    </change>      
    
    <change id="help_ctx" >
        <api name="palette_api"/>
        <summary>Added helpId attribute</summary>
        <version major="1" minor="6"/>
        <date day="26" month="9" year="2006"/>
        <author login="saubrecht"/>
        <compatibility addition="yes"/>
        <description>
            <p>
                Now it's possible to add <em>helpId</em> attribute to palette's root, categories and items
                that will be used to create appropriate HelpCtx. The attribute can be specified
                in XML layer as a folder (palette's root and categories) or file attribute 
                (palette items) or it can be provided directly by appropriate Nodes.
            </p>
            <p>
                When F1 key is pressed in palette's window then first the selected item is asked
                for HelpCtx id. If no item is selected or it does not provide specific help id then
                selected category is checked for help id. If the category does not provide any help id
                either then palette's root is asked for help id. If the root does not define any then
                the default help id <em>CommonPalette</em> will be used.
            </p>
        </description>
        <issue number="77387"/>
    </change>      
  </changes>
  
    <!-- Now the surrounding HTML text and document structure: -->

    <htmlcontents>
<!--

                            NO NO NO NO NO!


          AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT

                SEE CHANGEME/apichanges.xml

-->
    <head>
      <title>Change History for the Progress API</title>
      <link rel="stylesheet" href="prose.css" type="text/css"/>
    </head>
    <body>

<p class="overviewlink"><a href="overview-summary.html">Overview</a></p>

<h1>Introduction</h1>

<p>This document lists changes made to the Palette API/SPI.</p>

<!-- The actual lists of changes, as summaries and details: -->

      <hr/><standard-changelists module-code-name="org.netbeans.spi.palette"/>

      <hr/><p>@FOOTER@</p>

    </body>
  </htmlcontents>

</apichanges>
