1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24#ifndef __com_sun_star_sheet_DataPilotFieldGroups_idl__
25#define __com_sun_star_sheet_DataPilotFieldGroups_idl__
26
27#ifndef __com_sun_star_container_XNameContainer_idl__
28#include <com/sun/star/container/XNameContainer.idl>
29#endif
30#ifndef __com_sun_star_container_XEnumerationAccess_idl__
31#include <com/sun/star/container/XEnumerationAccess.idl>
32#endif
33#ifndef __com_sun_star_container_XIndexAccess_idl__
34#include <com/sun/star/container/XIndexAccess.idl>
35#endif
36
37//=============================================================================
38
39module com {  module sun {  module star {  module sheet {
40
41//=============================================================================
42
43/** represents a collection of groups in a data pilot field.
44
45    <p>The members of this collection are instances of <type>DataPilotFieldGroup</type>
46    containing the names of all items in the group.</p>
47
48    @see DataPilotField
49    @see DataPilotFieldGroup
50    @see DataPilotFieldGroupInfo
51 */
52published service DataPilotFieldGroups
53{
54	//-------------------------------------------------------------------------
55
56    /** provides access to the data pilot field groups in the collection via
57        index.
58	 */
59	interface com::sun::star::container::XIndexAccess;
60
61	//-------------------------------------------------------------------------
62
63	/** creates an enumeration of all data pilot field groups.
64
65        @see DataPilotFieldGroupsEnumeration
66	 */
67	interface com::sun::star::container::XEnumerationAccess;
68
69	//-------------------------------------------------------------------------
70
71    /** provides access to the data pilot field groups in the collection via
72        name.
73	 */
74	interface com::sun::star::container::XNameAccess;
75
76    //-------------------------------------------------------------------------
77
78    /** provides read/write access to the data pilot field groups in the
79        collection via name.
80
81        <p>The <type scope="com::sun::star::container">XNameContainer</type>
82        and <type scope="com::sun::star::container">XNameReplace</type>
83        interfaces can be used to manage the item groups. It is possible to
84        insert, remove, and replace item groups.</p>
85
86        <p>The method <member scope="com::sun::star::container">
87        XNameReplace::replaceByName</member> can be used to replace the item
88        names in an existing group with a new collection of item names. An
89        implementation should support the following data types:
90
91        <ul>
92        <li>an empty <atom>any</atom> to remove all items and leave the
93        group empty. The group can be filled later with new item names.</li>
94        <li>a <atom dim="[]">string</atom> containing all item names that will
95        be part of the group.</li>
96        <li>an object supporting <type scope="com::sun::star::container">
97        XIndexAccess</type> containing elements that provide an item name per
98        element via the interface <type scope="com::sun::star::container">
99        XNamed</type>, for example an instance of <type>DataPilotFieldGroup
100        </type>.</li>
101        </ul></p>
102
103        <p>The method <member scope="com::sun::star::container">
104        XNameContainer::insertByName</member> can be used to insert a new
105        field group with the passed collection of item names. An
106        implementation should support the same data types as described above
107        for the method <member scope="com::sun::star::container">
108        XNameReplace::replaceByName</member>.</p>
109
110        <p>The method <member scope="com::sun::star::container">
111        XNameContainer::removeByName</member> can be used to remove an
112        existing field group.</p>
113     */
114    [optional] interface com::sun::star::container::XNameContainer;
115
116};
117
118//=============================================================================
119
120}; }; }; };
121
122#endif
123
124