diff options
Diffstat (limited to 'dbaccess/source/ui/inc/WTypeSelect.hxx')
-rw-r--r-- | dbaccess/source/ui/inc/WTypeSelect.hxx | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/dbaccess/source/ui/inc/WTypeSelect.hxx b/dbaccess/source/ui/inc/WTypeSelect.hxx new file mode 100644 index 000000000000..3f3c8433d124 --- /dev/null +++ b/dbaccess/source/ui/inc/WTypeSelect.hxx @@ -0,0 +1,142 @@ +/************************************************************************* + * + * 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_WIZ_TYPESELECT_HXX +#define DBAUI_WIZ_TYPESELECT_HXX + +#include "FieldDescControl.hxx" +#include "TypeInfo.hxx" +#include "WTabPage.hxx" + +#include <vcl/button.hxx> +#include <vcl/field.hxx> +#include <vcl/fixed.hxx> +#include <vcl/lstbox.hxx> + +class SvStream; +class SvParser; +namespace dbaui +{ + class OTableDesignHelpBar; + // ============================================================================================= + // OWizTypeSelectControl + // ============================================================================================= + class OWizTypeSelectControl : public OFieldDescControl + { + protected: + virtual void ActivateAggregate( EControlType eType ); + virtual void DeactivateAggregate( EControlType eType ); + + virtual void CellModified(long nRow, sal_uInt16 nColId ); + + virtual ::com::sun::star::lang::Locale GetLocale() const; + virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > GetFormatter() const; + virtual TOTypeInfoSP getTypeInfo(sal_Int32 _nPos); + virtual const OTypeInfoMap* getTypeInfo() const; + virtual sal_Bool isAutoIncrementValueEnabled() const; + virtual ::rtl::OUString getAutoIncrementValue() const; + + public: + OWizTypeSelectControl(Window* pParent, const ResId& rResId,OTableDesignHelpBar* pHelpBar=NULL); + virtual ~OWizTypeSelectControl(); + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData> getMetaData(); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getConnection(); + }; + + + // ======================================================== + // Wizard Page: OWizTypeSelectList + // definiert nur das ::com::sun::star::ucb::Command f"ur das Contextmenu + // ======================================================== + class OWizTypeSelectList : public MultiListBox + { + sal_Bool m_bPKey; + sal_Bool IsPrimaryKeyAllowed() const; + void setPrimaryKey( OFieldDescription* _pFieldDescr, + sal_uInt16 _nPos, + sal_Bool _bSet=sal_False); + protected: + virtual long PreNotify( NotifyEvent& rNEvt ); + public: + OWizTypeSelectList( Window* pParent, WinBits nStyle = WB_BORDER ) : MultiListBox(pParent,nStyle) {}; + OWizTypeSelectList( Window* pParent, const ResId& rResId ) : MultiListBox(pParent,rResId) {}; + void SetPKey(sal_Bool bPKey) { m_bPKey = bPKey; } + }; + + // ======================================================== + // Wizard Page: OWizTypeSelect + // Dient als Basis Klasse fuer unterschiedliche Kopiereigenschaften + // FillColumnList wird aufgerufen, wenn der Button AUTO ausgeloest wird. + // ======================================================== + class OWizTypeSelect : public OWizardPage + { + friend class OWizTypeSelectControl; + friend class OWizTypeSelectList; + + DECL_LINK( ColumnSelectHdl, MultiListBox* ); + DECL_LINK( ButtonClickHdl, Button * ); + protected: + OWizTypeSelectList m_lbColumnNames; + FixedLine m_flColumns; + OWizTypeSelectControl m_aTypeControl; + FixedLine m_flAutoType; + FixedText m_ftAuto; + NumericField m_etAuto; + PushButton m_pbAuto; + + Image m_imgPKey; + SvStream* m_pParserStream; // stream to read the tokens from or NULL + ::rtl::OUString m_sAutoIncrementValue; + sal_Int32 m_nDisplayRow; + sal_Bool m_bAutoIncrementEnabled; + sal_Bool m_bDuplicateName; + + void fillColumnList(sal_uInt32 nRows); + virtual SvParser* createReader(sal_Int32 _nRows) = 0; + + void EnableAuto(sal_Bool bEnable); + public: + virtual void Reset ( ); + virtual void ActivatePage( ); + virtual void Resize(); + virtual sal_Bool LeavePage(); + virtual String GetTitle() const; + + OWizTypeSelect(Window* pParent, SvStream* _pStream = NULL ); + virtual ~OWizTypeSelect(); + + inline void setDisplayRow(sal_Int32 _nRow) { m_nDisplayRow = _nRow - 1; } + inline void setDuplicateName(sal_Bool _bDuplicateName) { m_bDuplicateName = _bDuplicateName; } + }; + + // ======================================================== + typedef OWizTypeSelect* (*TypeSelectionPageFactory)( Window*, SvStream& ); +} +#endif // DBAUI_WIZ_TYPESELECT_HXX + + + |