summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/awt/grid/XGridDataModel.idl
blob: 5cc4085807e1dd87766a9823316806b4a9657d0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*************************************************************************
 *
 * $Revision: 1.8 $
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/
#ifndef __com_sun_star_awt_grid_XGridDataModel_idl__
#define __com_sun_star_awt_grid_XGridDataModel_idl__


#include <com/sun/star/lang/XComponent.idl>
#include <com/sun/star/awt/grid/XGridDataListener.idl>


//=============================================================================

module com {  module sun {  module star {  module awt { module grid {

//=============================================================================
/** An instance of this interface is used by the <type>UnoControlGrid</type> to
    retrieve the content data that is displayed in the actual control.

    If you do not need your own model implementation, you can also use the <type>DefaultGridDataModel</type>.

    @since OOo 3.3.0
*/
interface XGridDataModel: ::com::sun::star::lang::XComponent
{
    /** Specifies the height of each row.
    */
    [attribute] long RowHeight;

    /** Contains the row header.
    */
    [attribute] sequence< string > RowHeaders;

    /** Returns the content of each row.
    */
    [attribute,readonly] sequence< sequence< any > > Data;

    /**Specifies the width of row header.
    */
    [attribute] long RowHeaderWidth;

    /** Returns the number of rows in in the model.
        @returns
                the number of rows.
    */
    long getRowCount();

    /** Adds a row to the model.

        @param headername
                specifies the name of the row.
        @param data
                the content of the row.
    */
    void addRow( [in] string headername, [in] sequence< any > data );

    /** Removes a row from the model.

        @param index
                the index of the row that should be removed.
    */
    void removeRow( [in] long index);

    /** Removes all rows from the model.
    */
    void removeAll();

    /**Updates the content of a given cell.
        @param row
            the row index
        @param column
            the column index
        @param value
            the new value of the cell.
    */
    void updateCell([in] long row, [in] long column, [in] any value );

    /**Updates the content of a given row.
        @param row
            the row index
        @param columns
            column indexes of the cells, which should be updated
        @param value
            the new values of the cells.
    */
    void updateRow([in] long row, [in] sequence< long > columns, [in] sequence< any > values);

    //-------------------------------------------------------------------------

    /** Adds a listener for the <type>GridDataEvent</type> posted after the grid changes.
        @param Listener
            the listener to add.
    */
    [oneway] void addDataListener( [in] XGridDataListener  listener);

    //-------------------------------------------------------------------------

    /** Removes a listener previously added with <method>addDataListener()</method>.
        @param Listener
            the listener to remove.
    */
    [oneway] void removeDataListener( [in] XGridDataListener listener);

};

//=============================================================================

}; }; }; };};

#endif