1*2e2212a7SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2e2212a7SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2e2212a7SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2e2212a7SAndrew Rist * distributed with this work for additional information 6*2e2212a7SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2e2212a7SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2e2212a7SAndrew Rist * "License"); you may not use this file except in compliance 9*2e2212a7SAndrew Rist * with the License. You may obtain a copy of the License at 10*2e2212a7SAndrew Rist * 11*2e2212a7SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*2e2212a7SAndrew Rist * 13*2e2212a7SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2e2212a7SAndrew Rist * software distributed under the License is distributed on an 15*2e2212a7SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2e2212a7SAndrew Rist * KIND, either express or implied. See the License for the 17*2e2212a7SAndrew Rist * specific language governing permissions and limitations 18*2e2212a7SAndrew Rist * under the License. 19*2e2212a7SAndrew Rist * 20*2e2212a7SAndrew Rist *************************************************************/ 21*2e2212a7SAndrew Rist 22*2e2212a7SAndrew Rist 23cdf0e10cSrcweir #ifndef DBAUI_TABLECONNECTIONDATA_HXX 24cdf0e10cSrcweir #define DBAUI_TABLECONNECTIONDATA_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #ifndef DBAUI_CONNECTIONLINEDATA_HXX 27cdf0e10cSrcweir #include "ConnectionLineData.hxx" 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir #include "TableWindowData.hxx" 30cdf0e10cSrcweir #include <vector> 31cdf0e10cSrcweir #ifndef _RTTI_HXX 32cdf0e10cSrcweir #include <tools/rtti.hxx> 33cdf0e10cSrcweir #endif 34cdf0e10cSrcweir #ifndef _STRING_HXX 35cdf0e10cSrcweir #include <tools/string.hxx> 36cdf0e10cSrcweir #endif 37cdf0e10cSrcweir #include <boost/shared_ptr.hpp> 38cdf0e10cSrcweir 39cdf0e10cSrcweir namespace dbaui 40cdf0e10cSrcweir { 41cdf0e10cSrcweir #define MAX_CONN_COUNT 2 42cdf0e10cSrcweir //================================================================== 43cdf0e10cSrcweir // ConnData ---------->* ConnLineData 44cdf0e10cSrcweir // ^1 ^1 45cdf0e10cSrcweir // | | 46cdf0e10cSrcweir // Conn ---------->* ConnLine 47cdf0e10cSrcweir //================================================================== 48cdf0e10cSrcweir 49cdf0e10cSrcweir 50cdf0e10cSrcweir //================================================================== 51cdf0e10cSrcweir /* 52cdf0e10cSrcweir the class OTableConnectionData contains all connection data which exists between two windows 53cdf0e10cSrcweir **/ 54cdf0e10cSrcweir class OTableConnectionData 55cdf0e10cSrcweir { 56cdf0e10cSrcweir 57cdf0e10cSrcweir protected: 58cdf0e10cSrcweir TTableWindowData::value_type m_pReferencingTable; 59cdf0e10cSrcweir TTableWindowData::value_type m_pReferencedTable; 60cdf0e10cSrcweir String m_aConnName; 61cdf0e10cSrcweir 62cdf0e10cSrcweir OConnectionLineDataVec m_vConnLineData; 63cdf0e10cSrcweir 64cdf0e10cSrcweir void Init(); 65cdf0e10cSrcweir 66cdf0e10cSrcweir virtual OConnectionLineDataRef CreateLineDataObj(); 67cdf0e10cSrcweir virtual OConnectionLineDataRef CreateLineDataObj( const OConnectionLineData& rConnLineData ); 68cdf0e10cSrcweir 69cdf0e10cSrcweir OTableConnectionData& operator=( const OTableConnectionData& rConnData ); 70cdf0e10cSrcweir public: 71cdf0e10cSrcweir OTableConnectionData(); 72cdf0e10cSrcweir OTableConnectionData(const TTableWindowData::value_type& _pReferencingTable,const TTableWindowData::value_type& _pReferencedTable, const String& rConnName = String() ); 73cdf0e10cSrcweir OTableConnectionData( const OTableConnectionData& rConnData ); 74cdf0e10cSrcweir virtual ~OTableConnectionData(); 75cdf0e10cSrcweir 76cdf0e10cSrcweir // sich aus einer Quelle initialisieren (das ist mir irgendwie angenehmer als ein virtueller Zuweisungsoperator) 77cdf0e10cSrcweir virtual void CopyFrom(const OTableConnectionData& rSource); 78cdf0e10cSrcweir 79cdf0e10cSrcweir // eine neue Instanz meines eigenen Typs liefern (braucht NICHT initialisiert sein) 80cdf0e10cSrcweir virtual OTableConnectionData* NewInstance() const; 81cdf0e10cSrcweir // (von OTableConnectionData abgeleitete Klasse muessen entsprechend eine Instanz ihrer Klasse liefern) 82cdf0e10cSrcweir 83cdf0e10cSrcweir sal_Bool SetConnLine( sal_uInt16 nIndex, const String& rSourceFieldName, const String& rDestFieldName ); 84cdf0e10cSrcweir sal_Bool AppendConnLine( const ::rtl::OUString& rSourceFieldName, const ::rtl::OUString& rDestFieldName ); 85cdf0e10cSrcweir void ResetConnLines( sal_Bool bUseDefaults = sal_True ); 86cdf0e10cSrcweir 87cdf0e10cSrcweir /** normalizeLines moves the empty lines to the back 88cdf0e10cSrcweir */ 89cdf0e10cSrcweir void normalizeLines(); 90cdf0e10cSrcweir // loescht die Liste der ConnLines, bei bUseDefaults == sal_True werden danach MAX_CONN_COUNT neue Dummy-Linien eingefuegt 91cdf0e10cSrcweir GetConnLineDataList()92cdf0e10cSrcweir OConnectionLineDataVec* GetConnLineDataList(){ return &m_vConnLineData; } 93cdf0e10cSrcweir getReferencingTable() const94cdf0e10cSrcweir inline TTableWindowData::value_type getReferencingTable() const { return m_pReferencingTable; } getReferencedTable() const95cdf0e10cSrcweir inline TTableWindowData::value_type getReferencedTable() const { return m_pReferencedTable; } 96cdf0e10cSrcweir setReferencingTable(const TTableWindowData::value_type & _pTable)97cdf0e10cSrcweir inline void setReferencingTable(const TTableWindowData::value_type& _pTable) { m_pReferencingTable = _pTable; } setReferencedTable(const TTableWindowData::value_type & _pTable)98cdf0e10cSrcweir inline void setReferencedTable(const TTableWindowData::value_type& _pTable) { m_pReferencedTable = _pTable; } 99cdf0e10cSrcweir GetConnName() const100cdf0e10cSrcweir String GetConnName() const { return m_aConnName; } 101cdf0e10cSrcweir SetConnName(const String & rConnName)102cdf0e10cSrcweir virtual void SetConnName( const String& rConnName ){ m_aConnName = rConnName; } 103cdf0e10cSrcweir /** Update create a new connection 104cdf0e10cSrcweir 105cdf0e10cSrcweir @return true if successful 106cdf0e10cSrcweir */ Update()107cdf0e10cSrcweir virtual sal_Bool Update(){ return sal_True; } 108cdf0e10cSrcweir }; 109cdf0e10cSrcweir 110cdf0e10cSrcweir typedef ::std::vector< ::boost::shared_ptr<OTableConnectionData> > TTableConnectionData; 111cdf0e10cSrcweir 112cdf0e10cSrcweir } 113cdf0e10cSrcweir #endif // DBAUI_TABLECONNECTIONDATA_HXX 114cdf0e10cSrcweir 115cdf0e10cSrcweir 116