What's new in JBuilder 2.0
The following is a list, by product area, of the new features available in JBuilder 2.0. Choose one of the following topics to learn more:
What's new in the JBuilder environment
The following feature is new in the JBuilder environment for JBuilder 2.0.
- JDK 1.1.6
The JBuilder environment is now hosted on JDK 1.1.6.
What's new in the AppBrowser
The following features are new in the AppBrowser for JBuilder 2.0.
- Type-to-search in tree views
The Navigation pane, Structure pane, Error pane, Debugger Inspector window, Watch pane and other tree views can be searched by typing the desired string. Wildcard support is included. (For more information, see the Navigating in the AppBrowser topic in "The JBuilder environment" chapter of Getting Started with JBuilder.)
- Navigation
Alt+Left Arrow and Alt+Right Arrow can be used as keyboard shortcuts for moving through the navigation history.
What's new in the UI Designer
The following features are new in the UI Designer for JBuilder 2.0.
- Copy and paste in the UI Designer
You can cut, copy, and paste components in the UI Designer. These operations are available by using the popup menus or by way of hot key combinations from both the Component Tree and the UI Designer. (For more information, see the Copying and pasting components topic in the "Designing a user interface" chapter of Getting Started with JBuilder.)
- Undo in the UI Designer
You can undo and redo a nearly unlimited number of steps, whether the change was made by you, a wizard, or the UI Designer. (For more information, see the Undo/Redo topic in the "Designing a user interface" chapter of Getting Started with JBuilder.)
- Serializable beans and serialization support in the UI Designer
You can customize a JBCL component and save it as a serialized bean (.ser file) from the UI Designer. (For more information, see the Serializing components in the UI Designer topic in the "Laying out your UI" chapter of Getting Started with JBuilder.)
- Customizer support for JavaBeans
During design time in JBuilder, any JavaBean that has a customizer will display a customizer dialog when that component is selected in the UI Designer. (For more information about creating a customizer for your JavaBean, see the Creating component customizers topic in the "Writing property editors" chapter of the Component Writer's Guide.)
- Look and feel
You can change the Windows look and feel of your application or applet to either JFC Metal or CDE/Motif. The change can be made at both design time and runtime.
(For more information, see the Changing the look and feel of your UI topic in the "Designing your UI" chapter of Getting Started with JBuilder.)
- Display options for the Inspector
You can choose how the Inspector displays in the UI Designer. The Inspector can be displayed to the right of the UI Designer, it can be embedded in the UI Designer, or can be hidden. (For more information, see the Choosing a display mode topic in the "Designing your UI" chapter of Getting Started with JBuilder.)
What's new in the Editor
The following features are new in the Editor for JBuilder 2.0.
- Code Insight
Code Insight provides helpful lists of information at appropriate times during code development.
- The code completion list contains all appropriate method calls for any given reference prefix. To display this list, press Ctrl+Space in the Editor.
- The parameter list displays parameters expected for the current method call being coded. To display this list, press Ctrl+Shift+Space in the Editor.
For more information, see the Using Code Insight topic in the "The JBuilder Environment" chapter of Getting Started with JBuilder.
- Personalized coding styles
You can now personalize your coding style by choosing the following options:
- Inner class events
JBuilder now provides the option of creating event handlers using anonymous inner classes in addition to using separate adapter classes. (For more information about anonymous adapters, see the topic Using anonymous adapters in the "Working with events" chapter of the Component Writer's Guide.)
- Indentation and compound statements
The code generated by JBuilder now respects the Editor's block indent setting when indenting text. It also provides the option of using spaces or tab characters for indenting.
-
Beans.instantiate()
You can instantiate objects by using Beans.instantiate() as well as new. (For more information, see the Instantiating serializable JavaBeans in the "Serializing JavaBeans" chapter of the Component Writer's Guide.)
For more information on creating a custom coding style, see the Customizing your coding style topic in "The JBuilder Environment" of Getting Started with JBuilder.
- Editor right-click
A right-click in the Editor now changes the selection in the Editor before displaying the popup menu.
What's new in BeansExpress
The following BeansExpress features are new for JBuilder 2.0.
- Bean tab
The Bean tab on the right side of the AppBrowser, below the Content pane, displays the BeansExpress designers:
- Property Designer
The Property Designer allows you to design properties for your JavaBean. You can add new properties, with their associated getter and setter methods, and you can change the names and types of existing properties.
- BeanInfo Designer
The BeanInfo Designer displays additional property information for your JavaBean. This designer allows you to expose a property and change certain attributes of the properties that are exposed. The BeanInfo Designer will generate a new BeanInfo file for the current JavaBean.
- Event Designer
The Event Designer displays a list of event types that the current JavaBean can generate, as well as a list of event types that your JavaBean can listen for. The Event Designer also allows you to create your own events, and will generate the appropriate EventObject class and EventListener interface.
- Property Editor Designer
The Property Editor Designer allows you to define custom property editors that can be used to edit properties in your JavaBean.
For more information, see Creating JavaBeans with BeansExpress.
- Enterprise JavaBean Wizard
The Enterprise JavaBean Wizard, available from the BeansExpress page of the ObjectGallery, creates a non-visual JavaBean component that runs on a server.
- BeanInsight
BeanInsight examines a Java class and reports whether the class is a valid JavaBean.
For more information, see Creating JavaBeans with BeansExpress.
What's new in project management
The following Project Management features are new for JBuilder 2.0.
- Project Properties dialog boxes
There are now three dialog boxes that set project properties:
- The Default Project Properties dialog box (Tools|Default Project Properties) sets properties for all new projects.
- The Project Properties dialog box (File|Project Properties) sets properties for the current project.
- The Environment Options dialog box (Tools|IDE Options) sets global project properties that take effect immediately.
- Specifying paths
Paths are now specified in a much more intuitive manner in the Project Properties, Default Project Properties, and Environment Options dialogs. (For more information, see the Setting project properties topic in the "Creating and managing projects" chapter of Getting Started with JBuilder.)
- JDK Switching
JBuilder can now compile and run against any JavaSoft JDK from 1.0 through
1.2 beta. (For more information, see the Setting project properties topic in the "Creating and managing projects" chapter of Getting Started with JBuilder.)
- Autosave on project compile
This option automatically saves all files in a project before a compile. It can be set as a global default for all new projects and on a project-by-project basis. (For more information, see the Setting project properties topic in the "Creating and managing projects" chapter of Getting Started with JBuilder.)
- Run shortcut key
F9 now runs the project (Run|Project).
What's new with internationalization
The following internationalization features are new for JBuilder 2.0.
- UI Designer support for ResourceBundles
The UI Designer now allows you to write text displayed in your application's user interface to ResourceBundle classes. To resource text strings individually, select a text property in the Inspector, right-click, and choose ResourceBundle. Once you resource a string to a ResourceBundle, updates made to this text value in the Inspector are also updated in the ResourceBundle.
- Resource Wizard
The Resource Wizard automatically examines all strings in your project and indicates whether a particular string should be resourced. Once you resource a string to a ResourceBundle, updates made to this text in the Inspector are also updated in ResourceBundle.
- PropertyResourceBundles
PropertyResourceBundles are supported. PropertyResourceBundles are resource files stored as text files with a .properties extension.
- ListResourceBundles
ListResourceBundles are also supported. ListResourceBundles are implemented as .java class files and offer better performance than PropertyResourceBundle classes.
For more information, see the "Internationalization with JBuilder" chapter in Building Applications with JBuilder.
What's new with error reporting and debugging
The following error reporting and debugging features are new for JBuilder 2.0.
- Improved error reporting
If a problem occurs in your code, it is reported in a more meaningful fashion, including:
- The actions you took before the error.
- A stack trace that can be copied to the Clipboard.
- Debugger shortcut key
Shift+F9 now runs the Debugger (Run|Debug).
What's new with distributed applications development
The following features for distributed applications development are new in JBuilder 2.0.
- VisiBroker
JBuilder now supports VisiBroker for Java 3.2.
- Defining and compiling interface files
Processing of interface files (including IDL, RMI, and Java) has been integrated into the IDE. You can now select an individual file in the Navigation pane, right-click and choose Java Source Properties to open the Java Source Properties dialog. This dialog allows you to generate
- An IDL file from a Java interface
- An IIOP interface from a Java interface
- RMI stub and skeleton files from an RMI interface
- A JNI header file
For more information, see the Java Source Properties dialog box topic and the "Overview: Creating a distributed application in JBuilder" chapter of the Distributed Applications Developer's Guide.
- CORBA Settings Wizard
The task of the former CORBA Settings Wizard is now accomplished by right-clicking an IDL file and choosing Run.
- IDL compile error messages
Errors displayed when compiling an IDL file are now presented in the same manner as normal compile errors, including direct links to source.
- Tools menu
VisiBroker Smart Agent and RMI Registry can be toggled on and off from the Tools menu. For more information, see the Tools menu topic and the "Overview: Creating a distributed application in JBuilder" chapter of the Distributed Applications Developer's Guide.
- CORBA Server Wizard
The CORBA Server Wizard has been moved to the VisiBroker page of the ObjectGallery.
- Servlet Wizard
JBuilder now provides a Servlet Wizard that will handle two kinds of servlets:
- A servlet that processes the output of an HTML form.
- A servlet that generates HTML code to be embedded in the HTML file that specified it.
For more information, see the Servlet Wizard topic and the "Servlets" chapter in the Database Applications Developer's Guide.
For more information on distributed applications, see the Distributed Applications Developer's Guide.
New feature: Borland Deployment Server for Java
The Borland Deployment Server for Java is included with JBuilder 2.0.
- Deployment Server for Java
With the Borland Deployment Server for Java, you can deploy your full-fledged Java application like an applet, but without applet restrictions. Applications are installed once on a server, then they are seamlessly accessed by remote clients on any platform. Updates are centrally administered and immediate.
For more information, see the Borland Deployment Server for Java User's Guide.
New feature: Swing components
JFC Swing components are included in JBuilder 2.0.
- JFC Swing components
The JFC Swing components (version 1.0) are on the Component Palette. JBuilder has added built-in support for container delegates (getViewport and getContentPane) for code generation. JBuilder also has added menu designer support for JMenuBar, JMenuItem, and so on. The UI Designer interprets all of the Swing components as Containers. (For more information, see the JFC 1.1 (Swing) Documentation.)
- Use JDK and Swing-only
You can now base your application or applet on only JDK and JFC Swing classes by checking the Use Only Core JDK And Swing Classes check box on the Application and Applet Wizards. For more information, see the online help for the individual wizard.
New feature: dbSwing components
dbSwing components are new in JBuilder 2.0
- dbSwing components
The dbSwing components extend the JFC Swing components by making them data-aware. They cover most of the Swing components, including navigation and editing components. Each dbSwing component adds a dataSet and columnName property to the Swing visual components. dbSwing components are in a new JBCL package called borland.dbswing.
What's new in the JavaBeans Component Library (JBCL)
The following JavaBeans Component Library (JBCL) features are new for JBuilder 2.0.
- Swing-based architecture
The JBCL components are now lightweight and based on Swing architecture. JBCL components now extend JComponent, which provides the benefits of transparency, tooltips, and a pluggable look and feel. As you use the new components, you will notice improvements in performance, keyboard handling, and customizability. (For more information on lightweight components, see the Lightweight components topic in the "JavaBeans components" chapter of the Component Writer's Guide.)
- Serializable components
All JBCL components are now serializable. (For more information on creating serializable components, see the "Serializing JavaBeans" chapter of the Component Writer's Guide.)
- GridControl component
The new grid features include live resizing and reordering of columns, exposed headers for customization (VectorViews), and single click editing. (For more information, see GridControl.)
What's new with DataExpress
The following DataExpress features are new for JBuilder 2.0.
- DataSet classes
- Streamable DataSets enable you to create a Java object that contains all the data in a data set. (For more information, see the "Streaming data" chapter in the Database Application Developer's Guide.)
- DataSets now support the Java Object type for columns. (For more information, see the "Using variant data types" chapter in the Database Application Developer's Guide.)
- Column painting and editing events for customizing display attributes on a cell
by cell basis. (For more information, see the "Working with columns" chapter in the Database Application Developer's Guide.)
- DataSet has new methods for retrieving the rowCount for inserted, deleted, or updated rows.
- StorageDataSet has a new changesPending method that returns true if there are any inserted, deleted, or updated rows.
- New options for Database.saveChanges(). (For more information, see Database.)
- Insertable property in Column.
- Column Designer
There is now a designer for adding and arranging columns in a DataSet. To display this designer, select a TableDataSet, ProcedureDataSet, or QueryDataSet in the Component Tree, right-click, and choose Activate Designer. A grid with the existing columns and their selected properties is displayed. You can update the grid as needed. (For more information, see Column and the "Working with columns" chapter in the Database Application Developer's Guide.)
- Resourceable SQL statements
The SQL statements entered using the Query and Procedure Property Editors for QueryDataSets and ProcedureDataSets can now optionally be resourced into a separate file. This is intended to provide a logical separation between the code which uses the SQL statement and the contents of that statement.
(For more information, see QueryDescriptor and the Placing SQL text in a resource bundle topic in the "Accessing data" chapter of the Database Application Developer's Guide.)
- Tighter DataModule Integration
There is now a wizard to help you select a DataModule. You no longer need to write code to refer to a DataModule from another file. To display this wizard, choose Wizards|Use DataModule. (For more information, see DataModule and the "Separating database access logic and business rules from the user interface" chapter of the Database Application Developer's Guide.)
- Aggregate Property Editor
The Aggregate Property Editor allows you to create AggDescriptor objects for columns visually from within the UI Designer, rather than by hand. (For more information, see AggDescriptor and the Aggregating data with calculated fields topic in the "Using calculated columns" chapter of the Database Application Developer's Guide.)
- Improved PickList support
JBuilder now offers three options:
- Lookup - When a data set is displayed, one or more added columns are filled in from the PickList data set. In JBuilder 1.0, the fill-in was defined using a calcFields event handler; now it can be done with a PickListDescriptor.
- PickList - When a field is edited, a PickList is displayed. Values from the selected row of the PickList data set are filled into the main data set. This is the JBuilder 1.0 method.
- PickList and lookup - The PickList works as described above, except that now the column on which the PickList is defined serves a second purpose: it keeps its defined data type and data values, but displays data from a column in the PickList data set. This is useful for code tables.
For more information, see PickListDescriptor and the Looking up choices with a pick list tutorial in the Database Application Developer's Guide.
- Master-Detail
There is improved master-detail support for masters with multiple detail DataSets. In addition, the DataSet class has new methods for enumerating and opening a master DataSet and detail DataSets.
For more information, see the following topics:
- Multi-Table resolution
The query resolver is now able to resolve SQL queries that have more than one
table reference. The metadata discovery will detect which table each column
belongs to. (For more information, see the Resolving data from multiple tables topic in the "Saving changes back to your data source" chapter of the Database Application Developer's Guide.)
- New load options for QueryDescriptor and ProcedureDescriptor
There are now four load options, defined as static variables in Load:
- Load everything initially (limited by maxRows).
- Load the data asynchronously.
- Load part of the data until more is needed.
- Load one row at a time.
For more information, see the Load interface and Dissecting the query dialog topic in the "Accessing data" chapter of the Database Application Developer's Guide.
- EditMasks
The EditMask and DisplayMask Property Editors help you set editMask and displayMask properties. You can choose a predefined commonly-used pattern or enter a new pattern and save it for later use. You can also test the selected pattern. (For more information, see EditMask property editor, DisplayMask property editor, and Adding an Edit or Display Pattern for data formatting.)
- Persistent DataStore
There is a new JBCL package called borland.datastore. The DataStore component provides high performance data caching and compact persistence for DataExpress datasets, files, and Java objects.
(For more information, see the "Understanding JBuilder database applications" and "Storing data locally using DataStore" chapters of the Database Applications Developer's Guide.)
What's new in the JGL
The following feature is new in the Generic Collection Library for Java (JGL).
- JGL 3.1
The JGL Library has been updated to version 3.1. Some of the package names have changed.