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_sheet_DataPilotFieldGroups_idl__
29#define __com_sun_star_sheet_DataPilotFieldGroups_idl__
30
31#ifndef __com_sun_star_container_XNameContainer_idl__
32#include <com/sun/star/container/XNameContainer.idl>
33#endif
34#ifndef __com_sun_star_container_XEnumerationAccess_idl__
35#include <com/sun/star/container/XEnumerationAccess.idl>
36#endif
37#ifndef __com_sun_star_container_XIndexAccess_idl__
38#include <com/sun/star/container/XIndexAccess.idl>
39#endif
40
41//=============================================================================
42
43module com {  module sun {  module star {  module sheet {
44
45//=============================================================================
46
47/** represents a collection of groups in a data pilot field.
48
49    <p>The members of this collection are instances of <type>DataPilotFieldGroup</type>
50    containing the names of all items in the group.</p>
51
52    @see DataPilotField
53    @see DataPilotFieldGroup
54    @see DataPilotFieldGroupInfo
55 */
56published service DataPilotFieldGroups
57{
58	//-------------------------------------------------------------------------
59
60    /** provides access to the data pilot field groups in the collection via
61        index.
62	 */
63	interface com::sun::star::container::XIndexAccess;
64
65	//-------------------------------------------------------------------------
66
67	/** creates an enumeration of all data pilot field groups.
68
69        @see DataPilotFieldGroupsEnumeration
70	 */
71	interface com::sun::star::container::XEnumerationAccess;
72
73	//-------------------------------------------------------------------------
74
75    /** provides access to the data pilot field groups in the collection via
76        name.
77	 */
78	interface com::sun::star::container::XNameAccess;
79
80    //-------------------------------------------------------------------------
81
82    /** provides read/write access to the data pilot field groups in the
83        collection via name.
84
85        <p>The <type scope="com::sun::star::container">XNameContainer</type>
86        and <type scope="com::sun::star::container">XNameReplace</type>
87        interfaces can be used to manage the item groups. It is possible to
88        insert, remove, and replace item groups.</p>
89
90        <p>The method <member scope="com::sun::star::container">
91        XNameReplace::replaceByName</member> can be used to replace the item
92        names in an existing group with a new collection of item names. An
93        implementation should support the following data types:
94
95        <ul>
96        <li>an empty <atom>any</atom> to remove all items and leave the
97        group empty. The group can be filled later with new item names.</li>
98        <li>a <atom dim="[]">string</atom> containing all item names that will
99        be part of the group.</li>
100        <li>an object supporting <type scope="com::sun::star::container">
101        XIndexAccess</type> containing elements that provide an item name per
102        element via the interface <type scope="com::sun::star::container">
103        XNamed</type>, for example an instance of <type>DataPilotFieldGroup
104        </type>.</li>
105        </ul></p>
106
107        <p>The method <member scope="com::sun::star::container">
108        XNameContainer::insertByName</member> can be used to insert a new
109        field group with the passed collection of item names. An
110        implementation should support the same data types as described above
111        for the method <member scope="com::sun::star::container">
112        XNameReplace::replaceByName</member>.</p>
113
114        <p>The method <member scope="com::sun::star::container">
115        XNameContainer::removeByName</member> can be used to remove an
116        existing field group.</p>
117     */
118    [optional] interface com::sun::star::container::XNameContainer;
119
120};
121
122//=============================================================================
123
124}; }; }; };
125
126#endif
127
128