| UIX Developer's Guide | Contents |
Previous |
This appendix describes changes to UIX since JDeveloper 9.0.3 (which corresponds to UIX 2.1.8 through UIX 2.1.16). It includes the following sections:
PPR enhancements include the following:
The <subTabLayout> component has been enhanced to support
partial page rendering. When partial page rendering is enabled (partial
render mode is set and an ID is specified), the
<subTabLayout> component uses partial page rendering
to update itself when the user switches between sub tabs.
The partialRenderMode attribute now supports a new mode which
allows multiple partial targets to be registered. When the partialRenderMode
is set to multiple, UIX registers any partial targets specified
via the new partialTargets attribute. For example, the following
sample code shows a hideShow component with multiple partial
targets:
<hideShow id="hsID"
partialRenderMode="multiple"
partialTargets="target1 target2 target3"/>
<textInput id="target1"/>
<textInput id="target2"/>
<textInput id="target3"/>
Note that the ID of the node which triggers the partial page event (in
this case, the <hideShow>) is automatically included
in the set of partial targets. The new multiple mode and partialTargets
attribute are now supported by all components which support the partialRenderMode
attribute.
The <lovInput> component now supports the partialRenderMode
and partialTargets attributes. Prior to UIX 2.1.8, partial
page rendering was used to send lovUpdate and lovValidate
events by default. As of UIX 2.1.8, clients must explicitly set the partialRenderMode
to self or multiple to enable partial page rendering
for the <lovInput> component.
The utility method PartialPageUtils.forceRedirectURL() has
been added. This method can be called in response to a partial page event
to force a redirection to another page. Clients can either call this method
instead of rendering a partial page response or can call this method if
an error (or Exception) occurs during the partial page rendering pass.
The utility method PartialPageRendererUtils.supportsPartialRendering() has been
added. Clients can call this method to determine whether the partial page rendering is
supported by the user agent and accessibility mode for the current rendering
pass. Note that in general clients should not need to check whether partial
page rendering is supported, since the UIX Renderers automatically detect
this and behave appropriately. However, this method is provided for clients
who are implementing their own renderers and also to address a specific
LovInput scenario.
LOV enhancements include the following:
The LOV window now comes up on every click of the Search icon. If the value
in the input field was changed, a validation event is also generated. In
cases where the validation sets showWindow to true,
a new window is not displayed, because the open LOV window will have filled
the request. If the <lovInput> field is blank, no validation event is generated
when the Search is clicked, regardless of the setting of the validateBlanks
attribute. (However, a blank field is still validated when validateBlanks is set
to true and the user navigates away from the <lovInput> field.)
In browsers that support the encodeURIComponent() JavaScript
call, the inputValue will be encoded using it. This preserves
Unicode input values.
Configuration information is now honored in the LOV window.
The value of the control hints Label Text for a BC4J View Object is now used as the default control hint text for field prompts and table header titles.
<bc4j:table> now supports the showAll attribute,
which adds a Show All option to tables. (The <bc4j:table>
element inherits the showAll attribute from the UIX Components <table>
element.)
A new <bc4j:formValue> element has been added. This
allows you to submit a "hidden" value with a form; that is, the
value is not displayed to users.
The following UIX BC4J components now all default the underlying UIX name
attribute to be the same as the attrName attribute:
messageInput
input
checkBox
choice
dateField
fileUpload
formValue
list
lovField
textInput
UIX runtime now throws a parsing error if a referenced .cpx
data definition file is not found.
UIX currently supports the following components on the Pocket PC only. In the future, this list of supported components will be the same for all of the PDA-sized devices. Note that not all functionality on every bean is implemented.
body borderLayout bulletedList button cellFormat checkbox choice column contentFooter dateField dataScope document flowLayout form formParameter formValue formattedText frame frameBorderLayout globalButton globalButtonBar globalHeader head image include inlineMessage labeledFieldLayout link list lovField messageBox messageCheckBox messageChoice messageDateField messageList messageLovField messagePrompt messageRadioButton messageRadioGroup messageStyledText messageText messageTextInput navigationBar option pageButtonBar pageHeaderLayout pageLayout radioButton radioGroup rawText resetButton rowLayout servletInclude spacer stackLayout styledText submitButton switcher table tableLayout textInput train try urlInclude The following components render nothing themselves, but do render their indexed children:
headerhideShowHeadersubTabLayouttipThe following are components which will be implemented in a subsequent release:
addTableRowhideShowmultipleSelectionsingleSelectionsortableHeadertotalRowThe following components are not supported. Neither the component nor its children are rendered and a warning is written to the error log.
applicationSwitcherbrowseMenucontentContainerfileUploadimportScriptlovInputlistOfValueshGridmessageFileUploadquickLinksshuttlesideBarsideNavstyledItemstyledListsubTabBartabBartreeThe following components are ignored. No warning is written to the log as these should not be essential to the correct behavior of the page.
breadCrumbsfooterseparatorstyleSheetMiscellaneous enhancements include the following:
The <table> component now supports the ability to hide and show all details
or hide and show all rows. To turn on having the ability to hide or show
all details, set the table's allDetailsEnabled attribute to
true. To enable all rows to be shown in the table via the navigation
choice, the showAll attribute should be set. For the possible
values of this attribute, consult the Table documentation.
A new <columnGroup> component has been added. This control groups columns in
a table so a single header spans all the columns in the group. Multiple
<columnGroup>s can be nested.
A new <contextProperty> element has been added to uiXML.
This new UINode element allows you to set RenderingContext
properties declaratively.
The new <set> event handler provides a declarative way
to make components on pages fully interactive, by updating a keyed value
in a MutableDataObject. For example, if you bind the disclosed
attribute of a <hideShow> component and then update it
using the <set> event handler in reponse to the hide
and show events, a fully interactive <hideShow>
is possible without writing any custom Java code.
A <navigationBar> can now list a delimited number of
items, along with Previous and Next
buttons for navigating to the previous and next lists of items.
Versioning support is now provided for UIX installables. UIX now automatically appends an identifier to the file names of the UIX installable JavaScript libraries and the generated CSS style sheets. The identifier uniquely identifies the version of each file, and the identifier is changed whenever a file has been modified since the last release. Changing the file name in this way simplifies the UIX upgrade process, since browsers will automatically detect that a new version of the file is required and will download the latest version from the server.
Although clients have always been required to upgrade to the latest version of the UIX installable files when upgrading to a new version of UIX, now this requirement is even more critical. Failure to keep the UIX installable files in sync with the version of the UIX classes used by a web application will prevent the UIX JavaScript libraries from being located.
The media component can now display RealPlayer controls properly.
PrintWriter performance has been improved by using an unsynchronized
private subclass of java.io.PrintWriter. In order to take advantage
of this enhancement, clients must avoid calling ServletResponse.getWriter()
directly, but instead should allow UIX to create the PrintWriter
itself, ideally by using ServletRenderingContext.prepareResponse()