Overview
The new Nexaweb Reference Framework release has several improvements over the previous version including page caching for improved performance and many important bug fixes.
New Features
Caching:
Caching has been added to the reference framework.
Configuration
The cache is configured as part of the Reference Framework configuration file
nexaweb-reference-framework.xml. The following is an example cache configuration
<xalCache cacheSize="5"> <cacheSlot path="/XAL/include/IncludeTest.xal" keepInCache=”true”/> <cacheSlot path="/XAL/include/Frag1.xal"/> </xalCache>
xalCache
The xalCache tag is required for configuring the cache. If the tag does
not exist in the configuration file, then the cache will not be configured.
cacheSize
The cacheSize attribute of the xalCache tag, signifies the maximum number of slots available for caching files. If the attribute is not included, then the default size
of the cache will be 10.
If the number of files to be cached exceeds the size of the cache, then
least recently used file will be removed from the cache.
cacheSlot tag.
Files can be configured for preload. The number of preloaded files does not
have to match the size of the cache. If the size of the cache is greater than
the number of preloads, then other files opened can occupy the slots.
The cacheSlot tag is optional. If not files need to be preloaded, then they
can be omitted.
KeepInCache
The KeepInCache attribute of the cacheSlot tag can keep a file from being
removed from cache, when the number of files being cached exceed the cache size. Setting this attribute to true, will keep the file in this cache slot from being
removed from the cache. If the attribute is not set, the value is set to false,
and the file in this cache slot can be removed from cache.
NOTE:
If the number of cache slots with keepInCache, matches or exceeds the size of the
cache, then no new cache slots can be created. If the number of preload cache slots with keep alive, exceed the size of the cache, then the files associated with the cache slots that do not get created will not be preloaded.
NOTE : Use of the cache in Reference Framework requires version 4.5.40 or higher.
Defects Resolved
10896 | showPopupMenu does not set focus on menu window by default if called using UIManager |
10890 | loadPage does not set the page which is already loaded to active |
10882 | Remove depricated AccessKey attribute from RF samples. |
10881 | Pages Fail to load when pageStyle is sdi |
10877 | Shortcut key on dialog not fired correctly when it is first loaded |
10874 | onPageDeactivated and OnPageClosed don't get fired on page if page is a Dialog and you close the page by clicking close button in title bar |
10875 | Shortcut on Dialog page still fired after page is closed using the close button |
10860 | Window attributes, such as showTitleBar and titleBarColor defined on pageDefiniton not appied to dialog when opened |
10862 | Unable to get window as element after page is loaded as window (QTV-672465) |
10856 | Page as Dialog does not fire onPageLoaded and the onPageActivated events (XGR-207158) |
10857 | Page Level short cut key does not get fired on page as dialog (XGR-207158) |
10853 | XPathFactory.createXPath has an effect on performance of component creation (KGP-179897) |
10850 | Passwords with + in them are not working with Nexaweb security (PJI-189939) |
10849 | Global status resets when a page is closed(RGK-860607) |
10787 | RF:Multi byte character string is not correctly displayed. |
10862: Unable to get window as element after page is loaded as window
There are two options to make this scenario work.
Instead of using the XFC Window, you directly use the Window element, which can be found using getElementByName() on the ClientSession.
Within an MCO.
If there is only one instance of the window to be opened the following will work.
Page page = PageManager.loadPage( "myPage" ); Element windowElement = getSession().getElementByName( page.getId() );
However if more than one
Page page = PageManager.loadPage( "myPage" ); Element windowElement = getSession().getElementByName( page.getId() );
10787: Multi byte character string is not correctly displayed.
To fix this the Reference framework style sheet was modified.
The fontFamily setting for rootPane was changed from "Verdana" to "Arial Unicode, Arial, sans-serif".
The Verdana font does not support Japanese characters.
The new setting will first use Arial Unicode if available on the client machine.
If Arial Unicode is not available, then then use Arial.
If Arial is not available then use Java's sans-serif font.
This change will take effect on all new projects, and any projects
that upgrade to Rf 2.5, that have not modified the Reference Framework stylesheet.
If they have modified the stylesheet, and want to support Japanese characters, they
must go into the stylesheet and make the change by hand.
Look for
<style applyTo="rootPane"> <normal borderColor="#FFFFFF" borderWidth="0px" fontFamily="Verdana" fontSize="10"/> </style>
And change
fontFamily="Verdana"
to be
fontFamily="Arial Unicode MS,Arial,sans-serif"
Applications that have not modified the RF stylesheet that upgrade to RF 2.5 and want to continue using Verdana, will have edit the stylesheet to change the fontFamily from fontFamily="Arial Unicode MS,Arial,sans-serif" to fontFamily="Verdana". Because the stylesheet had not yet been modified, it will have been modified when updating to RF 2.5.
Other Notes
com.nexaweb.referenceframework.conf.components.Page has been removed.
com.nexaweb.referenceframework.core.page.Page should be used instead.
Some method signatures in PageManager and DialogManager have changed.
While you should not need to modify your code, it is recommended that
you rebuild your project against the latest Reference Framework libraries.