1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_form_control_GridControl_idl__
25*b1cdbd2cSJim Jagielski#define __com_sun_star_form_control_GridControl_idl__
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_awt_UnoControl_idl__
28*b1cdbd2cSJim Jagielski#include <com/sun/star/awt/UnoControl.idl>
29*b1cdbd2cSJim Jagielski#endif
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_form_XGrid_idl__
32*b1cdbd2cSJim Jagielski#include <com/sun/star/form/XGrid.idl>
33*b1cdbd2cSJim Jagielski#endif
34*b1cdbd2cSJim Jagielski
35*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_form_XBoundComponent_idl__
36*b1cdbd2cSJim Jagielski#include <com/sun/star/form/XBoundComponent.idl>
37*b1cdbd2cSJim Jagielski#endif
38*b1cdbd2cSJim Jagielski
39*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_form_XGridFieldDataSupplier_idl__
40*b1cdbd2cSJim Jagielski#include <com/sun/star/form/XGridFieldDataSupplier.idl>
41*b1cdbd2cSJim Jagielski#endif
42*b1cdbd2cSJim Jagielski
43*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_util_XModifyBroadcaster_idl__
44*b1cdbd2cSJim Jagielski#include <com/sun/star/util/XModifyBroadcaster.idl>
45*b1cdbd2cSJim Jagielski#endif
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_util_XModeSelector_idl__
48*b1cdbd2cSJim Jagielski#include <com/sun/star/util/XModeSelector.idl>
49*b1cdbd2cSJim Jagielski#endif
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_container_XIndexAccess_idl__
52*b1cdbd2cSJim Jagielski#include <com/sun/star/container/XIndexAccess.idl>
53*b1cdbd2cSJim Jagielski#endif
54*b1cdbd2cSJim Jagielski
55*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_container_XEnumerationAccess_idl__
56*b1cdbd2cSJim Jagielski#include <com/sun/star/container/XEnumerationAccess.idl>
57*b1cdbd2cSJim Jagielski#endif
58*b1cdbd2cSJim Jagielski
59*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_container_XContainer_idl__
60*b1cdbd2cSJim Jagielski#include <com/sun/star/container/XContainer.idl>
61*b1cdbd2cSJim Jagielski#endif
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_frame_XDispatchProviderInterception_idl__
64*b1cdbd2cSJim Jagielski#include <com/sun/star/frame/XDispatchProviderInterception.idl>
65*b1cdbd2cSJim Jagielski#endif
66*b1cdbd2cSJim Jagielski
67*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_view_XSelectionSupplier_idl__
68*b1cdbd2cSJim Jagielski#include <com/sun/star/view/XSelectionSupplier.idl>
69*b1cdbd2cSJim Jagielski#endif
70*b1cdbd2cSJim Jagielski
71*b1cdbd2cSJim Jagielski//=============================================================================
72*b1cdbd2cSJim Jagielski
73*b1cdbd2cSJim Jagielskimodule com {  module sun {  module star {  module form {
74*b1cdbd2cSJim Jagielski
75*b1cdbd2cSJim Jagielskipublished interface XGridControl;
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim Jagielskimodule control {
78*b1cdbd2cSJim Jagielski
79*b1cdbd2cSJim Jagielski//=============================================================================
80*b1cdbd2cSJim Jagielski
81*b1cdbd2cSJim Jagielski/** describes a table-like control for displaying data.
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski	<p>The model of the control has to support the <type scope="com::sun::star::form::component">GridControl</type>
84*b1cdbd2cSJim Jagielski	service.</p>
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski	@see com::sun::star::awt::UnoControl
87*b1cdbd2cSJim Jagielski	@see com::sun::star::awt::UnoControlModel
88*b1cdbd2cSJim Jagielski*/
89*b1cdbd2cSJim Jagielskipublished service GridControl
90*b1cdbd2cSJim Jagielski{
91*b1cdbd2cSJim Jagielski	service com::sun::star::awt::UnoControl;
92*b1cdbd2cSJim Jagielski
93*b1cdbd2cSJim Jagielski	/** allows committing the content of the active cell of the control.
94*b1cdbd2cSJim Jagielski	*/
95*b1cdbd2cSJim Jagielski	interface com::sun::star::form::XBoundComponent;
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski	/** allows access to the active cell within the grid.
98*b1cdbd2cSJim Jagielski
99*b1cdbd2cSJim Jagielski		<p>Only the column position can be modified using this interface, as the row position within
100*b1cdbd2cSJim Jagielski		a table control bound to a data source is given implicitly (by the cursor position of the data source).</p>
101*b1cdbd2cSJim Jagielski	*/
102*b1cdbd2cSJim Jagielski	interface com::sun::star::form::XGrid;
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski	[optional] interface com::sun::star::form::XGridControl;
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim Jagielski	/** used to broadcast modifications made by the user (within the active cell)
107*b1cdbd2cSJim Jagielski	*/
108*b1cdbd2cSJim Jagielski	interface com::sun::star::util::XModifyBroadcaster;
109*b1cdbd2cSJim Jagielski
110*b1cdbd2cSJim Jagielski	/** allows access to the field data of the grid's current row in different formats
111*b1cdbd2cSJim Jagielski	*/
112*b1cdbd2cSJim Jagielski	[optional] interface com::sun::star::form::XGridFieldDataSupplier;
113*b1cdbd2cSJim Jagielski
114*b1cdbd2cSJim Jagielski	/** allows access to objects wrapping a single column
115*b1cdbd2cSJim Jagielski	*/
116*b1cdbd2cSJim Jagielski	interface com::sun::star::container::XIndexAccess;
117*b1cdbd2cSJim Jagielski
118*b1cdbd2cSJim Jagielski	/** allows creation of an enumeration for the column objects
119*b1cdbd2cSJim Jagielski	*/
120*b1cdbd2cSJim Jagielski	interface com::sun::star::container::XEnumerationAccess;
121*b1cdbd2cSJim Jagielski
122*b1cdbd2cSJim Jagielski	/** is used to switch the operating modes of the control.
123*b1cdbd2cSJim Jagielski
124*b1cdbd2cSJim Jagielski		<p>Besides the normal opreration mode (which is used to display the database form's data) the control may
125*b1cdbd2cSJim Jagielski		for instance support a filter mode.</p>
126*b1cdbd2cSJim Jagielski	*/
127*b1cdbd2cSJim Jagielski	[optional] interface com::sun::star::util::XModeSelector;
128*b1cdbd2cSJim Jagielski
129*b1cdbd2cSJim Jagielski	/** used to control the selection of rows in the grid control.
130*b1cdbd2cSJim Jagielski
131*b1cdbd2cSJim Jagielski		<p>The selection used with the methods <method scope="com::sun::star::view">XSelectionSupplier::getSelection</method>
132*b1cdbd2cSJim Jagielski		and <method scope="com::sun::star::view">XSelectionSupplier::select</method> is a sequence of Any's.<br/>
133*b1cdbd2cSJim Jagielski		Here the elements of the Sequence are the bookmarks (in the <type scope="com::sun::star::sdb">RowSet</type>)
134*b1cdbd2cSJim Jagielski		of the (to-be-) selected rows.</p>
135*b1cdbd2cSJim Jagielski	*/
136*b1cdbd2cSJim Jagielski	[optional] interface com::sun::star::view::XSelectionSupplier;
137*b1cdbd2cSJim Jagielski
138*b1cdbd2cSJim Jagielski	/** allows external components to register dispatchers for some common form actions.
139*b1cdbd2cSJim Jagielski
140*b1cdbd2cSJim Jagielski		<p>A grid control can contain own UI elements for traveling within the database form it belongs to (This
141*b1cdbd2cSJim Jagielski		concept seems to make sense, as a grid control - in opposite to other data aware controls - displayes
142*b1cdbd2cSJim Jagielski		not only one record at a time, but a larger number of records of the database form.)<br/>
143*b1cdbd2cSJim Jagielski		With the help of this interface, external components which wish to handle such travelings themself can
144*b1cdbd2cSJim Jagielski		register interceptors for the actions in question.</p>
145*b1cdbd2cSJim Jagielski
146*b1cdbd2cSJim Jagielski		<p>Usual URLs to use include
147*b1cdbd2cSJim Jagielski			<dl>
148*b1cdbd2cSJim Jagielski				<dt>.uno:FormSlots/moveToFirst</dt><dd> move the cursor to the first record</dd>
149*b1cdbd2cSJim Jagielski				<dt>.uno:FormSlots/moveToPrev</dt><dd> move the cursor to the previous record</dd>
150*b1cdbd2cSJim Jagielski				<dt>.uno:FormSlots/moveToNext</dt><dd> move the cursor to the next record</dd>
151*b1cdbd2cSJim Jagielski				<dt>.uno:FormSlots/moveToLast</dt><dd> move the cursor to the last record</dd>
152*b1cdbd2cSJim Jagielski				<dt>.uno:FormSlots/moveToNew</dt><dd> move the cursor to the (one and only) <em>new</em> record</dd>
153*b1cdbd2cSJim Jagielski				<dt>.uno:FormSlots/undoRecord</dt><dd> undo the changes done so far in the current record</dd>
154*b1cdbd2cSJim Jagielski			</dl>
155*b1cdbd2cSJim Jagielski		</p>
156*b1cdbd2cSJim Jagielski
157*b1cdbd2cSJim Jagielski		<p>A concrete implementation of this service may offer more or less URLs, but if it offers some of the URLs
158*b1cdbd2cSJim Jagielski		above, it must stick to the meanings defined above.</p>
159*b1cdbd2cSJim Jagielski	*/
160*b1cdbd2cSJim Jagielski	[optional] interface com::sun::star::frame::XDispatchProviderInterception;
161*b1cdbd2cSJim Jagielski};
162*b1cdbd2cSJim Jagielski
163*b1cdbd2cSJim Jagielski//=============================================================================
164*b1cdbd2cSJim Jagielski
165*b1cdbd2cSJim Jagielski}; }; }; }; };
166*b1cdbd2cSJim Jagielski
167*b1cdbd2cSJim Jagielski
168*b1cdbd2cSJim Jagielski#endif
169