Highlights

Servoy Developer

Still to be done in Servoy Developer

In this second alpha, the following things are still to be done:

First Launch Experience
Servoy Developer UI
Form Editor

The Form Editor in Servoy 6 has gotten a major overhaul. The main new features are a configurable Palette, Alignment Guides for placing, moving & resizing elements and many keyboard shortcuts for new and existing functions. Also the Form editing toolbars have been inlined into the editor, instead of being part of the main toolbar area.

Palette

Alignment Guides

The Form Editor in Servoy 6 provides a sophisticated mechanism for aligning newly placed, moved or resized elements. The snapping to grid and the display of the grid have been disabled by default in favor of the new alignment guide functionality. 

The new alignment snapping guides are like the grid snapping guides, but the snapping is not based on a fixed grid, but on proximity to existing elements of the form and/or the form edges.

The snapping guides offer three configurable offsets (which both work vertically and horizontally) based on proximity to other elements and form edges and one configurable indentation size based on proximity to another element.

Optionally, Smart Anchoring can be turned on: Smart Anchoring will automatically set the anchoring properly when aligning an element to one of more edges of the Form

Also added is a click-able Anchoring feedback area on selected element. Clicking the feedback icon pops up a menu with options to quickly set the anchoring options

The feedback are on the selected element provides visual feedback on how the element is anchored. Examples:
Top & Left:  , Top & Right:  , Top, Right & Left:   & Top, Right, Bottom & Left: 

It is also possible to create custom snapping guides by right-clicking one of the rulers (The rulers must be showing). These custom guides are temporary and only for the Form Editor on which they were created. The custom guide can be removed by selecting it in the Ruler and pressing Delete. 

Same Width/Same Height functionality

New functionality has been added to make multiple elements have the same width and/or height. When two or more elements are selected, the Same Width and Same height functionality gets enabled:

When an element gets selected, all elements on the form that have the same width/height as the selected element also get a decorator to show that they have the same width/height as the selected element: 

Keyboard shortcuts

The following keyboard shortcuts have been added:

Misc.

Still to be done: 

Script Editor

For Servoy 6 the goal was to introduce automated refactoring support for JavaScript. In order to be able to do automated refactoring, the refactoring mechanism needs to be able to analyse all the JavaScript code and determine exactly what every bit of code is, what it's scope is and how it is related to other bits of code.

In order to achieve this, the entire builder process for the JavaScript source has been rewritten, to better parse and analyse all the JavaScript source code and infer typing information from it.

The result of the effort is that:

  1. Servoy now offers automated JavaScript refactoring support
  2. At design-time all code is being validated and where needed builder markers are generated (which can be ignored or result in Errors or Warnings based on configuration, see #Build process )
  3. Code-completion has improved drastically
  4. Call Hierarchy support on methods
  5. Search for References support
  6. JavaScript Search support

In order for all this to work, the builder process needs to be able to infer typing information from the JavaScript source. With JavaScript being a weak-typed and dynamic language, this information can't always be inferred from the source-code itself. The typing information that cannot be inferred from the source-code itself can be supplied using JSDoc. In order to supply all the relevant information the JSDoc support within Servoy Developer has been extended as well.

Refactoring support

Added support for automated JavaScript source code refactoring. The following refactoring options are available:

The Refactor functionality can be accessed in the Script Editor through the context menu ()

Limitations:

As JavaScript is a dynamic language, there are code structures that cannot be analysed in an automated way. 

Workarounds:

JSDoc support

Code completion

Misc.

Still to be done

CSS Editor

A new CSS StyleSheet editor has been incorporated into Servoy Developer, with the following features:

Search support

To be described

Solution Explorer view
Properties view
Profiler view
New Command Console

Servoy 6 supports a new Command Console view. The command console view is like the Interactive Console view, but with the following differences:

Servoy Developer script access

In Servoy 6 it is possible to interact with Servoy Developer from both Debug Clients and the new Command Console. The available methods are:

The .save(...) methods save the changes to the workspace and does the same as editing a Form in a Form Editor in Servoy Developer and saving the changes. 

Needles to say, this functionality is available only inside Servoy Developer. 

Debug Perspective
Build process
Miscellaneous 

Still to be done

Solution development

Behavior changes
Form Design

Conditional formatting (including row coloring in grids)

Inheritance model

The Inheritance model of Servoy has been enhanced to allow:

Due to the extension of the Inheritance model a behavior change was introduced. When asking for elements and/or parts of forms that extend other forms, the inherited elements/parts are also returned in Servoy 6, whereas prior to Servoy 6, only the non-inherited elements would be returned and the (hierargy of) super forms(s) had to be inspected

Misc.

Drag 'n' Drop

Web Client specific

Smart Client specific

Beans

Still to be done

Solution Model

Still to be done

Client Design mode
Scripting API
Web Client specific
Plugins & Beans

New OpenID plugin: Web Client only plugin to 

Dialogs plugin

DBTree(Table)View beans

PDF plugin

PDF Output plugin

Misc.

Misc.

Still to be done

Deployment

Public Java API

Misc.