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#ifndef __com_sun_star_ucb_ListActionType_idl__
28#define __com_sun_star_ucb_ListActionType_idl__
29
30
31//=============================================================================
32
33module com { module sun { module star { module ucb {
34
35//=============================================================================
36/** These values are used to specify the type of change happened to a list.
37
38	<p>A change happened is sended from an <type>XDynamicResultSet</type>
39	as <type>ListAction</type> to a <type>XDynamicResultSetListener</type>.
40
41	<p>The values are contained in <member>ListAction::ListActionType</member>.
42*/
43
44published constants ListActionType
45{
46	//-------------------------------------------------------------------------
47	/** First notification to a single listener for purpose of initialization.
48
49	<p>This type of notification is required to be sended first and only once
50	to a new listener.
51
52	<p>The member <member>ListAction::ActionInfo</member> is required to
53	contain a struct <type>WelcomeDynamicResultSetStruct</type>.
54	This struct contains two
55    <type scope="com::sun::star::sdbc">XResultSet</type>s (old and new).
56	During and after the notification only the new set is valid for access.
57	But the listener is required to remind both
58    <type scope="com::sun::star::sdbc">XResultSet</type>s as he	will not get
59    another chance to get them again.
60
61	<p>The members <member>ListAction::Count</member> and
62	<member>ListAction::Position</member> are not used.
63	*/
64	const long WELCOME = 20;
65
66	//-------------------------------------------------------------------------
67	/** One or more rows were inserted into the list.
68
69	<p>This action is related to <member>ContentAction::INSERTED</member>.
70
71	<p>The members <member>ListAction::Count</member> and
72	<member>ListAction::Position</member> contain the position and count of
73	newly inserted rows. If the count is greater than one, the inserted rows
74	have to	be one after the other.
75
76	<p> <member>ListAction::ActionInfo</member> could contain something but
77	this is not required. For example, it could contain the properties of
78	the new rows (i.e. for remote optimizing), but this is not required
79	nor unrestrictly recommended.
80
81	<p>@todo ... further description of allowed contents for
82	<member>ListAction::ActionInfo</member> is needed
83	*/
84	const long INSERTED = 21;
85
86	//-------------------------------------------------------------------------
87	/** One or more rows were removed from the list.
88
89	<p>This action is related to <member>ContentAction::REMOVED</member>.
90
91	<p>The members <member>ListAction::Count</member> and
92	<member>ListAction::Position</member> contain the position and count of the
93	removed rows. If the count is greater than one, the removed rows have to be
94	one after the other.
95
96	<p>The member <member>ListAction::ListActionType</member> is not used.
97	*/
98	const long REMOVED = 22;
99
100
101	//-------------------------------------------------------------------------
102	/** The whole list was destroyed and independently rebuild.
103
104	<p>If 'CLEARED' is sended you don't need to refer to the old ResultSet.
105
106	<p>The members <member>ListAction::ListActionType</member>,
107	<member>ListAction::Count</member> and <member>ListAction::Position</member>
108	are ignored.
109	*/
110	const long CLEARED = 23;
111
112	//-------------------------------------------------------------------------
113	/** One or more rows were moved to another position.
114
115	<p>The members <member>ListAction::Count</member> and
116	<member>ListAction::Position</member> contain the position and count of the
117	moved rows. If the count is greater than one, the moved rows have to be
118	one after the other.
119
120	<p><member>ListAction::ListActionType</member> is required to contain a 'long',
121	which gives the shift of position.
122	(i.e. When two rows at position 3 and 4 are moved for a shift '+1',
123	they will appear at the positions 4 and 5. In this action is included, that
124	the row on old position 5 now appears on position 3.
125	No other notification is needed, to explain or complete this action).
126	*/
127	const long MOVED = 24;
128
129	//-------------------------------------------------------------------------
130	/** The properties of one or more rows have changed.
131
132	<p>This action is related to a <type scope="com::sun::star::beans">PropertyChangeEvent</type>.
133
134	<p>The members <member>ListAction::Count</member> and
135	<member>ListAction::Position</member> contain the position and count of the
136	rows, whose properties have changed. If the count is greater than one, the
137	rows with modified properties have to be one after the other.
138
139	<p> <member>ListAction::ActionInfo</member> could contain something but
140	this is not required. For example, it could contain the new properties
141    (i.e. for remote optimizing), but this is not required nor unrestrictly
142    recommended.
143
144	<p>@todo ... further description of allowed contents for
145	<member>ListAction::ActionInfo</member> is needed
146	*/
147	const long PROPERTIES_CHANGED = 25;
148
149	//-------------------------------------------------------------------------
150	/*??????????????????????????? we probably will not need this
151
152	The identity of a row has changed.
153
154	<p>This action is related to <type>ContentAction</type> == EXCHANGED.
155
156	<p>The members <member>ListAction::Count</member> and
157	<member>ListAction::Position</member> contain the position and count of the
158	rows, whose identity have changed. If the count is greater than one, the
159	rows with changed identity have to be one after the other.
160
161	<p><member>ListAction::ListActionType</member> must contain the new identities
162
163	<p>@todo ...
164
165	const long EXCHANGED = 26;
166	*/
167
168	//-------------------------------------------------------------------------
169	/*??????????????????????????? we probably will need this
170	After a completely notified Iteration send 'COMPLETED'.
171
172	<p>This notification is required to be send, to indicate, that now the full
173	result is reached.
174
175	<p>E.g. while a new given list is sorted, some intermediate states are
176	notified. After the last portion of sorting is done and notified you have
177	to send 'COMPLETED'. So a listener has the possibility to wait for
178	'COMPLETED' e.g. to print the full result. )
179
180	<p>The members <member>ListAction::ListActionType</member>,
181	<member>ListAction::Count</member> and <member>ListAction::Position</member>
182	are useless.
183	*/
184	const long COMPLETED = 27;
185};
186
187//=============================================================================
188
189}; }; }; };
190
191#endif
192