| <!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.7?</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.7"/> |
| </head> |
| <body> |
| <h1>What's New in NetBeans Platform 6.7?</h1> |
| |
| <p>An overview of changes relating to |
| <a href="https://platform.netbeans.org/">NetBeans Platform 6.7</a>, which is the |
| Swing framework that underpins applications such as NetBeans IDE. (<a href="https://platform.netbeans.org/whatsnew/65.html">Click here</a> for the 6.5 |
| version of this document.)</p> |
| |
| <h3>New & Changed Features</h3> |
| |
| <ul> |
| <li><b>Annotations.</b> Several items that you were required |
| to register in the <tt>layer.xml</tt> file can now |
| be registered via annotations instead. Below is the list |
| of annotations introduced in NetBeans Platform 6.7: |
| <ul> |
| <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=153655">@AntBasedProjectRegistration</a> (see <a href="http://blogs.sun.com/geertjan/entry/antbasedprojectregistration">related blog entry</a>)</li> |
| <li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-settings/apichanges.html#convertor.propertyannotation">@ConvertAsProperties</a> (see <a href="http://eppleton.sharedhost.de/blog/?p=619">related blog entry</a>)</li> |
| <li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-editor-lib2/apichanges.html#added-editoractionregistration">@EditorActionRegistration</a></li> |
| <li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-projectapi/apichanges.html#ProjectServiceProvider">@LookupMerger.Registration</a></li> |
| <li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-projectapi/apichanges.html#lookupprovider-ann">@LookupProvider.Registration</a></li> |
| <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=153015">@NodeFactory.Registration</a> (see <a href="http://blogs.sun.com/geertjan/entry/nodefactory_registration">related blog entry</a>)</li> |
| <li><a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-projectapi/apichanges.html#ProjectServiceProvider">@ProjectServiceProvider</a></li> |
| <li><a href="http://bits.netbeans.org/dev/javadoc/org-openide-util/apichanges.html#ServiceProvider">@ServiceProvider</a> (see <a href="http://blogs.sun.com/geertjan/entry/org_openide_util_lookup_serviceprovider">related blog entry</a>)</li> |
| <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=161286">@ServicesTabNodeRegistration</a> (see <a href="http://blogs.sun.com/geertjan/entry/servicestabnoderegistration">related blog entry</a>)</li> |
| </ul> |
| |
| <p>Where possible, you are recommended to use annotations instead |
| of <tt>layer.xml</tt> registrations. Future releases of the |
| NetBeans Platform will include additional annotations.</p></li> |
| |
| <li><b>Suite chaining.</b> NetBeans Platform applications can now |
| include modules that belong to other NetBeans Platform applications. |
| As a result you can, for example, create a suite of modules that are |
| common to all your applications, which can then reuse them. (See |
| <a href="http://blogs.sun.com/geertjan/entry/sharing_code_between_different_netbeans">related blog entry</a>.)</li> |
| |
| <li><b>Automatic resolution of excluded modules.</b> |
| Warnings about excluded modules that the application depends upon |
| can now be resolved automatically in the Project Properties |
| dialog of the NetBeans Platform application project type.</li> |
| |
| <li><b>Declarative MIME type resolution.</b> |
| Traditionally, the NetBeans Platform recognizes files based on their |
| file extension or, in the case of XML files, by their root element. |
| However, sometimes you may need to read the content of a file, |
| via <tt>findMIMEType(FileObject)</tt> to properly determine a MIME type, |
| such as in the case of PHP files. |
| From NetBeans Platform 6.7, it is easier to resolve MIME types, <a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/doc-files/HOWTO-MIME.html">as described here</a>. |
| As a result, the MIME type resolver for PHP files is now <a href="http://hg.netbeans.org/main/file/tip/php.project/src/org/netbeans/modules/php/project/resources/php-project-mime-resolver.xml">as follows</a>. |
| For details, see <a href="http://wiki.netbeans.org/DevFaqMIMEResolver">"How can I create declarative MIMEResolver and add new file type?"</a></li> |
| |
| <li><b>More control over <tt>TopComponents</tt>.</b> Per <tt>TopComponent</tt>, |
| you can specify whether features such as maximizing, docking, and closing |
| are supported. In NetBeans Platform 6.5, you were able to do this for the whole |
| window system; now, you can do so per <tt>TopComponent</tt>, too.</li> |
| |
| <li><b>Improved Update Center support.</b> Licenses in |
| the AutoUpdate catalog have been removed, based on <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=149071">issue 149071</a>. |
| Though this enhancement is not directly visible to users, |
| it makes the plugin catalogs reload much faster and consume far |
| less memory than before.</li> |
| |
| <li><b>Improved toolbar support.</b> The implementation of the toolbars |
| in the main window has been rewritten from scratch. Now the toolbars |
| behave better when the main window is being resized. It is also possible |
| to dock any toolbar to the right edge of the toolbar area in the main window, thanks |
| to a new version of the DTD for toolbar configurations: |
| |
| <pre><!-- Document Type Declaration for toolbar configuration xml files. --> |
| |
| <!-- Root element of toolbar configuration. It's a list of Rows. --> |
| <!ELEMENT Configuration (Row+)> |
| |
| <!-- Toolbar configuration row. It's a list of Toolbars. --> |
| <!ELEMENT Row (Toolbar*)> |
| |
| <!-- Toolbar configuration Toolbar. It contains name of toolbar, |
| it's position and switch of toolbar visibility. --> |
| <!ELEMENT Toolbar EMPTY> |
| <!ATTLIST Toolbar |
| name CDATA #REQUIRED |
| visible (true | false) #IMPLIED |
| align (left | right) #IMPLIED |
| dragable (true | false) #IMPLIED |
| ></pre> |
| |
| <p>In the new DTD, shown above, which is version 1.1, the attributes "align" and "dragable" are new, |
| while "position" has been removed. General information about |
| toolbar configuration can be <a href="http://blogs.sun.com/geertjan/entry/toolbar_configurations">found here</a>.</p> |
| </li> |
| </ul> |
| |
| <h3>New APIs</h3> |
| |
| <p>Read all of the changes <a href="http://bits.netbeans.org/6.7/javadoc/apichanges.html">here</a>, with |
| new/enhanced classes as follows:</p> |
| |
| <ul> |
| <li><b>Parsing API.</b> <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=133900">New API</a> for parsing syntax and providing features, |
| such as syntax coloring and code completion. See the |
| <a href="http://wiki.netbeans.org/New_Language_Support_TutorialDevelopment_Version">New Language Support Tutorial</a>.</li> |
| |
| <li><b>I/O APIs.</b> Several enhancements that enable |
| the Output window to be displayed in different positions, |
| containing text with varying colors: |
| <ul> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOColorLines.html">IOColorLines</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOColors.html">IOColors</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOContainer.html">IOContainer</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOPosition.html">IOPosition</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-io/org/openide/windows/IOTab.html">IOTab</a></tt></li> |
| </ul></li> |
| |
| <li><b>Filesystems API.</b> Several new classes and methods, enabling you |
| to work more efficiently with files of any kind: |
| <ul> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileChooserBuilder.html">FileChooserBuilder</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileObject.html#asBytes()">FileObject.asBytes</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileObject.html#asLines(java.lang.String)">FileObject.asLines</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileObject.html#asText(java.lang.String)">FileObject.asText(encoding)</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/FileUtil.html#addFileChangeListener(org.openide.filesystems.FileChangeListener,%20java.io.File)">FileUtil.addFileChangeListener(FileChangeListener, File)</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.getConfigFile">FileUtil.getConfigFile</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.getConfigFile">FileUtil.getRoot</a></tt></li> |
| <li><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.setMIMEType">FileUtil.setMimeType</a></tt></li> |
| </ul></li> |
| |
| <li><b>Explorer & Property Sheet API.</b> |
| <ul><li><p><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-explorer/org/openide/explorer/view/CheckableNode.html">CheckableNode</a></tt> |
| is a new class that can be put into the <tt>Lookup</tt> of |
| a <tt>Node</tt>, enabling you to display |
| a checkbox next to the node in the display of explorer |
| views that support it:</p> |
| <img src="http://blogs.sun.com/geertjan/resource/video-store-checkablenode.png" alt="checkablenode image"/> |
| <p>See <a href="http://blogs.sun.com/geertjan/entry/org_openide_explorer_view_checkablenode">related blog entry</a>.</p> |
| </li></ul></li> |
| <li><b>UI Utilities API.</b> |
| <ul> |
| <li><p><tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/NotificationDisplayer.html">NotificationDisplayer</a></tt>. New |
| class that creates and shows clickable notifications in the main status line:</p> |
| <p><img alt="statusline image" src="http://blogs.sun.com/geertjan/resource/notificationdisplayer-demo.png"/></p> |
| <p>See <a href="http://blogs.sun.com/geertjan/entry/org_openide_awt_notificationdisplayer">related blog entry</a>.</p></li> |
| <li><tt><a href="http://bits.netbeans.org/6.7/javadoc/org-openide-awt/apichanges.html#StatusTextImportance">StatusDisplayer</a>.</tt> Enhancement to |
| this class, enabling you to set the 'importance' of a message in the status line. Messages set to a |
| higher importance level will replace messages of lower importance. The most important messages |
| stay visible permanently, until explicitly cleared or replaced. Previously, all status line |
| messages were removed after some time.</li> |
| </ul> |
| </li> |
| </ul> |
| |
| <h3>Deprecations</h3> |
| <p>The following are deprecated/obsolete from 6.7 onwards:</p> |
| <ul> |
| <li><b>Schliemann.</b> The declarative language approach, also |
| known as Schliemann, has been deprecated in favor of |
| the more robust Parsing API. However, you are still able |
| to use Schliemann, since it is part of the NetBeans IDE |
| distribution. Note, though, that no more development |
| of any kind will be done on Schliemann.</li> |
| <li><b><tt>Repository.getDefault().getDefaultFileSystem().getRoot()</tt>.</b> |
| Deprecated, replaced by <tt>FileUtil.getConfigRoot()</tt>. (<a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.getConfigFile">Details.</a>)</li> |
| <li><b><tt>Repository.getDefault().getDefaultFileSystem().findResource(String resource)</tt>.</b> |
| Deprecated, replaced by <tt>FileUtil.getConfigFile(String file)</tt>. (<a href="http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/apichanges.html#FileUtil.getConfigFile">Details.</a>) |
| </li> |
| </ul> |
| |
| <h3>New & Changed NetBeans Platform Tools in NetBeans IDE 6.7</h3> |
| |
| <ul> |
| <li><b>Project Properties Dialog.</b> |
| <ul> |
| <li>New "Add Project..." and |
| "Add Cluster..." in the Libraries tab |
| in the NetBeans Platform project type's Project Properties |
| dialog. These enable "suite chaining", i.e., modules or groups |
| of modules (clusters) can be added to an application via these |
| buttons.</li> |
| <li>New "Resolve" button to automatically |
| resolve modules that have not been included, |
| even though the application needs them</li> |
| <li><b>Contextual Menus.</b> When you right-click on the |
| project node of an application, a module suite, or a module, |
| the "Share on Kenai" menu item lets you upload the project |
| to a site on Kenai.</li></ul></li> |
| <li><b>New Window Component Wizard.</b> When you use the |
| New Window Component wizard, the "Basic Settings" step |
| lets you indicate whether the <tt>TopComponent</tt> will |
| be maximizable, closeable, etc. (See "More control over <tt>TopComponents</tt>" above.) |
| On completion of the wizard, |
| the related client property is added to the constructor |
| of the generated <tt>TopComponent</tt>.</li> |
| </ul> |
| |
| <h3>New Screencasts</h3> |
| |
| <p>A Free NetBeans |
| Platform Crash Course was released, to celebrate a brand new NetBeans Platform |
| book by Heiko Boeck, translated by the NetBeans Platform community, entitled |
| <a href="http://www.apress.com/book/view/9781430224174">The Definitive Guide to NetBeans Platform</a>.</p> |
| |
| <p>A two-part series was introduced during this release cycle, focusing |
| on the creation of a CRUD application on the NetBeans Platform:</p> |
| <ul> |
| <li>Part 1: Database Displayer</li> |
| <li>Part 2: Database Editor (to come)</li> |
| </ul> |
| |
| <p>The introductory screencast series Top 10 NetBeans APIs was expanded to 9 parts.</p> |
| |
| <h3>New Tutorials</h3> |
| <p>All tutorials at <a href="https://netbeans.org/kb/trails/platform.html">http://www.netbeans.org/kb/trails/platform.html</a> |
| are updated. The following are published for the first time in the 6.7 release cycle:</p> |
| <ul> |
| <li><a href="../tutorials/nbm-quick-start.html">NetBeans Platform Quick Start</a></li> |
| <li><a href="../tutorials/nbm-crud.html">NetBeans Platform CRUD Application Tutorial</a></li> |
| <li><a href="../tutorials/nbm-quick-start-visual.html">NetBeans Visual Library Tutorial for Java Applications</a></li> |
| <li><a href="../tutorials/nbm-wizard.html">NetBeans Wizard Module Tutorial</a></li> |
| <li><a href="http://wiki.netbeans.org/New_Language_Support_TutorialDevelopment_Version">New Language Support Tutorial</a></li> |
| </ul> |
| |
| </body> |
| |
| </html> |