MapperXML Version 1.9.6 Release Notes: Quick Highlights ================================================================ o New ComponentFactory to automatically create and bind components o Support for master/detail in value holders. o Added recycle behavior to some components. o New MapperGUI components for Swing(tm). o New ValueObject wizard added to CodeGen. o Some maintenance and bug fixes this release. New Features and Important Changes: ================================================================ o Added new HTMLComponentFactory which will automatically create components and bind them based on the HTML document. It will set the following properties: id, valueHolder, propertyName, parameter, format, and formatPattern. The createComponents method is normally called within the initForm of the ServletForm. o Added support for hierarchical data (master/detail). This is accomplished by joining the child to the parent ValueHolder via the child's parentValueHolder and parentPropertyName properties. Whenever there is a change in the parent, the child will be notified and retrieve its new Object or Collection from the parent. o Added recycle behavior to components. The Template responds to recycle messages by removing its cloned rows. o Continued development work on MapperGUI components in the com.taursys.swing package. These components function in a similar way to the MapperXML components. o Continued development work on CodeGen sub-project for MapperXML (com.taursys.tools package). Added new wizard for generating ValueObjects. Public API Interface Changes/Deprecations: ================================================================ o HttpMultiPartServletRequest methods no longer throws a generic ServletExceptions. They throw MultiPartRequestSizeExceptions or MultiPartRequestContentExceptions. They still continue to throw IOExceptions as before. o Interface ListValueHolder now also extends java.util.List. Implementations should invoke the corresponding method on the internal List. New method getPropertyValue(String propertyName, int row) added to provide means for obtaining a value from a specific row without affecting the current position. o Interface CollectionValueHolder now extends the Collection interface . Implementations should invoke the the corresponding methods on the internal Collection. o Interface ValueHolder has been modified to add methods to set/get multiple properties at once. o Refactored ValueHolders: get/setObject no longer throws ModelException. o ObjectValueHolder, VariantValueHolder and VOValueHolder now include ability to connect them to a parent value holder in the same way as the collection value holders. o Added proxy methods to MapperGUI components to access model and value holder properties. Internal API Interface Changes/Deprecations: ================================================================ o Removed old components which have been deprecated for many months and are preventing compile with Xerces 1.4.4 and 2.x: XMLProxy and XMLFactory. o Changed mapIdentifiers method in DOM_1_20000929_DocumentAdapter from public to protected. Should only be needed by subclasses. o Added methods: public Object[] getPropertyValues(String[] propertyNames, int index) throws ModelException and public int indexOf(String[] propertyNames, Object[] values) throws ModelException to ListValueHolder interface. o Visibility of following internal methods in VOValueHolder have been changed from public to protected: getPropertyAccessors(), getPropertyValue(propertyName, vo), getPropertyValues(propertyNames, vo), setPropertyValue(propertyName, value, vo), setPropertyValues(propertyNames, values, vo). These internal methods are no longer directly available in VOCollectionValueHolder or VOListValueHolder. o Major refactoring of ValueHolders. New inheritance eliminated much redundant code. New class AbstractCollectionValueHolder implements CollectionValueHolder and contains an ObjectValueHolder. o SelectModel.getDisplayOptionList no issues a debug warning rather than throwing a NotInListException if the current value is not in the list of options. o Modified PropertyAccessorException to set userFriendlyMessage property. o Modified PropertyAccessor to record exceptions using Debug (except for ModelPropertyAccessorException.REASON_NULL_VALUE_FOR_PRIMATIVE exception). o Modified Component to make addNotify and removeNotify abstract rather than just empty methods. Bux Fixes: ================================================================ o CodeGen did not use the updated user project path. It did, however, save the change in user.mpj. o HttpMultiPartServletRequest appears to append a carridge return onto end of binary file (015 octal). Problem was not following rfc1867 re: CR/LF as required line separators. o Fixed problem in XMLWriter. Comments in document were not being written. Added code to write comment type nodes. o Corrected problem for writing HTML documents by creating an HTMLWriter (subclass of XMLWriter). The HTMLWriter will produce older style HTML supported by most browsers. Specifically, it generates empty tags (
, ) without an ending tag. The document adapter inspects the document type in the createDefaultWriter method and creates either an HTMLWriter or an XMLWriter based on the type of document. The XML/HTMLWriters no longer produce the