diff options
Diffstat (limited to 'dbaccess/source/ui/inc/TableGrantCtrl.hxx')
-rw-r--r-- | dbaccess/source/ui/inc/TableGrantCtrl.hxx | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/dbaccess/source/ui/inc/TableGrantCtrl.hxx b/dbaccess/source/ui/inc/TableGrantCtrl.hxx new file mode 100644 index 000000000000..5dae0103f442 --- /dev/null +++ b/dbaccess/source/ui/inc/TableGrantCtrl.hxx @@ -0,0 +1,126 @@ +/************************************************************************* + * + * 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 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 |