blob: 436110106bf049669663b4bf29e533d4e2f67549 [file] [log] [blame]
<html>
<!--
NO NO NO NO NO!
AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT
SEE CHANGEME/apichanges.xml
-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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" shape="rect">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>
<h1>
<a name="list-all-apis">Index of APIs</a>
</h1>
<ul>
<li>
<a href="#palette_api">Palette API</a>
</li>
</ul>
<h1>
<a name="incompat-by-date">Incompatible changes by date</a>
</h1>
<p>Fuller descriptions of all changes can be found below (follow links).</p>
<p>Not all deprecations are listed here, assuming that the deprecated
APIs continue to essentially work. For a full deprecation list, please
consult the
<a href="deprecated-list.html">Javadoc</a>.</p>
<ul></ul>
<h1>
<a name="all-by-date">All changes by date</a>
</h1>
<ul>
<li>(Dec 10 '13) <a href="#issue-227345">Introduced <code>PaletteItemRegistration</code> and <code>PaletteItemRegistrations</code></a>
</li>
<li>(Apr 1 '12) <a href="#issue-200636">Deprecating ModuleInstall</a>
</li>
<li>(Nov 8 '11) <a href="#disable-palette-window">Allow to turn the auto-show of palette window on/off.</a>
</li>
<li>(Oct 21 '09) <a href="#default-visible">Make palette hidden by default for selected document types.</a>
</li>
<li>(May 5 '08) <a href="#support-text-dnd">Allowing user dropping text into the palette to create new custom code clips.</a>
</li>
<li>(Feb 22 '08) <a href="#per-document-visibility">Palette visibility is defined per document-type.</a>
</li>
<li>(Jun 12 '07) <a href="#custom-reset">Palette providers may need to define their own action that
resets the palette to its default state.</a>
</li>
<li>(Feb 27 '07) <a href="#mime-type-associations">Allow associating palette content with document mime type.</a>
</li>
<li>(Jan 30 '07) <a href="#display-name">Allow display name and tooltip to be defined directly in item's XML</a>
</li>
<li>(Jan 27 '07) <a href="#custom-refresh">Palette providers need to be notified when the palette content is being refreshed.</a>
</li>
<li>(Oct 16 '06) <a href="#help_ctx">Added helpId attribute</a>
</li>
<li>(Jun 6 '06) <a href="#api_stabilization.palette">The Common Palette API has been stabilized.</a>
</li>
<li>(Sep 13 '05) <a href="#draganddrop_support">Added support for default drag and drop operations</a>
</li>
<li>(Aug 10 '05) <a href="#client-support">Palette client support released</a>
</li>
<li>(Aug 9 '05) <a href="#version-1.2">Added a new optional attribute that can specify the width of items in the palette.</a>
</li>
<li>(Aug 8 '05) <a href="#version-1.1">Removing unnecessary exceptions from PaletteFactory</a>
</li>
<li>(Jul 21 '05) <a href="#version-1.0">Initial version released</a>
</li>
</ul>
<h1>
<a name="all-by-version">Changes by version</a>
</h1>
<p>
These API specification versions may be used to indicate that a module
requires a certain API feature in order to function. For example, if you
see here a feature you need which is labelled <samp>1.20</samp>, your
manifest should contain in its main attributes the line:
</p>
<pre>OpenIDE-Module-Module-Dependencies: org.netbeans.spi.palette &gt; 1.20</pre>
<ul>
<li>
(1.40) <a href="#issue-227345">Introduced <code>PaletteItemRegistration</code> and <code>PaletteItemRegistrations</code></a>
</li>
<li>
(1.31) <a href="#issue-200636">Deprecating ModuleInstall</a>
</li>
<li>
(1.29) <a href="#disable-palette-window">Allow to turn the auto-show of palette window on/off.</a>
</li>
<li>
(1.20) <a href="#default-visible">Make palette hidden by default for selected document types.</a>
</li>
<li>
(1.14) <a href="#support-text-dnd">Allowing user dropping text into the palette to create new custom code clips.</a>
</li>
<li>
(1.13) <a href="#per-document-visibility">Palette visibility is defined per document-type.</a>
</li>
<li>
(1.11) <a href="#custom-reset">Palette providers may need to define their own action that
resets the palette to its default state.</a>
</li>
<li>
(1.10) <a href="#mime-type-associations">Allow associating palette content with document mime type.</a>
</li>
<li>
(1.9) <a href="#custom-refresh">Palette providers need to be notified when the palette content is being refreshed.</a>
</li>
<li>
(1.8) <a href="#display-name">Allow display name and tooltip to be defined directly in item's XML</a>
</li>
<li>
(1.7) <a href="#help_ctx">Added helpId attribute</a>
</li>
<li>
(1.6) <a href="#api_stabilization.palette">The Common Palette API has been stabilized.</a>
</li>
<li>
(1.4) <a href="#draganddrop_support">Added support for default drag and drop operations</a>
</li>
<li>
(1.3) <a href="#client-support">Palette client support released</a>
</li>
<li>
(1.2) <a href="#version-1.2">Added a new optional attribute that can specify the width of items in the palette.</a>
</li>
<li>
(1.1) <a href="#version-1.1">Removing unnecessary exceptions from PaletteFactory</a>
</li>
<li>
(1.0) <a href="#version-1.0">Initial version released</a>
</li>
</ul>
<h1>
<a name="all-by-class">Changes by affected class</a>
</h1>
<h2>
<a name="org.netbeans.spi.palette.DragAndDropHandler"><code><span style="color:gray">org.netbeans.spi.palette.</span>DragAndDropHandler</code></a>
</h2><ul><li>(May 5 '08) <a href="#support-text-dnd">Allowing user dropping text into the palette to create new custom code clips.</a>
</li></ul><h2>
<a name="org.netbeans.spi.palette.PaletteActions"><code><span style="color:gray">org.netbeans.spi.palette.</span>PaletteActions</code></a>
</h2><ul><li>(Jun 12 '07) <a href="#custom-reset">Palette providers may need to define their own action that
resets the palette to its default state.</a>
</li>
<li>(Jan 27 '07) <a href="#custom-refresh">Palette providers need to be notified when the palette content is being refreshed.</a>
</li></ul><h2>
<a name="org.netbeans.spi.palette.PaletteItemRegistration"><code><span style="color:gray">org.netbeans.spi.palette.</span>PaletteItemRegistration</code></a>
</h2><ul><li>(Dec 10 '13) <a href="#issue-227345">Introduced <code>PaletteItemRegistration</code> and <code>PaletteItemRegistrations</code></a>
</li></ul><h2>
<a name="org.netbeans.spi.palette.PaletteItemRegistrations"><code><span style="color:gray">org.netbeans.spi.palette.</span>PaletteItemRegistrations</code></a>
</h2><ul><li>(Dec 10 '13) <a href="#issue-227345">Introduced <code>PaletteItemRegistration</code> and <code>PaletteItemRegistrations</code></a>
</li></ul><h2>
<a name="org.netbeans.spi.palette.PaletteModule"><code><span style="color:gray">org.netbeans.spi.palette.</span>PaletteModule</code></a>
</h2><ul><li>(Apr 1 '12) <a href="#issue-200636">Deprecating ModuleInstall</a>
</li></ul><hr>
<h1>
<a name="details-by-api">Details of all changes by API and date</a>
</h1>
<hr style="width:50%">
<h2>
<a name="palette_api">Palette API</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="issue-227345">Introduced <code>PaletteItemRegistration</code> and <code>PaletteItemRegistrations</code></a>
</h3>
<em>Dec 10 '13; API spec. version: 1.40; affected top-level classes: <a href="./org/netbeans/spi/palette/PaletteItemRegistration.html"><code>PaletteItemRegistration</code></a> <a href="./org/netbeans/spi/palette/PaletteItemRegistrations.html"><code>PaletteItemRegistrations</code></a>; made by: skygo; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=227345">
#227345</a></em>
<br>
<p>
Introduced a new annotation for registering palette items.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="issue-200636">Deprecating ModuleInstall</a>
</h3>
<em>Apr 1 '12; API spec. version: 1.31; affected top-level classes: <a href="./org/netbeans/spi/palette/PaletteModule.html"><code>PaletteModule</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=200636">
#200636</a></em>
<br>Deprecating <a href="org/netbeans/spi/palette/PaletteModule.html" shape="rect">
PaletteModule</a> - it should not
be part of the API to begin with. Now it is registered with
<a href="../org-openide-windows/org/openide/windows/OnShowing.html" shape="rect">OnShowing</a>
annotation and thus implements <code>Runnable</code>.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="disable-palette-window">Allow to turn the auto-show of palette window on/off.</a>
</h3>
<em>Nov 8 '11; API spec. version: 1.29; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=204786">
#204786</a></em>
<br>
<p>
A new branding token <code>Palette.Window.Enabled</code> in
<code>org.netbeans.spi.palette</code> package allows to turn the automatic display of palette
window on/off. When the property value is <code>false</code> then
the palette window will not show when an editor with palette
content is activated. The user must open/close the palette window
manually. The default value is <code>true</code> which means
the palette window will auto-show/hide when active editor changes.
Note: The palette window is part of <code>commonpalette</code> TopComponent group
which the form designer opens when activated. So to turn the palette
window off completely it is necessary to remove its reference
from that group.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="default-visible">Make palette hidden by default for selected document types.</a>
</h3>
<em>Oct 21 '09; API spec. version: 1.20; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=170718">
#170718</a></em>
<br>
<p>
A new boolean attribute can be set on palette's root node or
on palette's root folder in XML layer to hide the palette window
by default when a document the palette is associated with is activated.
User then must open the palette window manually for the first time.
The attribute's name is "paletteDefaultVisible" and the default
value is "true".
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="support-text-dnd">Allowing user dropping text into the palette to create new custom code clips.</a>
</h3>
<em>May 5 '08; API spec. version: 1.14; affected top-level classes: <a href="./org/netbeans/spi/palette/DragAndDropHandler.html"><code>DragAndDropHandler</code></a>; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=93002">
#93002</a></em>
<br>
<p>
If the Common Palette is associated with a text editor then it's desired to allow
users dragging and dropping text into the palette to create new custom code clips that
can be dropped into editor later on.
</p>
<p>
That can be achieved simply by subclassing the default DragAndDropHandler class
which manages all DragAndDrop-related operations in the Common Palette and turning
the text dnd support in superclasses's constructor on. The default implementation
pops up a dialog window when some text is dropped into the palette where user enters
code clip name and tooltip and optionally selects appropriate icons.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="per-document-visibility">Palette visibility is defined per document-type.</a>
</h3>
<em>Feb 22 '08; API spec. version: 1.13; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=62964">
#62964</a></em>
<br>
<p>
Now it's possible to close the palette window while e.g. editing an HTML file
and the palette will still show up when designing a form.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="custom-reset">Palette providers may need to define their own action that
resets the palette to its default state.</a>
</h3>
<em>Jun 12 '07; API spec. version: 1.11; affected top-level classes: <a href="./org/netbeans/spi/palette/PaletteActions.html"><code>PaletteActions</code></a>; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=105561">
#105561</a></em>
<br>
<p>
Now it's possible to provide an action that will be invoked when user chose 'Reset'
in palette's popup menu or in Palette Manager window.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="mime-type-associations">Allow associating palette content with document mime type.</a>
</h3>
<em>Feb 27 '07; API spec. version: 1.10; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=90213">
#90213</a></em>
<br>
<p>
The previous version of palette API mandated that editor TopComponent had to insert a
PaletteController instance into its Lookup if it wants to associate the palette with it.
Now it is possible to associate the palette also with an existing
editor without the need to change its implementation, e.g. to add code snippets
palette to java source editor.
</p>
<p>
If the mime type of active editor window has an associated instance of PaletteController
in the XML layer system then palette window opens and displays the specified palette contents.
The PaletteController from TopComponent's Lookup takes precedens over the PaletteController
found from mime type lookup in the XML layer (if any) for backwards compatibility.
</p>
<p>The new API is fully backwards compatible and there are no implications for existing
palette providers.</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="display-name">Allow display name and tooltip to be defined directly in item's XML</a>
</h3>
<em>Jan 30 '07; API spec. version: 1.8; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=90212">
#90212</a></em>
<br>
<p>
Now it's possible to specify item's display name and tooltip directly in item's
XML definition (instead of providing bundle name and keys). It's needed for items
created at runtime, for example code snippets highlighted in the editor and dropped
to the palette.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="custom-refresh">Palette providers need to be notified when the palette content is being refreshed.</a>
</h3>
<em>Jan 27 '07; API spec. version: 1.9; affected top-level classes: <a href="./org/netbeans/spi/palette/PaletteActions.html"><code>PaletteActions</code></a>; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=88400">
#88400</a></em>
<br>
<p>
Now it's possible to provide an action that will be invoked as part of palette's 'refresh' logic.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="help_ctx">Added helpId attribute</a>
</h3>
<em>Oct 16 '06; API spec. version: 1.7; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=77387">
#77387</a></em>
<br>
<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>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api_stabilization.palette">The Common Palette API has been stabilized.</a>
</h3>
<em>Jun 6 '06; API spec. version: 1.6; made by: saubrecht; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=77387">
#77387</a></em>
<br>
<p>
To indicate that this is now considered a stable API, the major release version was
incremented to 1 from 0.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="draganddrop_support">Added support for default drag and drop operations</a>
</h3>
<em>Sep 13 '05; API spec. version: 1.4; made by: saubrecht</em>
<br>
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).
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="client-support">Palette client support released</a>
</h3>
<em>Aug 10 '05; API spec. version: 1.3; made by: lkotouc</em>
<br>
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.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="version-1.2">Added a new optional attribute that can specify the width of items in the palette.</a>
</h3>
<em>Aug 9 '05; API spec. version: 1.2; made by: saubrecht</em>
<br>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.<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="version-1.1">Removing unnecessary exceptions from PaletteFactory</a>
</h3>
<em>Aug 8 '05; API spec. version: 1.1; made by: saubrecht</em>
<br>Removed IOException from the signature of methods in PaletteFactory that accept Node as an argument.<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="version-1.0">Initial version released</a>
</h3>
<em>Jul 21 '05; API spec. version: 1.0; made by: saubrecht</em>
<br>The first initial release of the Palette API.
<hr>
<p><span class="footnote">Built on September 14 2018.&nbsp;&nbsp;|&nbsp;&nbsp; Copyright &#169; 2017-2018 Apache Software Foundation. All Rights Reserved.</span></p>
</body>
</html>