# What's New in NetBeans IDE Version 3.3

This document describes the new features implemented in the NetBeans IDE Version 3.3. The list of the features is divided into several sections. Each section collects new features for related NetBeans modules. Most of the links in this document point to documents on the www.netbeans.org website.

Legenda:
  Feature Name: Name of the feature. You can click the name to get a full description of the feature.
  Description: Short description of the feature.
  Impact on users: How visible the feature is for users.
  Module: The name of the module where the feature was implemented. You can click the module name to go to the module's home page.

## Content:

1. OpenIDE
2. The Core IDE
3. Java Development
4. Debugger
5. Text Editor
6. Tools
7. Web Development
8. Version Control
9. Distributed Applications Support
10. User Interface
11. Experimental modules
12. Other uncategorized features

## OpenIDE

New features for OpenIDE
Feature Name | Decription | Impact on users | Module
Property sheet refactoring | No visible changes for user, refactoring to make future enhancements and bufixes easier. | small | OpenIDE
Separate Explorer API | Separate Explorer API from the rest of Open APIs into separate jar (just like other APIs are already separated - fs, util, nodes). | small | OpenIDE
Data Systems API enhancements | Several enhancements needed by the new implementation of projects. | small | OpenIDE
Freshen Modules API | The Modules API is crusty and should be replaced with a new class ModuleInfo. | small | OpenIDE
Module sessions | Make it possible to load a preconfigured set of modules quickly. | medium | OpenIDE
Class provenance | Provide a way for settings storage to query the provenance of module-contained classes. | small | OpenIDE
XML layer editing | Editing of XML layers. | high | OpenAPI Support
Browse lookup | Browse the contents of the default lookup. | medium | OpenAPI Support
New Module Wizard - Template iterator | New Module Wizard should be Template iterator. | medium | OpenAPI Support
New Module Wizard - Jar file | Better UI for creating target Jar file. | medium | OpenAPI Support
New Module Wizard - Templates | Defining templates for new module. | medium | OpenAPI Support
The complete full lists of new features: OpenIDE, OpenAPI Support,

## The Core IDE

New features for The Core IDE
Feature Name | Decription | Impact on users | Module
New Output Window | Replace old Output Window with terminal emulator | high | Core IDE
Change WS serialization to use XML format | Modify long-term storage of the window system to use XML rather than serialization. | small | Core IDE
Add right-click popup menu on MDI frames | MDI frames will have popup menu, filled with commands for close, iconify, maximize, attach/detach from MDI. | high | Core IDE
Make component showing without focus change | Make it possible to make a component visible, but not change focus. | medium | Core IDE
Simplify module installer | Make the implementation of the module installer simpler. | small | Core IDE
De-clutter core | Try to break apart the mass of module-related classes in the org.netbeans.core package. | small | Core IDE
Autoload modules | Permit some library modules to be loaded on demand. | medium | Core IDE
Split module serialization | installedModules.ser should not contain all modules serialized together. | small | Core IDE
Append environment variables | Ability to add to environment variables when executing. | small | Core IDE
Import of 3.2 Project | Netbeans 3.2 Projects must be importable into Nb 3.3. | medium | Projects
Switching between 3.3 projects | Switching between 3.3 projects | medium | Projects
XML format for persitence | XML format for persitence | medium | Projects
Persistent settings format presentation | Persistent settings format presentation | medium | Projects
Settings from filesystem compatibility | Settings from filesystem compatibility | medium | Projects
Updating from more AU servers at once | It should be possible update modules from more than one AU server at once. Now there can be more than one AU server defined in the IDE (AutoUpdate types), but only one is active. User should set more active (enabled) AU servers to download modules from. | high | Autoupdate
Restart after AU session | User should have an option to refuse the restart. In this case AU only places nbm files on the filesystem, and next time when the IDE is run the launcher can detects that some NBMs need to be installed and run the updater app accordingly. | medium | Autoupdate
Files tracking | All files present in an IDE installation, or added to an IDE user directory, should be tracked by Auto Update. | medium | Autoupdate
External binaries | The major problem that we are facing with a lot of modules is that they require external binaries and we are not able to deliver them together with the module. | small | Autoupdate
The complete full lists of new features: Core IDE, Autoupdate, Projects,

## Java Development

New features for Java Development
Feature Name | Decription | Impact on users | Module
ClassReader | Clazz module should really read .class files instead of using reflection, which is both slow and insecure. In addition, it does not provide information about a class when it encounters linkage errors. |  | Java support
Support different encodings | The IDE lacks means of specifying an encoding which should be used when opening or saving a particular .java file. We plan to introduce a default encoding used for java source files (just as there's an option for default compiler or executor) and per-file specific option for encoding. The NetBeans will then be able to handle each file separately when loading or saving. Compilation should also be performed with respect to source file's encoding, although there may be a problems with dependencies to differently encoded files. |  | Java support
Do not use static inicializers | Do not use static inicializers | low | Java Beans
Customize setting for generating R/W property from field. | Customize setting for generating R/W property from field. | middle | Java Beans
Regenerating bodies of method | Regenerating bodies of method | middle | Java Beans
Use superclass | Use superclass | middle | Java Beans
Allow mount Javadoc from module layer | Allow mount Javadoc from module layer | medium | Javadoc
Allow modify executor parameter for External Javadoc | Allow modify executor parameter for External Javadoc | medium | Javadoc
HTTP javadoc filesystem | HTTP javadoc filesystem | medium | Javadoc
Allow comment on packages | Allow comment on packages | medium | Javadoc
Form based on any class | It should be possible to base the form on any class, including non-visual. This requires changing the form-type specification and extending ways of form creation (e.g. also without a template). Form type conversion could be implemented too (makes sense for changes like from JDialog to JPanel, etc). | high | Form Editor
Windows reorganization | The Component Palette will be moved out of the main IDE window, should be floating and dockable (by default in a window together with individual forms grouped in a tabbed pane). The GUI Editing workspace is then no longer needed. Form Editor should support docking of its parts into various windows, according to user's wish. So the user could e.g. dock everything (Component Palette, Component Inspector, and forms) into one Form Editor Window, or conversely let the components stand separately. This arrangement would be respected when opening new forms. | high | Form Editor
Improved Component Palette | Component Palette needs to be redesigned. First -- it should not be in main window toolbar, but in Form Editor's window (displayed only if some form is opened). Second -- the current JTabbedPane implementation cannot handle more palette categories (tabs) satisfactorily. | high | Form Editor
The complete full lists of new features: Java support, Java Beans, Javadoc, Form Editor, Object Browser,

## Debugger

New features for Debugger
Feature Name | Decription | Impact on users | Module
Filtering of variables hierarchy | The current version of NetBeans Debugger shows all static / private / ... fields for variables in Watches & Variables tabs. It is useful when you want to find some details of implementation, but it can be uncomfortable for many other purposes. For example if I am inspecting an instance of java.util.Vector, I probably want to see its content not its serialVersionUID, capacityIncrement etc. So we plan to add some variable filtering capability to NetBeans Debugger. | high | Debugger
Improvements of expression parser | Currently we use JPDA experimental implementation of expression parser. But it is buggy and unsupported, so we are working on our own implementation. | high | Debugger
Redesign of Debugger Window | We plan to improve UI of debugger - Debugger Window. See User's view. | high | Debugger
Breakpoint Grouping | It is a good idea to logically organize breakpoints in the case of large projects. Grouped in a group, they can be enabled, disabled, or removed as a single unit. A group can be visually implemented by a node in the Debugger Window, tab Breakpoints. Descendant nodes should represent all breakpoints (eventually sub-groups) belonging to the group. | high | Debugger
Debugger glyph |  | high | Debugger
Add some new actions |  | small | Debugger
Improvements of breakpoints |  | small | Debugger
The complete full lists of new features: Debugger,

## Text Editor

New features for Text Editor
Feature Name | Decription | Impact on users | Module
Annotations (aka Glyphs) | Annotations is a method to highlight a part of text of the document. The text is highlighted either by special background color or by putting an icon on the gutter or both. | high | Text editor
The complete full lists of new features: Text editor,

## Tools

New features for Tools
Feature Name | Decription | Impact on users | Module
UI Improvements | Make the Jar Packager UI more intuitive and easier to use. In particular, make each entry in the jar recipe an explorer node. | high | JAR Packager
Quick target invocation | Quick access to important script targets from UI. | medium | Ant tool
Property definition wizard | Make it easy to read build properties from a properties file. | medium | Ant tool
Run target from popup | Run targets from the popup menu. | small | Ant tool
Use annotations | Use editor annotations for Ant build errors. | small | Ant tool
Upgrade to Ant 1.4.1 | Upgrade the bundled Ant library to 1.4.1. | high | Ant tool
Thumbnail property for image objects | Shows thumbnail of image in the property sheet for chosen image object. | medium | Image Files Support
Possibility to choose extension for new 'text-like' object | Possibility to choose extension for new "text-like" object Possibility to choose from supported text extesions when creating new "text" file. | medium | Text files
The complete full lists of new features: Ant tool, i18n, Image Files Support, JAR Packager, Properties files, Scripting, Text files, Utilities,

## Web Development

New features for Web Development
Feature Name | Decription | Impact on users | Module
The server integration framework as implemented for the Forte for Java, release 3.0 (Pilsen) will be moved to NetBeans builds | The Server Registry and corresponding APIs which allow integration of multiple servers. | high | JSP support
Improved support for servlets | In NetBeans 3.3, it is possible to execute and debug servlets. | high | JSP support
Make ICE browser an experimental module or change to a stable version | If the decision is made that NetBeans should continue using ICE browser, then a more stable version than the currently used version should be used. This would mean either getting a bugfix release from WindRiver or downgrading back to ICE Browser 4.0. | medium | IceBrowser
The complete full lists of new features: Applet support, External Web Browser, Internal Http server, IceBrowser, JSP support,

## Version Control

New features for Version Control
Feature Name | Decription | Impact on users | Module
Versioning Explorer | Make a specialized file-based browser for VCS operations. This would probably be an extension of Revision Explorer. | high | VCS Core
Versioning Menu Enhancements | Make a customizer menu item for the current VCS filesystem and global VCS settings. | medium | VCS Core
Cache Enhancement | Enhance the cache architecture to provide correct status information during refresh. | high | VCS Core
Grouping | Grouping of files for maintainance and execution of commands. | medium | VCS Core
Command Output Window Enhancements | Add a Copy action to Command Output Window. | small | VCS Core
Ignoring garbage files in Explorer | Add a property, that define files ignored by the IDE. | medium | VCS Core
Ability to Refresh Individual Files | Every command should have the ability to refresh the state of processed files. | medium | VCS Core
Commands Arguments History | Remember the history of arguments to VCS commands. | medium | VCS Core
Nb Independant javacvs | Module's core independant of Netbeans | small | Built-in CVS
vcscore integration | Full UI integration into the vcscore | medium | Built-in CVS
Global Options | Global options integration under Versioning settings. | high | Built-in CVS
Customizer | New Customizer for the filesystem. Only one panel. | high | Built-in CVS
Commands | Support new cvs commands | high | Built-in CVS
Error handling | Improve handling of errors that come from the library (from cvs) | medium | Built-in CVS
Grouping | Grouping of files for execution of cvs commands. | medium | Built-in CVS
Module selector | Module selector UI improvement. | medium | Built-in CVS
Commit safe-check | Commit safe-checking improvement | medium | Built-in CVS
Toolbar | Toolbar for commands' actions. | high | Built-in CVS
Coloring | Coloring in output components depending on status | medium | Built-in CVS
Customizer Enhancements | Enhance the generic VCS customizer - Cut/Copy/Paste of commands, a new Environment tab. | high | Generic VCS
Add support for CVS | Add the CVS profiles to the standard NetBeans distribution. | high | Generic VCS
Improve support for CVS | Add new commands and profiles to CVS support. | high | Generic VCS
Improve support for VSS | Improve PVCS and VSS refresh status information. | medium | Generic VCS
Off-line Mode | Provide a better off-line mode with a guess of files' status. | medium | Generic VCS
Password Saving | Add a possibility to remember the password between IDE restarts. | small | Generic VCS
The complete full lists of new features: VCS Core, Built-in CVS, Generic VCS,

## Distributed Applications Support

New features for Distributed Applications Support
Feature Name | Decription | Impact on users | Module
Wizard improvements | The wizard should be attached to the templates to provide additional actions. It may or may not replace group files. | high | RMI
Template improvements | There should be only one set of templates. | high | RMI
RMI Stub Compiler - Target folder | RMI Stub Compiler should make it possible to specify target folder for generated stubs. | medium | RMI
IIOP Stub Compiler | There should be a preconfigured compiler for IIOP. | medium | RMI
IIOP Templates | All RMI-IIOP templates should have assigned the predefined RMI-IIOP compiler. | medium | RMI
The complete full lists of new features: Jini, JNDI, RMI,

## User Interface

New features for User Interface
Feature Name | Decription | Impact on users | Module
The complete full lists of new features: User Interface,

## Experimental modules

New features for Experimental modules
Feature Name | Decription | Impact on users | Module
The complete full lists of new features: C++ Support,

## Other uncategorized features

New features for Other uncategorized features
Feature Name | Decription | Impact on users | Module
The complete full lists of new features: General Online Help,