| /************************************************************** |
| * |
| * 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 <dlgeddef.hxx> |
| #include <com/sun/star/container/XNameContainer.hpp> |
| #include <com/sun/star/beans/PropertyValue.hpp> |
| #include <com/sun/star/beans/XPropertySet.hpp> |
| #include <com/sun/star/awt/ScrollBarOrientation.hpp> |
| |
| 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; |
| } |
| |
| //---------------------------------------------------------------------------- |
| |