diff options
Diffstat (limited to 'dbaccess/source/ui/inc/TableConnectionData.hxx')
-rw-r--r-- | dbaccess/source/ui/inc/TableConnectionData.hxx | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/dbaccess/source/ui/inc/TableConnectionData.hxx b/dbaccess/source/ui/inc/TableConnectionData.hxx new file mode 100644 index 000000000000..79ccd802d564 --- /dev/null +++ b/dbaccess/source/ui/inc/TableConnectionData.hxx @@ -0,0 +1,114 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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_TABLECONNECTIONDATA_HXX +#define DBAUI_TABLECONNECTIONDATA_HXX + +#include "ConnectionLineData.hxx" +#include "TableWindowData.hxx" +#include <vector> +#include <tools/rtti.hxx> +#include <tools/string.hxx> +#include <boost/shared_ptr.hpp> + +namespace dbaui +{ + //================================================================== + // ConnData ---------->* ConnLineData + // ^1 ^1 + // | | + // Conn ---------->* ConnLine + //================================================================== + + + //================================================================== + /* + the class OTableConnectionData contains all connection data which exists between two windows + **/ + class OTableConnectionData + { + + protected: + TTableWindowData::value_type m_pReferencingTable; + TTableWindowData::value_type m_pReferencedTable; + String m_aConnName; + + OConnectionLineDataVec m_vConnLineData; + + void Init(); + + virtual OConnectionLineDataRef CreateLineDataObj(); + virtual OConnectionLineDataRef CreateLineDataObj( const OConnectionLineData& rConnLineData ); + + OTableConnectionData& operator=( const OTableConnectionData& rConnData ); + public: + OTableConnectionData(); + OTableConnectionData(const TTableWindowData::value_type& _pReferencingTable,const TTableWindowData::value_type& _pReferencedTable, const String& rConnName = String() ); + OTableConnectionData( const OTableConnectionData& rConnData ); + virtual ~OTableConnectionData(); + + // sich aus einer Quelle initialisieren (das ist mir irgendwie angenehmer als ein virtueller Zuweisungsoperator) + virtual void CopyFrom(const OTableConnectionData& rSource); + + // eine neue Instanz meines eigenen Typs liefern (braucht NICHT initialisiert sein) + virtual OTableConnectionData* NewInstance() const; + // (von OTableConnectionData abgeleitete Klasse muessen entsprechend eine Instanz ihrer Klasse liefern) + + sal_Bool SetConnLine( sal_uInt16 nIndex, const String& rSourceFieldName, const String& rDestFieldName ); + sal_Bool AppendConnLine( const ::rtl::OUString& rSourceFieldName, const ::rtl::OUString& rDestFieldName ); + void ResetConnLines( sal_Bool bUseDefaults = sal_True ); + + /** normalizeLines moves the empty lines to the back + */ + void normalizeLines(); + // loescht die Liste der ConnLines, bei bUseDefaults == sal_True werden danach MAX_CONN_COUNT neue Dummy-Linien eingefuegt + + OConnectionLineDataVec* GetConnLineDataList(){ return &m_vConnLineData; } + + inline TTableWindowData::value_type getReferencingTable() const { return m_pReferencingTable; } + inline TTableWindowData::value_type getReferencedTable() const { return m_pReferencedTable; } + + inline void setReferencingTable(const TTableWindowData::value_type& _pTable) { m_pReferencingTable = _pTable; } + inline void setReferencedTable(const TTableWindowData::value_type& _pTable) { m_pReferencedTable = _pTable; } + + String GetConnName() const { return m_aConnName; } + + virtual void SetConnName( const String& rConnName ){ m_aConnName = rConnName; } + /** Update create a new connection + + @return true if successful + */ + virtual sal_Bool Update(){ return sal_True; } + }; + + typedef ::std::vector< ::boost::shared_ptr<OTableConnectionData> > TTableConnectionData; + +} +#endif // DBAUI_TABLECONNECTIONDATA_HXX + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |