1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski #ifndef DBAUI_QTABLECONNECTIONDATA_HXX
24*b1cdbd2cSJim Jagielski #define DBAUI_QTABLECONNECTIONDATA_HXX
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski #ifndef DBAUI_TABLECONNECTIONDATA_HXX
27*b1cdbd2cSJim Jagielski #include "TableConnectionData.hxx"
28*b1cdbd2cSJim Jagielski #endif
29*b1cdbd2cSJim Jagielski #ifndef DBAUI_TABLEFIELDDESC_HXX
30*b1cdbd2cSJim Jagielski #include "TableFieldDescription.hxx"
31*b1cdbd2cSJim Jagielski #endif
32*b1cdbd2cSJim Jagielski #ifndef DBAUI_ENUMTYPES_HXX
33*b1cdbd2cSJim Jagielski #include "QEnumTypes.hxx"
34*b1cdbd2cSJim Jagielski #endif
35*b1cdbd2cSJim Jagielski #ifndef _RTTI_HXX
36*b1cdbd2cSJim Jagielski #include <tools/rtti.hxx>
37*b1cdbd2cSJim Jagielski #endif
38*b1cdbd2cSJim Jagielski //#ifndef DBAUI_QUERYCONTROLLER_HXX
39*b1cdbd2cSJim Jagielski //#include "querycontroller.hxx"
40*b1cdbd2cSJim Jagielski //#endif
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski namespace dbaui
43*b1cdbd2cSJim Jagielski {
44*b1cdbd2cSJim Jagielski 	class OQueryTableConnectionData : public OTableConnectionData
45*b1cdbd2cSJim Jagielski 	{
46*b1cdbd2cSJim Jagielski 		sal_Int32		m_nFromEntryIndex;
47*b1cdbd2cSJim Jagielski 		sal_Int32		m_nDestEntryIndex;
48*b1cdbd2cSJim Jagielski 		EJoinType		m_eJoinType;
49*b1cdbd2cSJim Jagielski         bool            m_bNatural;
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski 		ETableFieldType	m_eFromType;
52*b1cdbd2cSJim Jagielski 		ETableFieldType	m_eDestType;
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski 	protected:
55*b1cdbd2cSJim Jagielski 		// fuer das Anlegen und Duplizieren von Lines vom eigenen Typ
56*b1cdbd2cSJim Jagielski 		virtual OConnectionLineDataRef CreateLineDataObj();
57*b1cdbd2cSJim Jagielski 		virtual OConnectionLineDataRef CreateLineDataObj( const OConnectionLineData& rConnLineData );
58*b1cdbd2cSJim Jagielski 
59*b1cdbd2cSJim Jagielski 		OQueryTableConnectionData& operator=( const OQueryTableConnectionData& rConnData );
60*b1cdbd2cSJim Jagielski 	public:
61*b1cdbd2cSJim Jagielski 		OQueryTableConnectionData();
62*b1cdbd2cSJim Jagielski 		OQueryTableConnectionData( const OQueryTableConnectionData& rConnData );
63*b1cdbd2cSJim Jagielski 		OQueryTableConnectionData( const TTableWindowData::value_type& _pReferencingTable,const TTableWindowData::value_type& _pReferencedTable,
64*b1cdbd2cSJim Jagielski 			const ::rtl::OUString& rConnName=::rtl::OUString());
65*b1cdbd2cSJim Jagielski 		virtual ~OQueryTableConnectionData();
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski 		virtual void CopyFrom(const OTableConnectionData& rSource);
68*b1cdbd2cSJim Jagielski 		virtual OTableConnectionData* NewInstance() const;
69*b1cdbd2cSJim Jagielski 
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski 		/** Update create a new connection
72*b1cdbd2cSJim Jagielski 
73*b1cdbd2cSJim Jagielski 			@return true if successful
74*b1cdbd2cSJim Jagielski 		*/
75*b1cdbd2cSJim Jagielski 		virtual sal_Bool Update();
76*b1cdbd2cSJim Jagielski 
77*b1cdbd2cSJim Jagielski 		::rtl::OUString	GetAliasName(EConnectionSide nWhich) const;
78*b1cdbd2cSJim Jagielski 
GetFieldIndex(EConnectionSide nWhich) const79*b1cdbd2cSJim Jagielski 		sal_Int32		GetFieldIndex(EConnectionSide nWhich) const { return nWhich==JTCS_TO ? m_nDestEntryIndex : m_nFromEntryIndex; }
SetFieldIndex(EConnectionSide nWhich,sal_Int32 nVal)80*b1cdbd2cSJim Jagielski 		void			SetFieldIndex(EConnectionSide nWhich, sal_Int32 nVal) { if (nWhich==JTCS_TO) m_nDestEntryIndex=nVal; else m_nFromEntryIndex=nVal; }
81*b1cdbd2cSJim Jagielski 
GetFieldType(EConnectionSide nWhich) const82*b1cdbd2cSJim Jagielski 		ETableFieldType	GetFieldType(EConnectionSide nWhich) const { return nWhich==JTCS_TO ? m_eDestType : m_eFromType; }
SetFieldType(EConnectionSide nWhich,ETableFieldType eType)83*b1cdbd2cSJim Jagielski 		void			SetFieldType(EConnectionSide nWhich, ETableFieldType eType) { if (nWhich==JTCS_TO) m_eDestType=eType; else m_eFromType=eType; }
84*b1cdbd2cSJim Jagielski 
85*b1cdbd2cSJim Jagielski 		void			InitFromDrag(const OTableFieldDescRef& rDragLeft, const OTableFieldDescRef& rDragRight);
86*b1cdbd2cSJim Jagielski 
GetJoinType() const87*b1cdbd2cSJim Jagielski 		EJoinType		GetJoinType() const { return m_eJoinType; };
SetJoinType(const EJoinType & eJT)88*b1cdbd2cSJim Jagielski 		void			SetJoinType(const EJoinType& eJT) { m_eJoinType = eJT; };
89*b1cdbd2cSJim Jagielski 
setNatural(bool _bNatural)90*b1cdbd2cSJim Jagielski         inline void setNatural(bool _bNatural) { m_bNatural = _bNatural; }
isNatural() const91*b1cdbd2cSJim Jagielski         inline bool isNatural() const { return m_bNatural; }
92*b1cdbd2cSJim Jagielski 	};
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski }
95*b1cdbd2cSJim Jagielski #endif // DBAUI_QTABLECONNECTIONDATA_HXX
96