In memory string filtering (DelaultDef) now uses a java.text.Normalizer.
AJpaDataGridModel.getCollectedValues() to collect all values in a column, useful for excel like filtering. Better in memory filtering support (setFilterInMemory()).
Some css styles have been removed from the ifw2 defaults to better personalize the final application.
html5 placeholder attribute on TextTag.
Scroll gestures on iOS and Android.
several bugs fixed.
1.33
A field can now change its value while self-validating. Used by AFormattedTextFieldWithChoiches to change its value when the selectable-values list changes and the current value is non admitted any more.
IPojoForm.getPojoVersion() any time it changes a new pojo has been provided to the form, which means that form fields have been re-initialized.
1.32
bugfix: empty cross model.
bugfix: error when opening a dialog from a tab nested in another tab.
bugfix: endless loop when filtering in memory.
AJpaGridModel.fetchCurrentPojoDependencies(...)
bugfix: scrollbars and paging (see Error id: 33315285 / 2011-09-16 10:01:39)
Improved errors reporting (OutOfSyncException).
1.31
OnDiskChunckedList greatly improves memory handling for large AJpaDataGriModel. It is used by default when paging is active.
IDataGridModel.containsSearch().
Can include nulls when filtering on data grid models
some bug fixes
1.30
IColumnGroup to group-up columns on ui grids.
APojoCrossModel and cell-cursor on DataGridFlow.
Usability: place a button on an editing calendar or lookup field.
Initial support for Motorola Xoom Android Tablet. added: - ModalFooter.jsp - RenderContext.getWebViewVersion() to check if the application is running in an ifw2wv apk
Changed meaning to browser-platform: null means undetected, ANV : Android +version, IPx : IPAd, IPHone, IPOd
Added precompiled jsps for Tomcat 7 under then net.infordata.ifw2.web.jsp7 package.
Can remove a row even while editing if the model supports it
MultiSelectionListFlow more programmers friendly.
Flow.isInErrorState(). Can be used (see TabbedFlow) to check if a flow contains forms with errors. Can break compatibility with ABndsFlow direct sub-classes since a new abstract method has been added.
some bugfixes
1.27
Added support for IE9 and FireFox 4
MessageArea highlighted keys are now "active", ie you can click on them
some bugfixes
1.26
small specs fixes
bugfix: when setting the locale the default locale is replaced !!!
1.25
search button on sortable grids.
AJpaFolderModel deep-search.
WEBUtil.reduceString(...) removed, use Util.reduceString(...) instead. The DefaultCellDecorator now doesn't wrap words.
DialogBoxFlow can now have predefined icons using DialogIconEnum.
fix: Select html element onChange event not delivered with Chrome and FF. Fixed on Chrome but not on FF.
added IFieldWithChoices and AFormattedTextFieldWithChoices, basically a FormattedTextField much more combo-box "friendly".
corrected scroll-bar behavior.
JpaUtil.fetchAll(...) methods usable to ensure fetching of all metamodel properties from db, collections included.
bugfixes on props pkg: Accept an overridden get method with a subclass of the original return type. A property can have the read method defined in a superclass and the write method in a subclass.
APojoEditable* act now more like an AJpaEditableGridModel
1.24
bugfix: unusable SelectTag with a binded SelectField
IPojoEditableGridModel.replaceInsertedPojo(C)
bugfix: do not show a message multiple time when a FormRef is present
group up chars on the client side before sending actions binded to KeyEnum.ANY_KEYPRESS
"showDefaultButtons" property on grids
IGridHorzResizer.adaptMaxDisplayedTextLength(int)
Before exiting the validation process verify again if a (formatted) field needs to be revalidated.
bugfix: absolute positioning must take care of borders.
EditableGrid can have column headers (disabled by default). Default Keys are binded to insert, edit and remove actions. It acts more like an ADataGridFlow, you can now put buttons or links binded to actions in its cells.
AJpaFolderModel: Performances improvement on node refresh. Breaks compatibility.
AJpaUniquenessValidator accepts more than one field. Breaks compatibility.
jar alignment with hbr3.6.
bugfix - too many focus-changed notifications.
FormRef and Form now shares a common interface named AForm, it should be used instead of Form. Can break compatibility.
Consider JPA JoinColumn and not only Column for nullability
A read only field is a disabled field for which the state should not be transferred to the underlying model.
some bugfixes
1.22
MultiSelectionGridFlow
FormattedTextField.isCacheValid()
Specfix and clarification of the interaction between APojoLookupFormatter and PojoLookupAction when a null id-value is found
Small interface changes for AJpaFormatter and AJpaLookValidator classes. Can break compatibility.
Padding left and right on grid cells (css)
It is possible to combine IFlowAsDialog maximized and width property to have a vertically maximized only dialog
IFlowPersonality interface fixed
Navigation buttons on grids are now invisible by default (except for ie6)
Enhanced DialogBoxFlow flexibility with the introduction of IDialogResult
some bugfixes
1.21
Scroll-bars on DataGridFlow, EditableGridFlow and TreeGridFlow.
Dialog content is now by default not scrollable, use AsDialogFlow.setContentScrollable(boolean) to change it.
ModelActions.Cancel and ModelActions.Post now can handle child-editable-models, see how to use them in the GroupFlow sample.
EditableGridFlow supports fast-edit, see FastEditEnum.
Added attribute noGroupsForSoleLeafs to PojoGroupingModel, that means: do not create groups if they are composed by only one leaf, leave the leaf as is.
AJpaFolderModel: leave nodes expanded on reload.
FlowContext.setRestoreUriState(String) is now public.
Flow.setComponentListener() can be invoked even if a listener has been already setted, you can change the listener now.
some bug fixes
1.20
i18n
IDialogDecorator
bugfix: javassist generated properties are not properly serialized
bugfix: page context is not serializable so null it when not needed
keys and mouse actions can now be targeted to the DOM document
indent column on a tree-grid now has its own css class style "indent"
ITab.getWidth()
JPaUtil toPName() and to toProperty() usable to combine jpa 2 generated meta-model attribute names (javax.persistence.metamodel.Attribute)
busy indicator when long running ops are executed on the server side, ie. the browser doesn't get locked
ecs restyling (instead of static methods with many parameters use "builders" with setXXX() methods)
bugfix: when a popup is closed, re-parent any "child" dialog
never use a primitive type with pojo properties, use their counterpart instead.
FormRef class usable to share a form between several flows.
AJpaGridModel now provides a getPK() implementation (thanks to jpa 2).
ifw2 and jpa initialization via listener, the web.xml file entries are changed and incompatible with the past. See the "setup" how-to or the sample application.
added MenuBar
added EnumModel
added support for sub-classes properties to PojoForm and APojoGridModel.
AJpaDataGridModel now supports in memory filtering and sorting. Added IJpaColumn objects hierarchy. Can break compatibility with existing code.
support for JPA 2 and bean-validator
several bug fixes.
1.17
CSSDummyParser with support for macros such as ##contextPath()
removed unneeded IMessageToken, they must be replaced by "normal" enums
Form now implements IFormView for better interchangeability
specfix: FormattedTextField do not invalidate parsed cached value if the text value does not change
specfix: for select tag validateOnChange is true by default
a select/option tags combination can now simply replace a radio-group/radio combination
you can now define "common" action-keys in a parent form, they are shared by all nested forms
tomcat 6.0.24
better rendering on IE8, Chrome and FF
several bug fixes.
1.16
Sub-popup menus.
Tested with was 7 (pre-compiled jsp do not work, please follow these instructions or take a look at the web.other.xml war descriptor of the "ifw2.test02" sample application).
"cursorAtEndOnFocus" attribute for TextTag.
"validateOnChange" attribute on TextTag and TextAreaTag.
KeyEnum.ANY_KEYPRESS keyboard action.
"searchOnSortedColumn" action in ADataGridFlow.
AJpaFolderModel zoomIn() and zoomOut().
"skipFocus" attribute on FormTag.
added missing bnds-select and added validateOnChange attribute on SelectTag
ITaskCallback (can break compatibility with existing code)
some bug fixes.
1.15
Two new ITreeGridModel implementations: AJpaFolderModel and AJpaEditableFolderModel. They can be used to reproduce a sort of file system hierarchy in which its nodes are jpa persistent pojos.
"enhanceCurrentFormVisibility" web.xml context-parameter, which can be used to disable this added behaviour, ie. the "focused" ifw2-form is more "visible" than other forms (on IE6 and IE7 the effect is not visible).
Wait animation.
TaskContext.lock(). A parallel task submitted with the FlowContext can now avoid to overlap its execution with its related ui serving thread.
Removed useless method equals(IFormValidator) from IFormValidator. Can break compatibility with existing code.
"parentFromTagStack" attribute for div and tbody tag. This enables the splitting of the flow rendering in more than one jsp.
Popups on rows, enabled by default on EditableGrid.
Improved ICellDecorator.
"showRowNumber" property on DataGrid, TreeGrid and EditableGrid.
"alignment" property on IColumn and ITextField.
DataGrid and TreeGrid now have column popups enabled by default. Added menu items "sort asc" and "sort desc".
Better paging support for IGridModel implementations. "gotoLastKnown" property on ModelActions.Last.
"headerHeight" property for DataGrid and TreeGrid.
redoRenderer() is handled on the server side, no client ajaxRefresh() is used.
formToPojo() is not executed on validation if the form is read-only.
Code reorganization and a bug fix in the Form validation algorithm.
Where available use querySelectorAll() instead of cssQuery (IE 8, FF 3.5 and Chrome 3).
Missing "if" attribute in label tags.
RegexFormatter.
specfix - IFormatter added cast() method.
some bug fixes.
1.12
reload(...) and fetchDependencies(...) moved from AJpaEditableGridModel to AJpaGridModel (breaks compatibility with existing code). fetchDependency(...) renamed to fetchDependencies(...).
setActiveTab(...) in TabbedFlow.
Can open a dialog while restoring flows states from an url.
Pluggable FilterDef for ADataGridFlow subclasses.
APojoFormatter hierarchy.
Eclipse Galileo.
NumberFormatterSpecs for NumberFormatter.
Added IFormValidator2 and the APojoFormValidator adapter.
slf4j 1.5.8, javassist 3.9.0GA and commons-fileupload 1.2.1.
Changes to field constraints are tracked while validating a form.
Optional move up/down actions in EditableGridFlow.
Better handling of column without editing fields in EditableGridFlow.
get/set title on IField.
some bug fixes.
1.11
Popup menus.
Added attribute targetToDOMParent to KeyActionTag, MouseActionTag and ScriptActionTag.
Some bug fixes.
1.10c
When a modal dialog is open the rendering phase has been speeded up by avoiding to render the dialog parent flow, a dialog can force the rendering of the parent flow by using the renderAll() method of FlowContext.
Mouse wheel bug fix
1.10
ifw2m and ifw2p are not part of the main distribution anymore since ifw2 now includes a new model architecture based on java interfaces (see DataGridFlow and TreeGridFlow). They have been moved in the ifw2-legacy package for compatibility with the past.
Not multi-part forms can now be nested
cglib has been replaced by javassist
log4j has been replaced by slf4j
New sample which uses new components and new model architecture
Several minor changes and bug fixes
1.03
ifw2, ifw2m and ifw2p
This is a maintenance release with minor bugs and specs fixes.
1.02
ifw2
A flow implementing the IFlowUriDependent interface can store and restore its state from an url.
ifw2m
An end user can now change the layout of TableGridFlow and TableTreeFlow, this is not enabled by default, use the setLayoutable(boolean) method.
1.01
ifw2
A flow can now be used as a popup.
A popup is a Flow with an IFlowComponent personality with the following added features:
It can be positioned relatively to a field
On flow end a callback is invoked (very likely to an IFlowAsDialog)
It is automatically closed when focus reaches one of its parents
The Calendar is now implemented as a popped up Flow.
The new version is locale aware and can be much easily extended and reused.
ifw2m
TableGridFlow, TableTreeFlow and EditableGridFlow can now show portions of text data, and on user request, with a popped up flow, the complete text data.
1.00.FR
The 1.00 final release.
Several bug and spec fixes.
ifw2
Application modal dialogs
IFlowAsDialog.onFrameRendering()
ifw2m
TableGridFlow data filtering support
Mouse wheel delta handling
DefaultCellDecorator - boolean values are rendered by default as check-box
1.00.RC4
This is very likely the last beta release before the final 1.00 release.
Several bug fixes.
ifw2
Stroke with images and Stroke spacer.
Error notifications.
DialogResultAction.onBeforeExecute().
Window resize event, server side notification.
Maximized dialogs.
Support of IClientSideAction in SubmitTag and ActionRefTag.
IForm.validate() must return a boolean.
TextTag password attribute.
Revisited flow personality acquisition, instead of "flow.new AsDialoFlow(...)" use "flow.asDialog(...)".
Removed the net.infordata.ifw2m.web.jsp.Lookup_jsp precompiled jsp. (Remove it from your web.xml)
RowActionInfo.getClientParameters() and improved mouse wheel handling.
ifw2m
TableGridFlow.setRowHeight().
ITableResizer, PropTableResizers, stategies to resize tables when the browser client area changes.
Abstract classes AListFlow and AMultiSelListFlow for single and multi selection of values.
DefaultCellDecorator now renders Boolean values as check boxes.
1.00.RC3
Several bug fixes.
ifw2
Added CompressionFilter, greatly improves responsiveness on slow connections.
ObjectTag, use it to embed objects such as pdf documents on ifw controlled pages.
title attribute on tags.
Disabled fields can now be rendered as readonly fields.
TextAreaTag
Dialogs can now be opened in a Flow.beforeRenderingMethod(boolean)