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 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_dbaccess.hxx"
26*b1cdbd2cSJim Jagielski #ifndef DBAUI_TABLEFIELDCONTROL_HXX
27*b1cdbd2cSJim Jagielski #include "TableFieldControl.hxx"
28*b1cdbd2cSJim Jagielski #endif
29*b1cdbd2cSJim Jagielski #ifndef DBUI_TABLECONTROLLER_HXX
30*b1cdbd2cSJim Jagielski #include "TableController.hxx"
31*b1cdbd2cSJim Jagielski #endif
32*b1cdbd2cSJim Jagielski #ifndef DBAUI_TABLEDESIGNVIEW_HXX
33*b1cdbd2cSJim Jagielski #include "TableDesignView.hxx"
34*b1cdbd2cSJim Jagielski #endif
35*b1cdbd2cSJim Jagielski #ifndef DBAUI_TABLEEDITORCONTROL_HXX
36*b1cdbd2cSJim Jagielski #include "TEditControl.hxx"
37*b1cdbd2cSJim Jagielski #endif
38*b1cdbd2cSJim Jagielski #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC
39*b1cdbd2cSJim Jagielski #include "dbustrings.hrc"
40*b1cdbd2cSJim Jagielski #endif
41*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_SDBC_XDATABASEMETADATA_HPP_
42*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
43*b1cdbd2cSJim Jagielski #endif
44*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
45*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/PropertyAttribute.hpp>
46*b1cdbd2cSJim Jagielski #endif
47*b1cdbd2cSJim Jagielski #ifndef _COMPHELPER_TYPES_HXX_
48*b1cdbd2cSJim Jagielski #include <comphelper/types.hxx>
49*b1cdbd2cSJim Jagielski #endif
50*b1cdbd2cSJim Jagielski #ifndef DBAUI_TYPEINFO_HXX
51*b1cdbd2cSJim Jagielski #include "TypeInfo.hxx"
52*b1cdbd2cSJim Jagielski #endif
53*b1cdbd2cSJim Jagielski #ifndef DBAUI_TOOLS_HXX
54*b1cdbd2cSJim Jagielski #include "UITools.hxx"
55*b1cdbd2cSJim Jagielski #endif
56*b1cdbd2cSJim Jagielski 
57*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno;
58*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::beans;
59*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::util;
60*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::lang;
61*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::sdbc;
62*b1cdbd2cSJim Jagielski using namespace dbaui;
OTableFieldControl(Window * pParent,OTableDesignHelpBar * pHelpBar)63*b1cdbd2cSJim Jagielski OTableFieldControl::OTableFieldControl( Window* pParent, OTableDesignHelpBar* pHelpBar) :OFieldDescControl(pParent,pHelpBar)
64*b1cdbd2cSJim Jagielski {
65*b1cdbd2cSJim Jagielski }
66*b1cdbd2cSJim Jagielski //------------------------------------------------------------------
CellModified(long nRow,sal_uInt16 nColId)67*b1cdbd2cSJim Jagielski void OTableFieldControl::CellModified(long nRow, sal_uInt16 nColId )
68*b1cdbd2cSJim Jagielski {
69*b1cdbd2cSJim Jagielski 	GetCtrl()->CellModified(nRow,nColId);
70*b1cdbd2cSJim Jagielski }
71*b1cdbd2cSJim Jagielski //------------------------------------------------------------------
GetCtrl() const72*b1cdbd2cSJim Jagielski OTableEditorCtrl* OTableFieldControl::GetCtrl() const
73*b1cdbd2cSJim Jagielski {
74*b1cdbd2cSJim Jagielski 	OTableDesignView* pDesignWin = static_cast<OTableDesignView*>(GetParent()->GetParent()->GetParent()->GetParent());
75*b1cdbd2cSJim Jagielski 	OSL_ENSURE(pDesignWin,"no view!");
76*b1cdbd2cSJim Jagielski 	return pDesignWin->GetEditorCtrl();
77*b1cdbd2cSJim Jagielski }
78*b1cdbd2cSJim Jagielski //------------------------------------------------------------------
IsReadOnly()79*b1cdbd2cSJim Jagielski sal_Bool OTableFieldControl::IsReadOnly()
80*b1cdbd2cSJim Jagielski {
81*b1cdbd2cSJim Jagielski 	sal_Bool bRead(GetCtrl()->IsReadOnly());
82*b1cdbd2cSJim Jagielski 	if( !bRead )
83*b1cdbd2cSJim Jagielski 	{
84*b1cdbd2cSJim Jagielski 		// Die Spalten einer ::com::sun::star::sdbcx::View k�nnen nicht ver�ndert werden
85*b1cdbd2cSJim Jagielski 		Reference<XPropertySet> xTable = GetCtrl()->GetView()->getController().getTable();
86*b1cdbd2cSJim Jagielski 		if(xTable.is() && ::comphelper::getString(xTable->getPropertyValue(PROPERTY_TYPE)) == ::rtl::OUString::createFromAscii("VIEW"))
87*b1cdbd2cSJim Jagielski 			bRead = sal_True;
88*b1cdbd2cSJim Jagielski 		else
89*b1cdbd2cSJim Jagielski 		{
90*b1cdbd2cSJim Jagielski 			 ::boost::shared_ptr<OTableRow>  pCurRow = GetCtrl()->GetActRow();
91*b1cdbd2cSJim Jagielski 			if( pCurRow )
92*b1cdbd2cSJim Jagielski 				bRead = pCurRow->IsReadOnly();
93*b1cdbd2cSJim Jagielski 		}
94*b1cdbd2cSJim Jagielski 	}
95*b1cdbd2cSJim Jagielski 	return bRead;
96*b1cdbd2cSJim Jagielski }
97*b1cdbd2cSJim Jagielski //------------------------------------------------------------------
ActivateAggregate(EControlType eType)98*b1cdbd2cSJim Jagielski void OTableFieldControl::ActivateAggregate( EControlType eType )
99*b1cdbd2cSJim Jagielski {
100*b1cdbd2cSJim Jagielski 	switch(eType)
101*b1cdbd2cSJim Jagielski 	{
102*b1cdbd2cSJim Jagielski 		case tpColumnName:
103*b1cdbd2cSJim Jagielski 		case tpType:
104*b1cdbd2cSJim Jagielski 			break;
105*b1cdbd2cSJim Jagielski 		default:
106*b1cdbd2cSJim Jagielski 			OFieldDescControl::ActivateAggregate(eType);
107*b1cdbd2cSJim Jagielski 	}
108*b1cdbd2cSJim Jagielski }
109*b1cdbd2cSJim Jagielski //------------------------------------------------------------------
DeactivateAggregate(EControlType eType)110*b1cdbd2cSJim Jagielski void OTableFieldControl::DeactivateAggregate( EControlType eType )
111*b1cdbd2cSJim Jagielski {
112*b1cdbd2cSJim Jagielski 	switch(eType)
113*b1cdbd2cSJim Jagielski 	{
114*b1cdbd2cSJim Jagielski 		case tpColumnName:
115*b1cdbd2cSJim Jagielski 		case tpType:
116*b1cdbd2cSJim Jagielski 			break;
117*b1cdbd2cSJim Jagielski 		default:
118*b1cdbd2cSJim Jagielski 			OFieldDescControl::DeactivateAggregate(eType);
119*b1cdbd2cSJim Jagielski 	}
120*b1cdbd2cSJim Jagielski }
121*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
SetModified(sal_Bool bModified)122*b1cdbd2cSJim Jagielski void OTableFieldControl::SetModified(sal_Bool bModified)
123*b1cdbd2cSJim Jagielski {
124*b1cdbd2cSJim Jagielski 	GetCtrl()->GetView()->getController().setModified(bModified);
125*b1cdbd2cSJim Jagielski }
126*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
getConnection()127*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> OTableFieldControl::getConnection()
128*b1cdbd2cSJim Jagielski {
129*b1cdbd2cSJim Jagielski 	return GetCtrl()->GetView()->getController().getConnection();
130*b1cdbd2cSJim Jagielski }
131*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
getMetaData()132*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData> OTableFieldControl::getMetaData()
133*b1cdbd2cSJim Jagielski {
134*b1cdbd2cSJim Jagielski 	Reference<XConnection> xCon = GetCtrl()->GetView()->getController().getConnection();
135*b1cdbd2cSJim Jagielski 	if(!xCon.is())
136*b1cdbd2cSJim Jagielski 		return NULL;
137*b1cdbd2cSJim Jagielski 	return xCon->getMetaData();
138*b1cdbd2cSJim Jagielski }
139*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
GetFormatter() const140*b1cdbd2cSJim Jagielski Reference< XNumberFormatter >	OTableFieldControl::GetFormatter() const
141*b1cdbd2cSJim Jagielski {
142*b1cdbd2cSJim Jagielski 	return GetCtrl()->GetView()->getController().getNumberFormatter();
143*b1cdbd2cSJim Jagielski }
144*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
getTypeInfo(sal_Int32 _nPos)145*b1cdbd2cSJim Jagielski TOTypeInfoSP OTableFieldControl::getTypeInfo(sal_Int32 _nPos)
146*b1cdbd2cSJim Jagielski {
147*b1cdbd2cSJim Jagielski 	return GetCtrl()->GetView()->getController().getTypeInfo(_nPos);
148*b1cdbd2cSJim Jagielski }
149*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
getTypeInfo() const150*b1cdbd2cSJim Jagielski const OTypeInfoMap*	OTableFieldControl::getTypeInfo() const
151*b1cdbd2cSJim Jagielski {
152*b1cdbd2cSJim Jagielski 	return const_cast<OTableFieldControl*>(this)->GetCtrl()->GetView()->getController().getTypeInfo();
153*b1cdbd2cSJim Jagielski }
154*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
GetLocale() const155*b1cdbd2cSJim Jagielski Locale OTableFieldControl::GetLocale() const
156*b1cdbd2cSJim Jagielski {
157*b1cdbd2cSJim Jagielski 	return const_cast<OTableFieldControl*>(this)->GetCtrl()->GetView()->getLocale();
158*b1cdbd2cSJim Jagielski }
159*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
isAutoIncrementValueEnabled() const160*b1cdbd2cSJim Jagielski sal_Bool OTableFieldControl::isAutoIncrementValueEnabled() const
161*b1cdbd2cSJim Jagielski {
162*b1cdbd2cSJim Jagielski 	return const_cast<OTableFieldControl*>(this)->GetCtrl()->GetView()->getController().isAutoIncrementValueEnabled();
163*b1cdbd2cSJim Jagielski }
164*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
getAutoIncrementValue() const165*b1cdbd2cSJim Jagielski ::rtl::OUString OTableFieldControl::getAutoIncrementValue() const
166*b1cdbd2cSJim Jagielski {
167*b1cdbd2cSJim Jagielski 	return const_cast<OTableFieldControl*>(this)->GetCtrl()->GetView()->getController().getAutoIncrementValue();
168*b1cdbd2cSJim Jagielski }
169*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
170*b1cdbd2cSJim Jagielski 
171*b1cdbd2cSJim Jagielski 
172*b1cdbd2cSJim Jagielski 
173*b1cdbd2cSJim Jagielski 
174