The following provides an overview of some major new features present in Echo3 (compared to Echo2). This list is not yet complete.
Server-Side Java Features
Developer Experience Improvements
- Simplified Client/Server Synchronization Peers: Serializing components and commands between client and server is performed automatically using the built-in serialization architecture. The component developer only need specify which properties should be sent (for components, all local style properties are automatically sent).
User Experience Improvements
- Improved Layout Engine: Echo3 features an improved layout engine which can automatically size components to their content (e.g.,
- Reduced Bandwidth: Echo3 uses approximately 30-40% of the bandwidth of a comparable Echo2 application. StyleSheet information is sent to the client only once (the entire stylesheet is serialized to the client at boot).
- Reduced Server Load: Due to the fact that the server is no longer rendering HTML, it has quite a bit less work to do. The reduced bandwidth usage means less server CPU and memory utilization for rendering.
- Keyboard Navigation / Focus Management: Focus amongst components is now fully tracked. Echo does away with the practice of using sequential tab index numbers to control focus order, instead presenting next/previous element focus events to components for a more intuitive user interface. Components that have multiple "focus points" especially benefit from this feature.
Client-Side Application Framework Features
- Delayed Batch Rendering: The client application framework renders changes to its component hierarchy in batches, much in the same fashion as the client/server version of the Echo framework. This strategy increases rendering efficiency and eliminates potential screen flickering issues.
- Application Rendered Components (ARCs): Client-side component synchronization peers may render components to HTML by creating a container HTML element (e. g., a <DIV>) and then loading a new client-side-only Echo application within the DIV. The Echo3Extras Rich Text Editor uses this feature to display a MenuBarPane, WindowPane-based dialogs, ColorSelects, toolbars and other UI elements. By writing the Rich Text Editor as a client-side Echo application, much time was saved and the editor is far more feature rich. Additionally an application rendered component can pull style data from the parent application's stylesheet, such that the appearance of its rendered Echo components will mimic that of the containing application.
- Method References: The CoreJS module defines a concept of "method references" for callbacks which are used throughout the client-side framework. Method references can be used when registering event listeners on components, DOM elements, and arbitrary script objects such that generated events will be fired to a method of a specific object instance.
- DOM Event Processor: All DOM events are now handled by the CoreJS DOM event processor, enabling the use of capturing event listeners on all platforms (Internet Explorer does not natively support capturing listeners).
- Off-screen Rendering: Infratstructure is available to provide off-screen rendering to the DOM, such that sizing calculations may be performed on rendered HTML before placing it onscreen. This method is used by the WindowPane component, for example, to automatially size title bar height.
- (Extras) RichTextArea: Provides a highly customizable rich text editing implementation.
- (Extras) Tree: Provides a model-based Tree/TreeTable implementation.
- (Extras) Group: Provides a bordered region with an optional title.
- (Extras) ToolTipContainer: Provides capability to apply tooltips to arbitrary components.