blob: b3ae2dbeec027eb87efd238da20b97dc949ae4bb [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>What's New in NetBeans Platform 6.8?</title>
<link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css"/>
<meta name="AUDIENCE" content="NBUSER"/>
<meta name="TYPE" content="ARTICLE"/>
<meta name="EXPIRES" content="N"/>
<meta name="developer" content="gwielenga@netbeans.org"/>
<meta name="indexed" content="y"/>
<meta name="description" content="Overview of new features in NetBeans Platform 6.8"/>
</head>
<body>
<h1>What's New in NetBeans Platform 6.8?</h1>
<p>An overview of changes relating to
<a href="https://platform.netbeans.org/">NetBeans Platform 6.8</a>, which is the
Swing framework that underpins applications such as NetBeans IDE.</p>
<p><b>Note:</b> <a href="https://platform.netbeans.org/whatsnew/67.html">Click here</a> for the previous
release of this document.</p>
<h3>New & Changed Features</h3>
<p>Read all of the enhancements <a href="http://bits.netbeans.org/6.8/javadoc/apichanges.html">here</a>, with
the main new feature highlights as follows:</p>
<ul>
<li><b>Annotations.</b> Continuing the trend from NetBeans Platform 6.7,
several items can be registered via annotations. Below is the list
of annotations introduced in NetBeans Platform 6.8:
<ul>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-projectuiapi/apichanges.html#CompositeCategoryProvider.Registration">@CompositeCategoryProvider.Registration</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-settings/apichanges.html#convert.as.javabean">@ConvertAsJavaBean</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-api-debugger-jpda/org/netbeans/spi/debugger/jpda/Evaluator.Registration.html">@Evaluator</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-options-api/org/netbeans/spi/options/OptionsPanelController.ContainerRegistration.html">@OptionsPanelController.ContainerRegistration</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-options-api/org/netbeans/spi/options/OptionsPanelController.SubRegistration.html">@OptionsPanelController.SubRegistration</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-options-api/org/netbeans/spi/options/OptionsPanelController.TopLevelRegistration.html">@OptionsPanelController.TopLevelRegistration</a></li>
</ul></li>
<li><b>LayerBuilder.</b> Each of the annotations above, as well
as the others that the NetBeans Platform provides, generate
registration tags at compile time, such as in your layer.xml file.
In addition to using these predefined annotations, you can create
your own, using the <a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/annotations/LayerBuilder.html">org.openide.filesystems.annotations.LayerBuilder</a>
class, which was introduced in NetBeans Platform 6.7 and enhanced in 6.8. For all
the details, see the Javadoc for the new <a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/annotations/package-summary.html">org.openide.filesystems.annotations</a>
package.</li>
<li><b><tt>ActionListeners</tt> for Context Aware Actions and Callback Actions.</b>
Where in recent releases, <tt>ActionListeners</tt> could
be registered in the layer file as Always Enabled Actions,
<a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/apichanges.html#Actions.context">this is now also possible for other actions</a> too.
<a href="http://blogs.sun.com/geertjan/entry/the_continuing_march_of_actionlistener">More details here.</a></li>
<li><b>Declarative Asynchronous Actions.</b> By adding a single
attribute to an action registration in the layer file,
you can let the <a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/apichanges.html#Actions.asynchronous">action process asynchronously</a>. In these
cases, you therefore do not have to code an implementation
of the NetBeans Platform's RequestProcessor class.
<a href="http://blogs.sun.com/geertjan/entry/asynchronous_actions_and_netbeans_platform">More details here.</a></li>
<li><b><tt>SaveCookie</tt>.</b> In previous releases, you needed
to create a dummy node in order to work with
<tt>SaveCookie</tt>, which is the interface for integrating
with the NetBeans Platform's save functionality.
Now, you don't. <a href="http://blogs.sun.com/geertjan/entry/the_divorce_of_savecookies_from">More details here.</a>
Note that we still have no satisfactory way of generalizing <tt>SaveAllAction</tt>.</li>
<li><b>Programmatically Cause a Restart.</b> Use <tt>LifecycleManager.markForRestart</tt>
to restart an application after exiting. <a href="http://bits.netbeans.org/dev/javadoc/org-openide-util/apichanges.html#LifecycleManager.markForRestart">More details here.</a></li>
<li><b>Support for Disabled Buttons.</b> Create low color
saturation <a href="http://bits.netbeans.org/dev/javadoc/org-openide-util/apichanges.html#ImageUtilities.createDisabled">icons for disabled buttons</a>
via the new <tt>ImageUtilities.createDisabledIcon</tt>
and <tt>ImageUtilities.createDisabledImage</tt>.</li>
<li><b>Enhanced Output Window APIs</b>. Added API to
have better control of text color
and hyperlinks, which can be a big benefit
to people using the Output Window. While in NetBeans Platform In 6.7
it was possible to control the color of whole lines,
now you can use <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOColorPrint.html">IOColorPrint</a>.print()</tt> methods to
do any coloring you want. Also, you can have several
hyperlinks on a single line. <a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/apichanges.html#Color-printing">More details here.</a></li>
</ul>
<h3>Enhancements to NetBeans IDE APIs</h3>
<p>NetBeans IDE, the development tool created on top of the
NetBeans Platform, underwent several changes in its APIs
during the 6.8 timeframe.</p>
<ul>
<li><b><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-server/overview-summary.html">Common Server API</a>.</b>
This API is under development. It lets you register server implementations, without
the requirement that the server is an implementation of a Java EE specification.
<a href="http://blogs.sun.com/geertjan/entry/netbeans_common_server_api">More details here.</a></li>
<li><b><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-diff/">Diff API</a>.</b> Support
for everything related to creation and visualization of diffs.
This library lets you register various diff providers and visualizers
and provides programmatic access to their functionality.
<a href="http://blogs.sun.com/geertjan/entry/netbeans_diff_api">More details here.</a></li>
<li><b><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-api-debugger-jpda/org/netbeans/spi/debugger/jpda/Evaluator.html">Evaluator API</a>.</b> Evaluator service for a language that compiles into bytecode.</li>
<li><b>Framework specification of web.xml requirement.</b> Since
Java EE 6 does not require web applications to have <tt>web.xml</tt> files,
your framework implementations can specify whether
a web application created on the framework requires one.
<a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-api-web-webmodule/apichanges.html#Adding_requresWebXml">More details here.</a></li>
</ul>
<h3>Deprecations</h3>
<p>The following are deprecated/obsolete from 6.8 onwards:</p>
<ul>
<li>In the Options API, <tt>AdvancedOption</tt> and
<tt>OptionsPanelController.createAdvanced</tt> are deprecated
because these do not do anything you
cannot do more easily using the annotations described above.</li>
<li>In the Utilities API, Nodes API, and Actions API, you are recommended to
not use <tt>SystemAction</tt>, <tt>CallableSystemAction</tt>,
<tt>NodeAction</tt>, and <tt>CookieAction</tt> anymore. They will
be deprecated in the future. Instead, you should use the declarative actions
referred to above.</li>
</ul>
<h3>New Screencasts</h3>
<p>The following screencasts are new in the 6.8 release cycle:</p>
<ul >
<li><a href="http://blip.tv/play/AYGh7k8C">MVC, DCI, and NetBeans Platform</a></li>
<li><a href="http://netbeans.dzone.com/videos/screencast-splitting-one">Splitting a One Module Application into a Modular Application</a></li>
</ul>
<h3>New Articles & Tutorials</h3>
<p>The following are published for the first time in the 6.8 release cycle:</p>
<ul >
<li><a href="http://netbeans.dzone.com/crud-on-netbeans-platform">How to Create a Swing CRUD Application on NetBeans Platform 6.8</a></li>
<li><a href="http://java.dzone.com/news/how-to-split-into-modules">How to Split an Application into Modules?</a></li>
<li><a href="../tutorials/nbm-propertyeditors-integration.html">Integrated Property Editors in NetBeans</a></li>
</ul>
<p>Work has started on <a href="http://wiki.netbeans.org/PetriEnglishTranslation">translating a new NetBeans Platform
book to English</a>,
which will be updated to NetBeans Platform 6.8.</p>
<p>Finally, the <a href="https://platform.netbeans.org/screenshots.html">NetBeans Platform Showcase</a> has been updated with many
new screenshots of NetBeans Platform applications.</p>
</body>
</html>