Difference between revisions of "Documentation/DevGuide/Forms/Loadable Forms"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Initial author Sun Microsystems, Inc.)
 
m (FINAL VERSION FOR L10N)
(5 intermediate revisions by 3 users not shown)
Line 6: Line 6:
 
|NextPage=Documentation/DevGuide/Forms/Sub Forms
 
|NextPage=Documentation/DevGuide/Forms/Sub Forms
 
}}
 
}}
{{DISPLAYTITLE:Loadable Forms}}
+
{{Documentation/DevGuideLanguages|Documentation/DevGuide/Forms/{{SUBPAGENAME}}}}
 +
{{DISPLAYTITLE:Loadable Forms}}
 
<!--<idltopic>com.sun.star.form.XLoadable;com.sun.star.form.XLoadListener</idltopic>-->
 
<!--<idltopic>com.sun.star.form.XLoadable;com.sun.star.form.XLoadListener</idltopic>-->
 
A major difference of data forms compared to the underlying row set is the that forms are ''loaded'', and  provide an interface to manipulate this state.
 
A major difference of data forms compared to the underlying row set is the that forms are ''loaded'', and  provide an interface to manipulate this state.
 
+
<source lang="java">
 
   XLoadable xLoad = (XLoadable)FLTools.getParent(aControlModel, XLoadable.class);
 
   XLoadable xLoad = (XLoadable)FLTools.getParent(aControlModel, XLoadable.class);
 
   xLoad.reload();
 
   xLoad.reload();
 
+
</source>
Loading is the same as executing the underlying row set, that is, invoking the [http://api.openoffice.org/docs/common/ref/com/sun/star/sdbc/XRowSet.html#execute com.sun.star.sdbc.XRowSet:execute]() method. The <idl>com.sun.star.form.XLoadable</idl> is designed to fit the needs of a form document, for example, it a unloads an already loaded form.
+
Loading is the same as executing the underlying row set, that is, invoking the <idlml>com.sun.star.sdbc.XRowSet:execute</idlml>() method. The <idl>com.sun.star.form.XLoadable</idl> is designed to fit the needs of a form document, for example, it a unloads an already loaded form.
  
 
The example above shows how to reload a form. Reloading is executing the row set again. Using <code>reload</code> instead of <code>execute</code> has the advantage of advanced listener mechanisms:
 
The example above shows how to reload a form. Reloading is executing the row set again. Using <code>reload</code> instead of <code>execute</code> has the advantage of advanced listener mechanisms:
  
Look at the <idl>com.sun.star.form.XLoadable</idl> interface. You can add a <idl>com.sun.star.form.XLoadListener</idl>. This listener not only tells you when load-related events have occurred that is achieved by the <idl>com.sun.star.sdbc.XRowSetListener</idl>, but also when they are about to happen. In a complex scenario where different listeners are added to different aspects of a form, you use the [http://api.openoffice.org/docs/common/ref/com/sun/star/form/XLoadable.html#reload com.sun.star.form.XLoadable:reload]() call to disable all other listeners temporarily. Re-executing a row set is a complex process, thus it triggers a lot of events that are only an after effect of the re-execution.
+
Look at the <idl>com.sun.star.form.XLoadable</idl> interface. You can add a <idl>com.sun.star.form.XLoadListener</idl>. This listener not only tells you when load-related events have occurred that is achieved by the <idl>com.sun.star.sdbc.XRowSetListener</idl>, but also when they are about to happen. In a complex scenario where different listeners are added to different aspects of a form, you use the <idlml>com.sun.star.form.XLoadable:reload</idlml>() call to disable all other listeners temporarily. Re-executing a row set is a complex process, thus it triggers a lot of events that are only an after effect of the re-execution.
  
 
{{Documentation/Note|Though all the functionality provided by <idl>com.sun.star.form.XLoadable</idl> can be simulated using the <idl>com.sun.star.sdbc.XRowSet</idl> interface, you should always use the former. Due to the above-mentioned, more sophisticated listener mechanisms, implementations have a chance to do loading, reloading and unloading much smoother then.}}
 
{{Documentation/Note|Though all the functionality provided by <idl>com.sun.star.form.XLoadable</idl> can be simulated using the <idl>com.sun.star.sdbc.XRowSet</idl> interface, you should always use the former. Due to the above-mentioned, more sophisticated listener mechanisms, implementations have a chance to do loading, reloading and unloading much smoother then.}}
  
An additional difference between loading and executing is the positioning of the row set: When using [http://api.openoffice.org/docs/common/ref/com/sun/star/sdbc/XRowSet.html#execute com.sun.star.sdbc.XRowSet:execute](), the set is positioned ''before'' the first record. When you use [http://api.openoffice.org/docs/common/ref/com/sun/star/form/XLoadable.html#load com.sun.star.form.XLoadable:load](), the set is positioned ''on'' the first record, as you would expect from a form.
+
An additional difference between loading and executing is the positioning of the row set: When using <idlml>com.sun.star.sdbc.XRowSet:execute</idlml>(), the set is positioned ''before'' the first record. When you use <idlml>com.sun.star.form.XLoadable:load</idlml>(), the set is positioned ''on'' the first record, as you would expect from a form.
  
 
{{PDL1}}
 
{{PDL1}}
[[Category: Forms]]
+
 
 +
[[Category:Documentation/Developer's Guide/Forms]]

Revision as of 13:00, 15 May 2009



A major difference of data forms compared to the underlying row set is the that forms are loaded, and provide an interface to manipulate this state.

  XLoadable xLoad = (XLoadable)FLTools.getParent(aControlModel, XLoadable.class);
  xLoad.reload();

Loading is the same as executing the underlying row set, that is, invoking the <idlml>com.sun.star.sdbc.XRowSet:execute</idlml>() method. The com.sun.star.form.XLoadable is designed to fit the needs of a form document, for example, it a unloads an already loaded form.

The example above shows how to reload a form. Reloading is executing the row set again. Using reload instead of execute has the advantage of advanced listener mechanisms:

Look at the com.sun.star.form.XLoadable interface. You can add a com.sun.star.form.XLoadListener. This listener not only tells you when load-related events have occurred that is achieved by the com.sun.star.sdbc.XRowSetListener, but also when they are about to happen. In a complex scenario where different listeners are added to different aspects of a form, you use the <idlml>com.sun.star.form.XLoadable:reload</idlml>() call to disable all other listeners temporarily. Re-executing a row set is a complex process, thus it triggers a lot of events that are only an after effect of the re-execution.

Template:Documentation/Note

An additional difference between loading and executing is the positioning of the row set: When using <idlml>com.sun.star.sdbc.XRowSet:execute</idlml>(), the set is positioned before the first record. When you use <idlml>com.sun.star.form.XLoadable:load</idlml>(), the set is positioned on the first record, as you would expect from a form.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages