1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_form_runtime_FormFeature_idl__
29#define __com_sun_star_form_runtime_FormFeature_idl__
30
31//=============================================================================
32
33module com { module sun { module star { module form { module runtime {
34
35//=============================================================================
36
37/** specifies the operations on a user interface form, as supported by the
38    <type>XFormOperations</type> interface.
39
40    @since OOo 2.2
41*/
42constants FormFeature
43{
44    /** moves the form to a record given by absolute position.
45
46        <p>This operation cannot be executed without arguments. When executing it (i.e.
47        when calling <member scope="com::sun::star::form::runtime">XFormOperations::executeWithArguments</member>),
48        you need to specify a parameter named <em>Position</em> of type <code>long</code>, which
49        denotes the position to move the form to.</p>
50    */
51    const short MoveAbsolute        = 1;
52
53    /** determines the number of total records in the form,
54        including the potentially active insertion row.
55
56        <p>This is not strictly an operation you can do on a form, but rather a
57        state you can retrieve (and display to the user) using the <type>XFormOperations</type>'
58        respective methods.</p>
59
60        <p>The state obtained here is a string, not a number. This is because in an UI
61        form, the fact that the current record count is not yet known (since not all
62        records have been visited, yet) is indicated by an asterik (<code>*</code>) besides
63        the record count.</p>
64    */
65    const short TotalRecords        = 2;
66
67    /// moves the form to the first record
68    const short MoveToFirst         = 3;
69
70    /// moves the form to the record before the current record, if there is any
71    const short MoveToPrevious      = 4;
72
73    /// moves the form to the record after the current record, if there is any
74    const short MoveToNext          = 5;
75
76    /// moves the form to the last record
77    const short MoveToLast          = 6;
78
79    /// moves the form to the insertion row, if privileges allow
80    const short MoveToInsertRow     = 7;
81
82    /** saves all changes in the form's current record, including changes in the current
83        control which had not yet been committed to the form
84    */
85    const short SaveRecordChanges   = 8;
86
87    /** revertsall changes in the form's current record, including changes in the current
88        control which had not yet been committed to the form
89    */
90    const short UndoRecordChanges   = 9;
91
92    /** deletes the current record, while honoring any registered
93        <type scope="com::sun::star::form">XConfirmDeleteListener</type>s
94    */
95    const short DeleteRecord        = 10;
96
97    /// reloads the form content
98    const short ReloadForm          = 11;
99
100    /// sorts the form ascending by the field which the active form control is bound to.
101    const short SortAscending       = 12;
102
103    /// sorts the form descending by the field which the active form control is bound to.
104    const short SortDescending      = 13;
105
106    /// opens a dialog which allows the user to interactively specify a form sorting order
107    const short InteractiveSort     = 14;
108
109    /** adds a filter to the form, which is defined by the active form control and its
110        current value
111
112        <p>For instance, if the currently active form control is bound to a table field
113        named <code>Price</code>, and currently has a value of <code>100</code>, then invoking
114        the <code>AutoFilter</code> operation will put an additional filter <code>Price = 100</code>
115        on the form.</p>
116    */
117    const short AutoFilter          = 15;
118
119    /// opens a dialog which allows the user to interactively specify a form filter
120    const short InteractiveFilter   = 16;
121
122    /** toggles the <member scope="com::sun::star::sdb">RowSet::ApplyFilter</member> property
123        of a the form.
124    */
125    const short ToggleApplyFilter   = 17;
126
127    /** removes all filter and sort criterions put on the form.
128
129        <p>Note that this does not apply to criterios which are part of the form's
130        data source. That is, if you bind the form to the SQL command <code>SELECT * FROM
131        Articles WHERE Price &gt; 100</code>, then the <code>Price &gt; 100</code> filter
132        will not be removed.</p>
133
134        <p>Effectively, this operation resets the <member scope="com::sun::star::sdb">RowSet::Filter</member>
135        and <member scope="com::sun::star::sdb">RowSet::Order</member> properties of the form.</p>
136    */
137    const short RemoveFilterAndSort = 18;
138
139    /** refreshs the current control
140
141        <p>Basically, this means calling XRefreshable::refresh on the current control, if it supports
142        this interface.</p>
143
144        @since OOo 3.1
145    */
146    const short RefreshCurrentControl = 19;
147};
148
149//=============================================================================
150
151}; }; }; }; };
152
153//=============================================================================
154
155#endif
156