Echo is an open-source framework for developing rich web applications. From the developer's perspective, Echo behaves as a user interface toolkit--like Swing or Eclipse SWT. AJAX technology is employed to deliver a user experience to web clients that approaches that of desktop-based applications. Echo applications can be created entirely in server-side Java code using a component-oriented and event-driven API (applies to Echo2 and Echo3) or as client-side applications written in JavaScript (applies to Echo3 only).
The first release candidate of Echo3 is now available. This release is identical to the very well tested SVN 2270 version. An updated release of Echo3 Extras will follow in the near future; in the interim the Echo3 Extras build 1386 should be used.
Beta2 is a complete re-imagining of EchoStudio for Echo3. The Form and StyleSheet editors have been redesigned, and now provide support for undo/redo along with faster and easier property editing. The product has been moved from a downloadable plugin to a proper Eclipse update site, such that users can easily upgrade to later releases.
A new default theme has been added to the application templates, reminiscent of the Echo3 demo application. The public domain Tango icons are additionally included. Together they can be used to create great looking applications with little effort.
All property editors have been overhauled for both efficiency and ease of use. Experienced users can (optionally) enter properties as text strings directly into property tables. For example, one could simply type "2px red" directly into a border field. Most property editing dialogs have been redesigned as well. A new menu editor allows for visually creating Extras MenuBarPane, ContextMenu, and DropDownMenu components.
Beta8 adds a much improved TabPane with the capability to render custom graphic borders around tabs. RichTextArea has been overhauled; enhancements include improved aesthetics, cross-browser support, a more standard document format, and new features such as table editing. In server-side Java applications, text components can now progressively notify the server as a user types, making it possible to create "auto complete"-type components with only Java code. Architectural improvements have been made to the framework itself, including new APIs for component developers to receive keyboard events without worrying about browser peculiarities, and an easy and fast API for rendering image-based borders.
A new Echo3 File Transfer Library has been under development during the past several months. As often requested, the upload components now provide notification of uploads from within user interface threads, avoiding unpleasant work for the developer. A new MultipleUploadSelect component is also available which wraps the Flash-based SWFUpload multiple file upload component. The MultipleUploadSelect component can be safely used in situations where Flash installation is not a certainty in the intended deployment environment, as the component will fall back to the traditional browser-based upload when Flash is not available. Other new features include the ability to limit global file upload bandwidth for a server, and to programmatically cancel in-progress uploads.
A new documentation browser is available for the Echo3's JavaScript API, and it's written in Echo. The "CoreDoc Explorer" tool can also be used to browse your own CoreDoc-generated documentation.
The "CoreDoc" tool itself has been around for some time. It is used to generate API specifications for code written using CoreJS' "Core.extend()" JavaScript inheritance model. The Echo3 JavaScript API Specification has always been generated with this tool. Previous versions were only able to output HTML, but the latest incarnation outputs XML files that are browsable by the Echo-based "CoreDoc Explorer" application.
Click here to see the Echo3 documentation using CoreDoc Explorer. Note that this documentation is for the latest SVN versions of CoreJS, Echo3, Extras, and FileTransfer (exp branch).
To ensure Echo3 applications are accessible by a broad array of users and devices, the platform has been designed to work well regardless of a user's chosen font size. Some users or environments may need text to be rendered in larger-than-normal sizes, and Echo works to avoid burdening the developer with the issues that can arise from such arbitrary sized fonts. The most notable features include the capability to specify font-relative dimensions for components and automatically position and scale container components based on the size of their rendered content. JavaScript/HTML component developers can also take advantage of cross browser content-measuring APIs and the multiple-phase rendering architecture of Echo3.
New and improved releases of Echo3 and the Extras component are available now. The big news in this release is the implementation of automatic WindowPane sizing: the component can now in many cases automatically determine its height based on the size of its content. The demonstration app has been updated to make extensive use of this feature. WindowPanes additionally now can be positioned from the bottom or right side of a region, and maximize and minimize events are supported for server-side applications. The beta7 version of the Extras library adds only minor bugfixes relative to beta6.
The default Java XML Parser configuration is not secure against untrusted content and allows for XML external entity attacks. This update modifies Echo to include custom parser configuration options to disallow all external XML entities. Much thanks to the SEC Consult Vulnerability Lab for reporting this issue. Updating to the latest version is strongly recommended.
Beta5 is out and available at the usual location.
Echo3 now has support for setting focus traversal order and offers the capability to configure various high-level behaviors from the server (such as wait indicators and failure-mode behaviors). Extras beta5 adds a Drag-and-Drop component, along with improvements to TabPane, AccordionPane, and RichTextArea components. The Echo3Extras client-side JavaScript code was also heavily reviewed and is now near completely documented.