/************************************************************** * * 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_basctl.hxx" #include "dlgedfac.hxx" #include "dlgedobj.hxx" #include #include #include #include #include using namespace ::com::sun::star; //---------------------------------------------------------------------------- DlgEdFactory::DlgEdFactory() { SdrObjFactory::InsertMakeObjectHdl( LINK(this, DlgEdFactory, MakeObject) ); } //---------------------------------------------------------------------------- DlgEdFactory::~DlgEdFactory() { SdrObjFactory::RemoveMakeObjectHdl( LINK(this, DlgEdFactory, MakeObject) ); } //---------------------------------------------------------------------------- IMPL_LINK( DlgEdFactory, MakeObject, SdrObjFactory *, pObjFactory ) { static sal_Bool bNeedsInit = sal_True; static uno::Reference< lang::XMultiServiceFactory > xDialogSFact; if( bNeedsInit ) { uno::Reference< lang::XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory(); uno::Reference< container::XNameContainer > xC( xMSF->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialogModel" ) ) ), uno::UNO_QUERY ); if( xC.is() ) { uno::Reference< lang::XMultiServiceFactory > xModFact( xC, uno::UNO_QUERY ); xDialogSFact = xModFact; } bNeedsInit = sal_False; } if( (pObjFactory->nInventor == DlgInventor) && (pObjFactory->nIdentifier >= OBJ_DLG_PUSHBUTTON) && (pObjFactory->nIdentifier <= OBJ_DLG_TREECONTROL) ) { switch( pObjFactory->nIdentifier ) { case OBJ_DLG_PUSHBUTTON: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlButtonModel") , xDialogSFact ); break; case OBJ_DLG_RADIOBUTTON: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlRadioButtonModel") , xDialogSFact ); break; case OBJ_DLG_CHECKBOX: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlCheckBoxModel") , xDialogSFact ); break; case OBJ_DLG_LISTBOX: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlListBoxModel") , xDialogSFact ); break; case OBJ_DLG_COMBOBOX: { DlgEdObj* pNew = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlComboBoxModel") , xDialogSFact ); pObjFactory->pNewObj = pNew; try { uno::Reference< beans::XPropertySet > xPSet(pNew->GetUnoControlModel(), uno::UNO_QUERY); if (xPSet.is()) { sal_Bool bB = sal_True; xPSet->setPropertyValue( DLGED_PROP_DROPDOWN, uno::Any(&bB,::getBooleanCppuType())); } } catch(...) { } } break; case OBJ_DLG_GROUPBOX: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlGroupBoxModel") , xDialogSFact ); break; case OBJ_DLG_EDIT: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlEditModel") , xDialogSFact ); break; case OBJ_DLG_FIXEDTEXT: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlFixedTextModel") , xDialogSFact ); break; case OBJ_DLG_IMAGECONTROL: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlImageControlModel") , xDialogSFact ); break; case OBJ_DLG_PROGRESSBAR: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlProgressBarModel") , xDialogSFact ); break; case OBJ_DLG_HSCROLLBAR: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlScrollBarModel") , xDialogSFact ); break; case OBJ_DLG_VSCROLLBAR: { DlgEdObj* pNew = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlScrollBarModel") , xDialogSFact ); pObjFactory->pNewObj = pNew; // set vertical orientation try { uno::Reference< beans::XPropertySet > xPSet(pNew->GetUnoControlModel(), uno::UNO_QUERY); if (xPSet.is()) { uno::Any aValue; aValue <<= (sal_Int32) ::com::sun::star::awt::ScrollBarOrientation::VERTICAL; xPSet->setPropertyValue( DLGED_PROP_ORIENTATION, aValue ); } } catch(...) { } } break; case OBJ_DLG_HFIXEDLINE: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlFixedLineModel") , xDialogSFact ); break; case OBJ_DLG_VFIXEDLINE: { DlgEdObj* pNew = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlFixedLineModel") , xDialogSFact ); pObjFactory->pNewObj = pNew; // set vertical orientation try { uno::Reference< beans::XPropertySet > xPSet(pNew->GetUnoControlModel(), uno::UNO_QUERY); if (xPSet.is()) { uno::Any aValue; aValue <<= (sal_Int32) 1; xPSet->setPropertyValue( DLGED_PROP_ORIENTATION, aValue ); } } catch(...) { } } break; case OBJ_DLG_DATEFIELD: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlDateFieldModel") , xDialogSFact ); break; case OBJ_DLG_TIMEFIELD: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlTimeFieldModel") , xDialogSFact ); break; case OBJ_DLG_NUMERICFIELD: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlNumericFieldModel") , xDialogSFact ); break; case OBJ_DLG_CURRENCYFIELD: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlCurrencyFieldModel") , xDialogSFact ); break; case OBJ_DLG_FORMATTEDFIELD: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlFormattedFieldModel") , xDialogSFact ); break; case OBJ_DLG_PATTERNFIELD: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlPatternFieldModel") , xDialogSFact ); break; case OBJ_DLG_FILECONTROL: pObjFactory->pNewObj = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.UnoControlFileControlModel") , xDialogSFact ); break; case OBJ_DLG_TREECONTROL: DlgEdObj* pNew = new DlgEdObj( ::rtl::OUString::createFromAscii("com.sun.star.awt.tree.TreeControlModel") , xDialogSFact ); pObjFactory->pNewObj = pNew; /* try { uno::Reference< beans::XPropertySet > xPSet(pNew->GetUnoControlModel(), uno::UNO_QUERY); if (xPSet.is()) { // first create a data model for our tree control Reference< XComponentContext > xComponentContext; Reference< XPropertySet > xPropSet( xInterface, UNO_QUERY ); xPropSet->getPropertyValue( OUString::createFromAscii("DefaultContext") ) >>= xComponentContext; // gets the service manager from the office Reference< XMultiComponentFactory > xMultiComponentFactoryServer( xComponentContext->getServiceManager() ); // gets the TreeDataModel Reference< XMutableTreeDataModel > xTreeDataModel; xTreeDataModel = Reference< XMutableTreeDataModel >( xMultiComponentFactoryServer->createInstanceWithContext( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.tree.MutableTreeDataModel" ) ), xComponentContext ), UNO_QUERY_THROW ); // now fill it with some sample data const OUString sRoot( RTL_CONSTASCII_USTRINGPARAM( "Root" ) ); Reference< XMutableTreeNode > xNode( mxTreeDataModel->createNode( sRoot, false ), UNO_QUERY_THROW ); xNode->setDataValue( sRoot ); xNode->setExpandedGraphicURL( OUString( RTL_CONSTASCII_USTRINGPARAM( "private:graphicrepository/sd/res/triangle_down.png" ) ) ); xNode->setCollapsedGraphicURL( OUString( RTL_CONSTASCII_USTRINGPARAM( "private:graphicrepository/sd/res/triangle_right.png" ) ) ); const OUString sNode_1( RTL_CONSTASCII_USTRINGPARAM( "Node_1" ) ); Reference< XMutableTreeNode > xChildNode_1( mxTreeDataModel->createNode( sNode_1, true ), UNO_QUERY_THROW ); xChildNode_1->setDataValue( sNode_1 ); xChildNode_1->setExpandedGraphicURL( OUString( RTL_CONSTASCII_USTRINGPARAM( "private:graphicrepository/sd/res/triangle_down.png" ) ) ); xChildNode_1->setCollapsedGraphicURL( OUString( RTL_CONSTASCII_USTRINGPARAM( "private:graphicrepository/sd/res/triangle_right.png" ) ) ); xNode->appendChild( xChildNode_1 ); const OUString sNode_1_1( RTL_CONSTASCII_USTRINGPARAM( "Node_1_1" ) ); Reference< XMutableTreeNode > xChildNode_1_1( mxTreeDataModel->createNode( sNode_1_1, false ), UNO_QUERY_THROW ); xChildNode_1_1->setDataValue( sNode_1_1 ); xChildNode_1_1->setExpandedGraphicURL( OUString( RTL_CONSTASCII_USTRINGPARAM( "private:graphicrepository/sd/res/triangle_down.png" ) ) ); xChildNode_1_1->setCollapsedGraphicURL( OUString( RTL_CONSTASCII_USTRINGPARAM( "private:graphicrepository/sd/res/triangle_right.png" ) ) ); xChildNode_1->appendChild( xChildNode_1_1 ); const OUString sNode_1_1( RTL_CONSTASCII_USTRINGPARAM( "Node_2" ) ); Reference< XMutableTreeNode > xChildNode_2( mxTreeDataModel->createNode( sNode_2, false ), UNO_QUERY_THROW ); xChildNode_2->setDataValue( sNode_2 ); xChildNode_2->setNodeGraphicURL( OUString( RTL_CONSTASCII_USTRINGPARAM("private:graphicrepository/sw/imglst/nc20010.png") ) ); xNode->appendChild( xChildNode_2 ); xTreeDataModel->setRoot( xNode ); const OUString sDataModel( RTL_CONSTASCII_USTRINGPARAM( "DataModel" ) ); xPSet->setPropertyValue( sDataModel, xTreeDataModel ); } } catch(...) { }*/ break; } } return 0; } //----------------------------------------------------------------------------