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
|
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: TableGrantCtrl.hxx,v $
*
* $Revision: 1.10 $
*
* last change: $Author: rt $ $Date: 2007-07-06 08:25:15 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef DBAUI_TABLEGRANTCONTROL_HXX
#define DBAUI_TABLEGRANTCONTROL_HXX
#ifndef _SVTOOLS_EDITBROWSEBOX_HXX_
#include <svtools/editbrowsebox.hxx>
#endif
#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#endif
#ifndef _COM_SUN_STAR_SDBCX_XAUTHORIZABLE_HPP_
#include <com/sun/star/sdbcx/XAuthorizable.hpp>
#endif
#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#endif
#ifndef _COMPHELPER_STLTYPES_HXX_
#include <comphelper/stl_types.hxx>
#endif
#ifndef _DBAUI_MODULE_DBU_HXX_
#include "moduledbu.hxx"
#endif
class Edit;
namespace dbaui
{
class OTableGrantControl : public ::svt::EditBrowseBox
{
typedef struct
{
sal_Int32 nRights;
sal_Int32 nWithGrant;
} TPrivileges;
DECLARE_STL_USTRINGACCESS_MAP(TPrivileges,TTablePrivilegeMap);
OModuleClient m_aModuleClient;
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xUsers;
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xTables;
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory> m_xORB;
::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XAuthorizable> m_xGrantUser;
::com::sun::star::uno::Sequence< ::rtl::OUString> m_aTableNames;
mutable TTablePrivilegeMap m_aPrivMap;
::rtl::OUString m_sUserName;
::svt::CheckBoxControl* m_pCheckCell;
Edit* m_pEdit;
long m_nDataPos;
BOOL m_bEnable;
ULONG m_nDeactivateEvent;
public:
OTableGrantControl( Window* pParent,const ResId& _RsId);
virtual ~OTableGrantControl();
void UpdateTables();
void setUserName(const ::rtl::OUString _sUserName);
void setGrantUser(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XAuthorizable>& _xGrantUser);
void setTablesSupplier(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier >& _xTablesSup);
void setORB(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _xORB);
virtual void Init();
// IAccessibleTableProvider
/** Creates the accessible object of a data table cell.
@param nRow The row index of the cell.
@param nColumnId The column ID of the cell.
@return The XAccessible interface of the specified cell. */
virtual ::com::sun::star::uno::Reference<
::com::sun::star::accessibility::XAccessible >
CreateAccessibleCell( sal_Int32 nRow, sal_uInt16 nColumnId );
protected:
virtual void Resize();
virtual long PreNotify(NotifyEvent& rNEvt );
virtual BOOL IsTabAllowed(BOOL bForward) const;
virtual void InitController( ::svt::CellControllerRef& rController, long nRow, USHORT nCol );
virtual ::svt::CellController* GetController( long nRow, USHORT nCol );
virtual void PaintCell( OutputDevice& rDev, const Rectangle& rRect, USHORT nColId ) const;
virtual BOOL SeekRow( long nRow );
virtual BOOL SaveModified();
virtual String GetCellText( long nRow, USHORT nColId ) const;
virtual void CellModified();
private:
DECL_LINK( AsynchActivate, void* );
DECL_LINK( AsynchDeactivate, void* );
sal_Bool isAllowed(USHORT _nColumnId,sal_Int32 _nPrivilege) const;
void fillPrivilege(sal_Int32 _nRow) const;
TTablePrivilegeMap::const_iterator findPrivilege(sal_Int32 _nRow) const;
};
}
#endif // DBAUI_TABLEGRANTCONTROL_HXX
|