/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_dbui.hxx" #ifndef DBAUI_COLUMNCONTROL_HXX #include "ColumnControl.hxx" #endif #ifndef DBAUI_COLUMNPEER_HXX #include "ColumnPeer.hxx" #endif #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC #include "dbustrings.hrc" #endif #ifndef _DBASHARED_APITOOLS_HXX_ #include "apitools.hxx" #endif #ifndef _COM_SUN_STAR_AWT_POSSIZE_HPP_ #include #endif #ifndef _DBU_REGHELPER_HXX_ #include "dbu_reghelper.hxx" #endif extern "C" void SAL_CALL createRegistryInfo_OColumnControl() { static ::dbaui::OMultiInstanceAutoRegistration< ::dbaui::OColumnControl> aAutoRegistration; } //......................................................................... namespace dbaui { //......................................................................... using namespace ::com::sun::star::uno; using namespace ::com::sun::star::awt; using namespace ::com::sun::star::beans; using namespace ::com::sun::star::lang; using namespace ::com::sun::star::sdbc; OColumnControl::OColumnControl(const Reference& _rxFactory) :UnoControl( _rxFactory ) { } // ----------------------------------------------------------------------------- IMPLEMENT_SERVICE_INFO2_STATIC(OColumnControl,SERVICE_CONTROLDEFAULT,"com.sun.star.awt.UnoControl","com.sun.star.sdb.ColumnDescriptorControl") // ----------------------------------------------------------------------------- ::rtl::OUString OColumnControl::GetComponentServiceName() { return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.ColumnDescriptorControl")); } // ----------------------------------------------------------------------------- void SAL_CALL OColumnControl::createPeer(const Reference< XToolkit >& /*rToolkit*/, const Reference< XWindowPeer >& rParentPeer) throw( RuntimeException ) { ::osl::ClearableMutexGuard aGuard( GetMutex() ); if ( !getPeer().is() ) { mbCreatingPeer = sal_True; Window* pParentWin = NULL; if (rParentPeer.is()) { VCLXWindow* pParent = VCLXWindow::GetImplementation(rParentPeer); if (pParent) pParentWin = pParent->GetWindow(); } OColumnPeer* pPeer = new OColumnPeer( pParentWin, maContext.getLegacyServiceFactory() ); OSL_ENSURE(pPeer != NULL, "FmXGridControl::createPeer : imp_CreatePeer didn't return a peer !"); setPeer( pPeer ); UnoControlComponentInfos aComponentInfos(maComponentInfos); Reference< XGraphics > xGraphics( mxGraphics ); Reference< XView > xV(getPeer(), UNO_QUERY); Reference< XWindow > xW(getPeer(), UNO_QUERY); aGuard.clear(); updateFromModel(); xV->setZoom( aComponentInfos.nZoomX, aComponentInfos.nZoomY ); setPosSize( aComponentInfos.nX, aComponentInfos.nY, aComponentInfos.nWidth, aComponentInfos.nHeight, ::com::sun::star::awt::PosSize::POSSIZE ); Reference xProp(getModel(), UNO_QUERY); if ( xProp.is() ) { Reference xCon(xProp->getPropertyValue(PROPERTY_ACTIVE_CONNECTION),UNO_QUERY); pPeer->setConnection(xCon); Reference xColumn(xProp->getPropertyValue(PROPERTY_COLUMN),UNO_QUERY); pPeer->setColumn(xColumn); sal_Int32 nWidth = 50; xProp->getPropertyValue(PROPERTY_EDIT_WIDTH) >>= nWidth; pPeer->setEditWidth(nWidth); } if (aComponentInfos.bVisible) xW->setVisible(sal_True); if (!aComponentInfos.bEnable) xW->setEnable(sal_False); if (maWindowListeners.getLength()) xW->addWindowListener( &maWindowListeners ); if (maFocusListeners.getLength()) xW->addFocusListener( &maFocusListeners ); if (maKeyListeners.getLength()) xW->addKeyListener( &maKeyListeners ); if (maMouseListeners.getLength()) xW->addMouseListener( &maMouseListeners ); if (maMouseMotionListeners.getLength()) xW->addMouseMotionListener( &maMouseMotionListeners ); if (maPaintListeners.getLength()) xW->addPaintListener( &maPaintListeners ); Reference< ::com::sun::star::awt::XView > xPeerView(getPeer(), UNO_QUERY); xPeerView->setZoom( maComponentInfos.nZoomX, maComponentInfos.nZoomY ); xPeerView->setGraphics( xGraphics ); mbCreatingPeer = sal_False; } } //......................................................................... } // namespace dbaui //.........................................................................