The Forms Java client is based on a lightweight Java windowing toolkit. In lightweight frameworks such as this, the various components and windows in the applet area are all rendered by the toolkit without using native operating system objects, except for an enclosing frame which contains the whole of the applet.
Heavyweight components, on the other hand, use the Java AWT
(Abstract
Window Toolkit) classes which render each widget and window as a real operating
system widget, which has associated with it the problem of a corresponding increase
in operating system resource usage. Normally it is difficult to get a heavyweight
component such as a JavaBean to exist within a lightweight framework because
it cannot be parented to it's lightweight container (the Bean Area in this case).
Instead, heavyweight components are parented to the single heavyweight frame
that encloses the entire lightweight applet.
The enhanced JavaBean support manages to resolve most problems with this coexistence automatically for you. If you move or hide a Bean Area that contains a heavyweight bean, the enhanced JavaBean support will automatically move or hide the JavaBean for you in step. There are, however, situations where the integration with the lightweight framework will not be seamless:
Calling a method on a JavaBean using the enhanced JavaBean support using FBean.Invoke
may require multiple roundtrips to the JavaBean, especially if the method being
called returns a value. Additionally, if the method being called takes a long
time to process, the enhanced JavaBean support may ask for the return value
from the JavaBean, before the method has actually completed. If this does happen
in your code, you can asynchronously use:
GET_CUSTOM_PROPERTY(
<BeanName>,
<InstanceId>,
<MethodName>)
to get the return value of the method at a later point in time. In this case,
the name you use for the MethodName, should be the name of the method
as shown in the Java console when you run in LOG_INFORMATION
mode,
including the lowercase m
prefix. For Example: mGetRate
declare vcRate VARCHAR2(10); begin --NOTE: GET_CUSTOM_PROPERTY always returns a string
vcRate := GET_CUSTOM_PROPERTY('MyBeanArea',1,'mGetRate'); ...