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:
header
hideShowHeader
subTabLayout
tip
The following are components which will be implemented in a subsequent release:
addTableRow
hideShow
multipleSelection
singleSelection
sortableHeader
totalRow
The following components are not supported. Neither the component nor its children are rendered and a warning is written to the error log.
applicationSwitcher
browseMenu
contentContainer
fileUpload
importScript
lovInput
listOfValues
hGrid
messageFileUpload
quickLinks
shuttle
sideBar
sideNav
styledItem
styledList
subTabBar
tabBar
tree
The following components are ignored. No warning is written to the log as these should not be essential to the correct behavior of the page.
breadCrumbs
footer
separator
styleSheet
Miscellaneous 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()