Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > 5fb1c39f9f9130a3cc01e8b1ffa5c0f8 > files > 3204

libreoffice-devel-3.5.4-4.x86_64.rpm

<html>
<head>
<title>Interface XFilterController</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../idl.css">
</head>
<body>
<div id="adc-idlref">

<a name="_top_"> </a><table class="navimain" border="0" cellpadding="3">
<tr>
<td class="navimain"><a href="../../module-ix.html" class="navimain">Overview</a></td>
<td class="navimain"><a href="module-ix.html" class="navimain">Module</a></td>
<td class="navimain"><a href="XFilterController-xref.html" class="navimain">Use</a></td>
<td class="navimainnone">Devguide</td>
<td class="navimain"><a href="../../../../../index-files/index-1.html" class="navimain">Index</a></td>
</tr>
</table>
<table class="navisub" border="0" cellpadding="0">
<tr>
<td class="navisub"><a href="#MethodsSummary" class="navisub">Methods' Summary</a></td>
<td class="navisub"><a href="#AttributesSummary" class="navisub">Attributes' Summary</a></td>
<td class="navisub"><a href="#MethodsDetails" class="navisub">Methods' Details</a></td>
<td class="navisub"><a href="#AttributesDetails" class="navisub">Attributes' Details</a></td>
</tr>
</table>
<hr>
<table border="0" width="100%" cellpadding="5" cellspacing="3" class="title-table" style="margin-bottom:6pt;">
<tr>
<td><p class="namechain"><a href="../../../../../module-ix.html" class="namechain">::</a> <a href="../../../../module-ix.html" class="namechain">com</a> :: <a href="../../../module-ix.html" class="namechain">sun</a> :: <a href="../../module-ix.html" class="namechain">star</a> :: <a href="../module-ix.html" class="namechain">form</a> :: <a href="module-ix.html" class="namechain">runtime</a> :: </p>
</td>
</tr>
<tr>
<td class="title"><table class="title-table" width="99%">
<tr>
<td width="25%" class="title2">unpublished </td>
<td width="50%" class="title">interface XFilterController</td>
<td width="*"/></tr>
</table>
</td>
</tr>
<tr>
<td/></tr>
<tr>
<td><dl>
<dt><b>Usage Restrictions</b></dt>
<dd><i>not published</i></dd>
<dt><b>Description</b></dt>
<dd>provides access to a form based filter for a database form

 </dd>
<dd><p>In a form based filter, form controls bound to a searchable database field are replaced with a control
 which allows entering a search expression. This so-called <em>predicate expression</em> is basically a part of an
 SQL <code>WHERE</code> clause, but without the the part denoting the database column. For instance, if you
 have a form control bound to a table column named <code>Name</code>, then entering the string
 <q>LIKE '%Smith%'</q> effectively constitutes a SQL <code>WHERE</code> clause <code>"Name" LIKE '%Smith%'</code>.</p>

 <p>In the actual document view, there are usually some relaxations to this. For instance, keywords such as
 <code>LIKE</code> might be localized, according to OpenOffice.org's UI locale. Also, for an equality criterion,
 the equality sign <code>=</code> is usually omitted. However, this interface here provides programmatic access
 to the form based filter, so those relaxations are not considered here.</p>

 <p>The filter maintained by a filter controller is, logically, a disjunctive normal form of an SQL <code>WHERE</code>
 class. That is, it is a disjunction of <em>m</em> terms, where each term is a conjunction of <em>n</em> clauses
 of the form <code>&lt;column&gt; &lt;predicate&gt; &lt;literal&gt;</code> or of the form <code><em>&lt;column&gt;
 IS [NOT] NULL</em></code>.</p>

 <p><em>n</em> equals the number of filter controls which the filter controller is responsible for. This number
 doesn't change during one session of the form based filter. On the other hand, <em>m</em>, the number of disjunctive
 terms, is dynamic.</p>

 <a name="active_term"></a>
 <p>With the above, there are potentially <em>m * n</em> <em>predicate expressions</em> (though usually only a fraction
 of those will actually exist). Since in a form based filter, there are only <em>n</em> filter controls, and each
 filter control displays exactly one <em>predicate expression</em>, this means that only a part of the complete
 filter can be displayed, in particular, only one <em>disjunctive term</em> can be displayed at a time. Thus,
 the filter controller knows the concept of an <em>active term</em>, denoted by the <a href="XFilterController.html#ActiveTerm">ActiveTerm</a>
 attribute, controls which of the terms is currently displayed in the form controls.</p>

 </dd>
<dt><b>Since </b></dt>
<dd>OOo 3.3 </dd>
<dt><b>See also</b></dt>
<dd><a href="XFormController.html">XFormController</a>, ::com::sun::star::<a href="../../sdbc/module-ix.html">sdbc</a>::<a href="../../sdbc/XResultSetMetaData.html">XResultSetMetaData</a>::<a href="../../sdbc/XResultSetMetaData.html#isSearchable">isSearchable</a>, ::com::sun::star::<a href="../../sdb/module-ix.html">sdb</a>::<a href="../../sdb/XSingleSelectQueryAnalyzer.html">XSingleSelectQueryAnalyzer</a>::<a href="../../sdb/XSingleSelectQueryAnalyzer.html#getStructuredFilter">getStructuredFilter</a>, ::com::sun::star::<a href="../../sdb/module-ix.html">sdb</a>::<a href="../../sdb/SQLFilterOperator.html">SQLFilterOperator</a></dd>
</dl>
</td>
</tr>
</table>
<hr>
<a name="MethodsSummary"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle">
<tr>
<td class="subtitle" colspan="2">Methods' Summary</td>
</tr>
<tr>
<td class="imsum_left"><a href="#addFilterControllerListener">addFilterControllerListener</a></td>
<td class="imsum_right">registers a listener to be notified of certain changes in the form based filter.

 &nbsp;</td>
</tr>
<tr>
<td class="imsum_left"><a href="#removeFilterControllerListener">removeFilterControllerListener</a></td>
<td class="imsum_right">revokes a listener which was previously registered to be notified of certain changes in the form based filter.
 &nbsp;</td>
</tr>
<tr>
<td class="imsum_left"><a href="#setPredicateExpression">setPredicateExpression</a></td>
<td class="imsum_right">sets a given <em>predicate expression</em>

 &nbsp;</td>
</tr>
<tr>
<td class="imsum_left"><a href="#getFilterComponent">getFilterComponent</a></td>
<td class="imsum_right">retrieves the filter component with the given index.

 &nbsp;</td>
</tr>
<tr>
<td class="imsum_left"><a href="#getPredicateExpressions">getPredicateExpressions</a></td>
<td class="imsum_right">retrieves the entirety of the <em>predicate expressions</em> represented by the filter controller.

 &nbsp;</td>
</tr>
<tr>
<td class="imsum_left"><a href="#removeDisjunctiveTerm">removeDisjunctiveTerm</a></td>
<td class="imsum_right">removes a given <em>disjunctive term</em>

 &nbsp;</td>
</tr>
<tr>
<td class="imsum_left"><a href="#appendEmptyDisjunctiveTerm">appendEmptyDisjunctiveTerm</a></td>
<td class="imsum_right">appends an empty disjunctive term to the list of terms.
 &nbsp;</td>
</tr>
</table>
<a name="AttributesSummary"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle">
<tr>
<td class="subtitle" colspan="2">Attributes' Summary</td>
</tr>
<tr>
<td class="imsum_left"><a href="#FilterComponents">FilterComponents</a></td>
<td class="imsum_right">is the number of <em>filter components</em>, or filter controls, which the filter controller is responsible
 for.

 &nbsp;</td>
</tr>
<tr>
<td class="imsum_left"><a href="#DisjunctiveTerms">DisjunctiveTerms</a></td>
<td class="imsum_right">is the number of <em>disjunctive terms</em> of the filter expression represented by the form based filter.
 &nbsp;</td>
</tr>
<tr>
<td class="imsum_left"><a href="#ActiveTerm">ActiveTerm</a></td>
<td class="imsum_right">denotes the <a href="#active_term"><em>active term</em></a> of the filter controller.
 &nbsp;</td>
</tr>
</table>
<a name="MethodsDetails"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle">
<tr>
<td class="subtitle">Methods' Details</td>
</tr>
<tr>
<td class="imdetail"><a name="addFilterControllerListener" class="membertitle">addFilterControllerListener</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center">
<tr>
<td><table class="table-in-method" border="0">
<tr>
<td valign="top" colspan="3">void</td>
</tr>
<tr>
<td valign="top"><b>addFilterControllerListener</b>(</td>
<td valign="top">[in] <a href="XFilterControllerListener.html">XFilterControllerListener</a></td>
<td valign="bottom">&nbsp;_Listener );</td>
</tr>
</table>
<hr>
<dl>
<dt><b>Description</b></dt>
<dd>registers a listener to be notified of certain changes in the form based filter.

 </dd>
<dd><p>Registering the same listener multiple times results in multiple notifications of the same event,
 and also requires multiple revocations of the listener.
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="imdetail"><a name="removeFilterControllerListener" class="membertitle">removeFilterControllerListener</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center">
<tr>
<td><table class="table-in-method" border="0">
<tr>
<td valign="top" colspan="3">void</td>
</tr>
<tr>
<td valign="top"><b>removeFilterControllerListener</b>(</td>
<td valign="top">[in] <a href="XFilterControllerListener.html">XFilterControllerListener</a></td>
<td valign="bottom">&nbsp;_Listener );</td>
</tr>
</table>
<hr>
<dl>
<dt><b>Description</b></dt>
<dd>revokes a listener which was previously registered to be notified of certain changes in the form based filter.
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="imdetail"><a name="setPredicateExpression" class="membertitle">setPredicateExpression</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center">
<tr>
<td><table class="table-in-method" border="0">
<tr>
<td valign="top" colspan="3">void</td>
</tr>
<tr>
<td valign="top"><b>setPredicateExpression</b>(</td>
<td valign="top">[in] long</td>
<td valign="bottom">&nbsp;_Component,</td>
</tr>
<tr>
<td/><td valign="top">[in] long</td>
<td valign="bottom">&nbsp;_Term,</td>
</tr>
<tr>
<td/><td valign="top">[in] string</td>
<td valign="bottom">&nbsp;_PredicateExpression )</td>
</tr>
<tr>
<td valign="top" align="right">raises( </td>
<td valign="top" colspan="2">::com::sun::star::<a href="../../lang/module-ix.html">lang</a>::<a href="../../lang/IndexOutOfBoundsException.html">IndexOutOfBoundsException</a> );</td>
</tr>
</table>
<hr>
<dl>
<dt><b>Description</b></dt>
<dd>sets a given <em>predicate expression</em>

 </dd>
<dt><b>Parameter _Component</b></dt>
<dd>denotes the filter component whose expression is to be set. Must be greater than or equal to 0, and smaller than
 <a href="#FilterComponents">FilterComponents</a>.

 </dd>
<dt><b>Parameter _Term</b></dt>
<dd>denotes the <em>disjunctive term</em> in which the expression is to be set. Must be greater than or equal to 0,
 and smaller than <a href="#DisjunctiveTerms">DisjunctiveTerms</a>.

 </dd>
<dt><b>Parameter _PredicateExpression</b></dt>
<dd>denotes the <em>predicate expression</em> to set for the given filter component in the given term.

 </dd>
<dt><b>Throws</b></dt>
<dd>::com::sun::star::lang::IndexOutOfBoundsException
 if one of the indexes is out of the allowed range
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="imdetail"><a name="getFilterComponent" class="membertitle">getFilterComponent</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center">
<tr>
<td><table class="table-in-method" border="0">
<tr>
<td valign="top" colspan="3">::com::sun::star::<a href="../../awt/module-ix.html">awt</a>::<a href="../../awt/XControl.html">XControl</a></td>
</tr>
<tr>
<td valign="top"><b>getFilterComponent</b>(</td>
<td valign="top">[in] long</td>
<td valign="bottom">&nbsp;_Component )</td>
</tr>
<tr>
<td valign="top" align="right">raises( </td>
<td valign="top" colspan="2">::com::sun::star::<a href="../../lang/module-ix.html">lang</a>::<a href="../../lang/IndexOutOfBoundsException.html">IndexOutOfBoundsException</a> );</td>
</tr>
</table>
<hr>
<dl>
<dt><b>Description</b></dt>
<dd>retrieves the filter component with the given index.

 </dd>
<dd><p>The filter control has the same control model as the control which it stands in for. Consequently, you can use this method
 to obtain the database column which the filter control works on, by examining the control model's <code>BoundField</code>
 property.</p>

 </dd>
<dt><b>Parameter _Component</b></dt>
<dd>denotes the index of the filter component whose control should be obtained. Must be greater than or equal to 0,
 and smaller than <a href="#FilterComponents">FilterComponents</a>.

 </dd>
<dt><b>Throws</b></dt>
<dd>::com::sun::star::lang::IndexOutOfBoundsException
 if <arg>_Component</arg> is out of the allowed range.

 </dd>
<dt><b>See also</b></dt>
<dd>::com::sun::star::form::component::DataAwareControlModel::BoundField</dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="imdetail"><a name="getPredicateExpressions" class="membertitle">getPredicateExpressions</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center">
<tr>
<td><table class="table-in-method" border="0">
<tr>
<td valign="top" colspan="3">sequence&lt; sequence&lt; string &gt; &gt;</td>
</tr>
<tr>
<td valign="top"><b>getPredicateExpressions</b>();</td>
</tr>
</table>
<hr>
<dl>
<dt><b>Description</b></dt>
<dd>retrieves the entirety of the <em>predicate expressions</em> represented by the filter controller.

 </dd>
<dd><p>Each element of the returned sequence is a <em>disjunctive term</em>, having exactly <a href="#FilterComponents">FilterComponents</a>
 elements, which denote the single <em>predicate expressions</em> of this term.</p>
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="imdetail"><a name="removeDisjunctiveTerm" class="membertitle">removeDisjunctiveTerm</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center">
<tr>
<td><table class="table-in-method" border="0">
<tr>
<td valign="top" colspan="3">void</td>
</tr>
<tr>
<td valign="top"><b>removeDisjunctiveTerm</b>(</td>
<td valign="top">[in] long</td>
<td valign="bottom">&nbsp;_Term )</td>
</tr>
<tr>
<td valign="top" align="right">raises( </td>
<td valign="top" colspan="2">::com::sun::star::<a href="../../lang/module-ix.html">lang</a>::<a href="../../lang/IndexOutOfBoundsException.html">IndexOutOfBoundsException</a> );</td>
</tr>
</table>
<hr>
<dl>
<dt><b>Description</b></dt>
<dd>removes a given <em>disjunctive term</em>

 </dd>
<dt><b>Parameter _Term</b></dt>
<dd>the index of the term to remove. Must be greater than or equal to 0, and smaller than
 <a href="#DisjunctiveTerms">DisjunctiveTerms</a>.

 </dd>
<dt><b>Throws</b></dt>
<dd>::com::sun::star::lang::IndexOutOfBoundsException
 if <arg>_Term</arg> is out of the allowed range.
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="imdetail"><a name="appendEmptyDisjunctiveTerm" class="membertitle">appendEmptyDisjunctiveTerm</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center">
<tr>
<td><table class="table-in-method" border="0">
<tr>
<td valign="top" colspan="3">void</td>
</tr>
<tr>
<td valign="top"><b>appendEmptyDisjunctiveTerm</b>();</td>
</tr>
</table>
<hr>
<dl>
<dt><b>Description</b></dt>
<dd>appends an empty disjunctive term to the list of terms.
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
</table>
<a name="AttributesDetails"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle">
<tr>
<td class="subtitle">Attributes' Details</td>
</tr>
<tr>
<td class="imdetail"><a name="FilterComponents" class="membertitle">FilterComponents</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-data" bgcolor="#ffffff" align="center">
<tr>
<td>[ readonly ] long <b>FilterComponents</b>;<hr>
<dl>
<dt><b>Description</b></dt>
<dd>is the number of <em>filter components</em>, or filter controls, which the filter controller is responsible
 for.

 </dd>
<dd><p>This number is constant during one session of the form based filter.</p>
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="imdetail"><a name="DisjunctiveTerms" class="membertitle">DisjunctiveTerms</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-data" bgcolor="#ffffff" align="center">
<tr>
<td>[ readonly ] long <b>DisjunctiveTerms</b>;<hr>
<dl>
<dt><b>Description</b></dt>
<dd>is the number of <em>disjunctive terms</em> of the filter expression represented by the form based filter.
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="imdetail"><a name="ActiveTerm" class="membertitle">ActiveTerm</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-data" bgcolor="#ffffff" align="center">
<tr>
<td>long <b>ActiveTerm</b><dl>
<dd>set raises (::com::sun::star::<a href="../../lang/module-ix.html">lang</a>::<a href="../../lang/IndexOutOfBoundsException.html">IndexOutOfBoundsException</a>);</dd>
</dl>
<hr>
<dl>
<dt><b>Description</b></dt>
<dd>denotes the <a href="#active_term"><em>active term</em></a> of the filter controller.
 </dd>
</dl>
</td>
</tr>
</table>
</td>
</tr>
</table>
<a href="#_top_">Top of Page</a><hr size="3"><p class="copyright" align="center">Copyright &copy; 2000, 2012 LibreOffice contributors and/or their affiliates. All rights reserved.</p><p class="copyright" align="center">LibreOffice was created by The Document Foundation, based on OpenOffice.org, which is Copyright 2000, 2010 Oracle and/or its affiliates.</p><p class="copyright" align="center">The Document Foundation acknowledges all community members, please find more info <a href="http://www.libreoffice.org/about-us/credits/" target="_blank">at our website</a>.<p>&nbsp;</p><p class="copyright" align="center"><a href="http://www.libreoffice.org/privacy" target="_blank">Privacy Policy</a> | <a href="http://www.libreoffice.org/imprint" target="_blank">Impressum (Legal Info)</a> | Copyright information: The source code of LibreOffice is licensed under the GNU Lesser General Public License (<a href="http://www.libreoffice.org/download/license/" target="_blank">LGPLv3</a>). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our <a href="http://wiki.documentfoundation.org/TradeMark_Policy" target="_blank">trademark policy</a>.</p>

</div> <!-- id="adc-idlref" -->
</body>

</html>