1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_dbaccess.hxx" 26 #ifndef DBAUI_TABLEFIELDCONTROL_HXX 27 #include "TableFieldControl.hxx" 28 #endif 29 #ifndef DBUI_TABLECONTROLLER_HXX 30 #include "TableController.hxx" 31 #endif 32 #ifndef DBAUI_TABLEDESIGNVIEW_HXX 33 #include "TableDesignView.hxx" 34 #endif 35 #ifndef DBAUI_TABLEEDITORCONTROL_HXX 36 #include "TEditControl.hxx" 37 #endif 38 #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC 39 #include "dbustrings.hrc" 40 #endif 41 #ifndef _COM_SUN_STAR_SDBC_XDATABASEMETADATA_HPP_ 42 #include <com/sun/star/sdbc/XDatabaseMetaData.hpp> 43 #endif 44 #ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_ 45 #include <com/sun/star/beans/PropertyAttribute.hpp> 46 #endif 47 #ifndef _COMPHELPER_TYPES_HXX_ 48 #include <comphelper/types.hxx> 49 #endif 50 #ifndef DBAUI_TYPEINFO_HXX 51 #include "TypeInfo.hxx" 52 #endif 53 #ifndef DBAUI_TOOLS_HXX 54 #include "UITools.hxx" 55 #endif 56 57 using namespace ::com::sun::star::uno; 58 using namespace ::com::sun::star::beans; 59 using namespace ::com::sun::star::util; 60 using namespace ::com::sun::star::lang; 61 using namespace ::com::sun::star::sdbc; 62 using namespace dbaui; 63 OTableFieldControl::OTableFieldControl( Window* pParent, OTableDesignHelpBar* pHelpBar) :OFieldDescControl(pParent,pHelpBar) 64 { 65 } 66 //------------------------------------------------------------------ 67 void OTableFieldControl::CellModified(long nRow, sal_uInt16 nColId ) 68 { 69 GetCtrl()->CellModified(nRow,nColId); 70 } 71 //------------------------------------------------------------------ 72 OTableEditorCtrl* OTableFieldControl::GetCtrl() const 73 { 74 OTableDesignView* pDesignWin = static_cast<OTableDesignView*>(GetParent()->GetParent()->GetParent()->GetParent()); 75 OSL_ENSURE(pDesignWin,"no view!"); 76 return pDesignWin->GetEditorCtrl(); 77 } 78 //------------------------------------------------------------------ 79 sal_Bool OTableFieldControl::IsReadOnly() 80 { 81 sal_Bool bRead(GetCtrl()->IsReadOnly()); 82 if( !bRead ) 83 { 84 // Die Spalten einer ::com::sun::star::sdbcx::View k�nnen nicht ver�ndert werden 85 Reference<XPropertySet> xTable = GetCtrl()->GetView()->getController().getTable(); 86 if(xTable.is() && ::comphelper::getString(xTable->getPropertyValue(PROPERTY_TYPE)) == ::rtl::OUString::createFromAscii("VIEW")) 87 bRead = sal_True; 88 else 89 { 90 ::boost::shared_ptr<OTableRow> pCurRow = GetCtrl()->GetActRow(); 91 if( pCurRow ) 92 bRead = pCurRow->IsReadOnly(); 93 } 94 } 95 return bRead; 96 } 97 //------------------------------------------------------------------ 98 void OTableFieldControl::ActivateAggregate( EControlType eType ) 99 { 100 switch(eType) 101 { 102 case tpColumnName: 103 case tpType: 104 break; 105 default: 106 OFieldDescControl::ActivateAggregate(eType); 107 } 108 } 109 //------------------------------------------------------------------ 110 void OTableFieldControl::DeactivateAggregate( EControlType eType ) 111 { 112 switch(eType) 113 { 114 case tpColumnName: 115 case tpType: 116 break; 117 default: 118 OFieldDescControl::DeactivateAggregate(eType); 119 } 120 } 121 // ----------------------------------------------------------------------------- 122 void OTableFieldControl::SetModified(sal_Bool bModified) 123 { 124 GetCtrl()->GetView()->getController().setModified(bModified); 125 } 126 // ----------------------------------------------------------------------------- 127 ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> OTableFieldControl::getConnection() 128 { 129 return GetCtrl()->GetView()->getController().getConnection(); 130 } 131 // ----------------------------------------------------------------------------- 132 ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData> OTableFieldControl::getMetaData() 133 { 134 Reference<XConnection> xCon = GetCtrl()->GetView()->getController().getConnection(); 135 if(!xCon.is()) 136 return NULL; 137 return xCon->getMetaData(); 138 } 139 // ----------------------------------------------------------------------------- 140 Reference< XNumberFormatter > OTableFieldControl::GetFormatter() const 141 { 142 return GetCtrl()->GetView()->getController().getNumberFormatter(); 143 } 144 // ----------------------------------------------------------------------------- 145 TOTypeInfoSP OTableFieldControl::getTypeInfo(sal_Int32 _nPos) 146 { 147 return GetCtrl()->GetView()->getController().getTypeInfo(_nPos); 148 } 149 // ----------------------------------------------------------------------------- 150 const OTypeInfoMap* OTableFieldControl::getTypeInfo() const 151 { 152 return const_cast<OTableFieldControl*>(this)->GetCtrl()->GetView()->getController().getTypeInfo(); 153 } 154 // ----------------------------------------------------------------------------- 155 Locale OTableFieldControl::GetLocale() const 156 { 157 return const_cast<OTableFieldControl*>(this)->GetCtrl()->GetView()->getLocale(); 158 } 159 // ----------------------------------------------------------------------------- 160 sal_Bool OTableFieldControl::isAutoIncrementValueEnabled() const 161 { 162 return const_cast<OTableFieldControl*>(this)->GetCtrl()->GetView()->getController().isAutoIncrementValueEnabled(); 163 } 164 // ----------------------------------------------------------------------------- 165 ::rtl::OUString OTableFieldControl::getAutoIncrementValue() const 166 { 167 return const_cast<OTableFieldControl*>(this)->GetCtrl()->GetView()->getController().getAutoIncrementValue(); 168 } 169 // ----------------------------------------------------------------------------- 170 171 172 173 174