Share

Echo Point

File Release Notes and Changelog

Release Name: 2.1.0rc5

Notes:
NEW : AutoLookupTextFieldEx

This is a textfield that has an AJAX capabile backing model of "lookup" values. You need to provide
an AutoLookupModel whichc specifies how values are matched to the users input and how the list
of possible choices is built.

NEW : StackedPaneEx

This is a Pane that can contain an number of child components (including other Panes) but ONLY ONE can
is visible at a time. The others may however be rendered on the client (lazy is default) and when you
pop the stack of visible children, the previous top child is hidden and the one under is in the stack is shown.

This is useful for "descending" in the UI. Say you have a form, that the user selects a record and you show a
related subform of data. With StackedPaneEx, you can push the subform onto the stack, have it display and then
at the click of a "return" button, display the top level form without re-rendering it.

NEW : Meta Key support

ButtonEx now captures the "meta key" information that was in play when a button was clicked. This means if you
hold down Ctrl key while you mouse click (or press space or Enter while in focus) then ths information is available
back on the server.

TableEx also now has the same feature. Also it now has a client side behaviour where multi selection follows
the normal UI behaviour like Ctrl-Click adds to the selection, Shift-Click adds from the last selected index
and no meta key click makes it single selection.

NEW : Pageable list selection on TableEx

A new ListSelectionModel has been developed and is used by default by SortableTable and PageableSortableTable so that
the user is able to make a selection "across" paged views of the underlying table data. The standard ListSelectionModel
always provides selection info in terms of the "View" but there are now extra methods for getting the selection status
in terms of the underlying model, be it paged or sorted or both.

NEW : Stretchable Support

A new "Stretchable" interface has been added and components that implement it can "stretch" themselves so fill the rest
of their parents available space. Browser by default want to make content as "short" as possible. Using 100% is not always
applicable. So Stretchable allows a component to "dynamically" calculate the available pixels left at runtime (and on resize)
and then adjust its height to fill those pixels.

ContainerEx, TabbedPane, TableEx, TreeTable, SortableTableEx, PageableSortableTableEx all support Stretchable.

NEW : ColumnHidingTableModel

This wrapper TableModel allows you to "hide/show" columns within a TableModel without actually re-creating the
underlying TableModel data.

NEW : XhtmlFragment support

A new XhtmlFragement class has been provided. Its is a way to "represent" fragements of XHTML content inside
components that support them. Echo2 by design uses "components" (such as Label) to represent content inside
components such as Table cells.

XhtmlFragment enhances this to allow you to have small fragements of XHTML embedded without the overhead of a
Component object. So its lighter weight in server memory terms than a Component. I would also argue its
easier to use then embedding a component.

The trick to using them is that the XHTML does not need to be well formed but it must be compilable when
encloded in a wrapping tag. For example "Here is <span style="background:red">red text</span>" is a valid
XhtmlFragement because, while not well formed, it will compile if if put <div>Here is <span style="background:red">red text</span></div>
around it. The fragment "Here is <span style="background:red">red text" would not be valid however.

XhtmlFragement even supports LayoutData which allows the fragement to tell its parent some display information,
just like a Component can but without the component overhead.

TableEx (via TableCellRenderEx), ButtonEx, PushButton, LabelEx, Tree all support XhtmlFragment.

NEW : TableEx

TableEx is now a kick ass component. Its retains much of the base funcitonality of Table but adds a heap more

Its has footer support, which is just like the old header support.

It has scrollable content within a given height. The header and footer stay put and the content rows
can scroll.

It has resizeable column support. You can mouseover a column in the header and resize to a new width. These
resized widths are saved into the TableEx.

Its has XhtmlFragment support and meta key support as mentioned above.

It has "specific" cell selection and "specific" cell action support. You can if you want "restrict" which cells can
cause a row selection and which cells can cause an action to be raised. You can do this on a row by row
basis as well.

The performance of all this has recently been tweaked for larger table model counts (> 1000 rows) so it works
a little faster.

NEW : ImageManager

You can use the ImageManager to find the Echo2 derived URL of a given ImageReference. This is useful when
building XhtmlFragment strings and where you want to embedd a <img> tag and you need to actual URL reference
for an icon ImageReference.


FUNCTION : Tree

Tree now tracks dirty treepaths and hence can be smarter about how it "updates" the UI to reflect the TreeModel state.
This allows for better "partial" update support in its renderer and so forth.

It also has a new scrollIntoView capabilty such that when you expand a Tree node, it "scrolls" into view if it can.
This is a bit browser dependant but it mostly works.

FUNCTION : TextFieldEx

It now supports "action on change" so that if the user changes anything from the starting value, an action
can now be raised. Its also allows it selft to be rendered as a hidden field if need be (not a common use case).

FUNCTION : Menu.styleMenuItem()

This now copies accorss the shared style of the Menu into the MenuItem along with specific properties. This
is more naturall for what people want.

FIXES : Serializable

More classes and interface now implement Serializeable and hence can be serialised by a web container as per normal.
If have reveied most of the code, but if you find any more loop holes tell me.

FIXES : DateChooser

DateChooser has a bunch of fixes in it for setting the starting day of the month and properly respecting them.

FIXES : Popup

The PopUp based components now handle clicks properly. This was broken in the rc4 release.

FIXES : IE zoom

There is some serious bugs in IE 6 and its support of position:relative. So components that use this
in their rendering now add zoom:1 to prevent display issues. ExpandSection is one of
the components affected.

This short answer is the Ie6 is a dog and we have tried to work around it.


Changes: