196de5490SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 396de5490SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 496de5490SAndrew Rist * or more contributor license agreements. See the NOTICE file 596de5490SAndrew Rist * distributed with this work for additional information 696de5490SAndrew Rist * regarding copyright ownership. The ASF licenses this file 796de5490SAndrew Rist * to you under the Apache License, Version 2.0 (the 896de5490SAndrew Rist * "License"); you may not use this file except in compliance 996de5490SAndrew Rist * with the License. You may obtain a copy of the License at 1096de5490SAndrew Rist * 1196de5490SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 1296de5490SAndrew Rist * 1396de5490SAndrew Rist * Unless required by applicable law or agreed to in writing, 1496de5490SAndrew Rist * software distributed under the License is distributed on an 1596de5490SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1696de5490SAndrew Rist * KIND, either express or implied. See the License for the 1796de5490SAndrew Rist * specific language governing permissions and limitations 1896de5490SAndrew Rist * under the License. 1996de5490SAndrew Rist * 2096de5490SAndrew Rist *************************************************************/ 2196de5490SAndrew Rist 2296de5490SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25*b63233d8Sdamjan #include "precompiled_dbui.hxx" 26cdf0e10cSrcweir #ifndef DBAUI_SQLNAMEEDIT_HXX 27cdf0e10cSrcweir #include "SqlNameEdit.hxx" 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir namespace dbaui 30cdf0e10cSrcweir { 31cdf0e10cSrcweir //------------------------------------------------------------------ isCharOk(sal_Unicode _cChar,sal_Bool _bFirstChar,sal_Bool _bUpperCase,const::rtl::OUString & _sAllowedChars)32cdf0e10cSrcweir sal_Bool isCharOk(sal_Unicode _cChar,sal_Bool _bFirstChar,sal_Bool _bUpperCase,const ::rtl::OUString& _sAllowedChars) 33cdf0e10cSrcweir { 34cdf0e10cSrcweir return ( 35cdf0e10cSrcweir (_cChar >= 'A' && _cChar <= 'Z') || 36cdf0e10cSrcweir _cChar == '_' || 37cdf0e10cSrcweir _sAllowedChars.indexOf(_cChar) != -1 || 38cdf0e10cSrcweir (!_bFirstChar && (_cChar >= '0' && _cChar <= '9')) || 39cdf0e10cSrcweir (!_bUpperCase && (_cChar >= 'a' && _cChar <= 'z')) 40cdf0e10cSrcweir ); 41cdf0e10cSrcweir } 42cdf0e10cSrcweir //------------------------------------------------------------------ checkString(const::rtl::OUString & _sOldValue,const::rtl::OUString & _sToCheck,::rtl::OUString & _rsCorrected)43cdf0e10cSrcweir sal_Bool OSQLNameChecker::checkString( const ::rtl::OUString& _sOldValue, 44cdf0e10cSrcweir const ::rtl::OUString& _sToCheck, 45cdf0e10cSrcweir ::rtl::OUString& _rsCorrected) 46cdf0e10cSrcweir { 47cdf0e10cSrcweir sal_Bool bCorrected = sal_False; 48cdf0e10cSrcweir if ( m_bCheck ) 49cdf0e10cSrcweir { 50cdf0e10cSrcweir XubString sSavedValue = _sOldValue; 51cdf0e10cSrcweir XubString sText = _sToCheck; 52cdf0e10cSrcweir xub_StrLen nMatch = 0; 53cdf0e10cSrcweir for ( xub_StrLen i=nMatch;i < sText.Len(); ++i ) 54cdf0e10cSrcweir { 55cdf0e10cSrcweir if ( !isCharOk( sText.GetBuffer()[i], i == 0, m_bOnlyUpperCase, m_sAllowedChars ) ) 56cdf0e10cSrcweir { 57cdf0e10cSrcweir _rsCorrected += sText.Copy( nMatch, i - nMatch ); 58cdf0e10cSrcweir bCorrected = sal_True; 59cdf0e10cSrcweir nMatch = i + 1; 60cdf0e10cSrcweir } 61cdf0e10cSrcweir } 62cdf0e10cSrcweir _rsCorrected += sText.Copy( nMatch, sText.Len() - nMatch ); 63cdf0e10cSrcweir } 64cdf0e10cSrcweir return bCorrected; 65cdf0e10cSrcweir } 66cdf0e10cSrcweir //------------------------------------------------------------------ Modify()67cdf0e10cSrcweir void OSQLNameEdit::Modify() 68cdf0e10cSrcweir { 69cdf0e10cSrcweir ::rtl::OUString sCorrected; 70cdf0e10cSrcweir if ( checkString( GetSavedValue(),GetText(),sCorrected ) ) 71cdf0e10cSrcweir { 72cdf0e10cSrcweir Selection aSel = GetSelection(); 73cdf0e10cSrcweir aSel.setMax( aSel.getMin() ); 74cdf0e10cSrcweir SetText( sCorrected, aSel ); 75cdf0e10cSrcweir 76cdf0e10cSrcweir SaveValue(); 77cdf0e10cSrcweir } 78cdf0e10cSrcweir Edit::Modify(); 79cdf0e10cSrcweir } 80cdf0e10cSrcweir //------------------------------------------------------------------ Modify()81cdf0e10cSrcweir void OSQLNameComboBox::Modify() 82cdf0e10cSrcweir { 83cdf0e10cSrcweir ::rtl::OUString sCorrected; 84cdf0e10cSrcweir if ( checkString( GetSavedValue(),GetText(),sCorrected ) ) 85cdf0e10cSrcweir { 86cdf0e10cSrcweir Selection aSel = GetSelection(); 87cdf0e10cSrcweir aSel.setMax( aSel.getMin() ); 88cdf0e10cSrcweir SetText( sCorrected ); 89cdf0e10cSrcweir 90cdf0e10cSrcweir SaveValue(); 91cdf0e10cSrcweir } 92cdf0e10cSrcweir ComboBox::Modify(); 93cdf0e10cSrcweir } 94cdf0e10cSrcweir } 95cdf0e10cSrcweir // ----------------------------------------------------------------------------- 96cdf0e10cSrcweir 97