User: kz Date: 2008-03-05 17:58:21+0000 Modified: dba/reportdesign/source/core/sdr/ReportDrawPage.cxx
Log: INTEGRATION: CWS rptchart01_DEV300 (1.3.20); FILE MERGED 2008/01/24 12:39:31 oj 1.3.20.1: #i85225# changes for chart File Changes: Directory: /dba/reportdesign/source/core/sdr/ ============================================= File [changed]: ReportDrawPage.cxx Url: http://dba.openoffice.org/source/browse/dba/reportdesign/source/core/sdr/ReportDrawPage.cxx?r1=1.3&r2=1.4 Delta lines: +78 -26 --------------------- --- ReportDrawPage.cxx 2007-11-20 18:58:55+0000 1.3 +++ ReportDrawPage.cxx 2008-03-05 17:58:18+0000 1.4 @@ -37,7 +37,10 @@ #include "RptObject.hxx" #include "RptDef.hxx" #include "corestrings.hrc" - +#include <comphelper/mimeconfighelper.hxx> +#include <comphelper/classids.hxx> +#include <comphelper/embeddedobjectcontainer.hxx> +#include <svx/svdmodel.hxx> #include <com/sun/star/report/XFixedLine.hpp> #include <com/sun/star/beans/NamedValue.hpp> @@ -78,35 +81,84 @@ if ( xFactory.is() ) { bool bChangeOrientation = false; - ::rtl::OUString sServiceName; - if ( pObj->ISA(OCustomShape) ) + ::rtl::OUString sServiceName = pBaseObj->getServiceName(); + OSL_ENSURE(sServiceName.getLength(),"No Service Name given!"); + + + //if ( !sServiceName.getLength() ) + //{ + // if ( pObj->ISA(OCustomShape) ) + // { + // sServiceName = SERVICE_SHAPE; + // } + // if ( pObj->ISA(SdrOle2Obj) ) + // { + // SdrOle2Obj* pOle2Obj = dynamic_cast<SdrOle2Obj*>(pObj); + // uno::Reference< lang::XServiceInfo > xOleModel(pOle2Obj->getXModel(),uno::UNO_QUERY); + // if ( xOleModel.is() && xOleModel->supportsService(SERVICE_REPORTDEFINITION) ) + // sServiceName = SERVICE_REPORTDEFINITION; + // else + // sServiceName = SERVICE_OLEOBJECT; + // } + // else if ( pObj->ISA(OUnoObject) ) + // { + // OUnoObject* pUnoObj = dynamic_cast<OUnoObject*>(pObj); + // switch(pUnoObj->getObjectId()) + // { + // case OBJ_DLG_FORMATTEDFIELD: + // sServiceName = SERVICE_FORMATTEDFIELD; + // break; + // case OBJ_DLG_HFIXEDLINE: + // sServiceName = SERVICE_FIXEDLINE; + // bChangeOrientation = true; + // break; + // case OBJ_DLG_VFIXEDLINE: + // sServiceName = SERVICE_FIXEDLINE; + // break; + // case OBJ_DLG_FIXEDTEXT: + // sServiceName = SERVICE_FIXEDTEXT; + // break; + // case OBJ_DLG_IMAGECONTROL: + // sServiceName = SERVICE_IMAGECONTROL; + // break; + // default: + // OSL_ENSURE(0,"Illegal case value"); + // break; + // } + // } + //} + if ( pObj->ISA(OUnoObject) ) { - sServiceName = SERVICE_SHAPE; + OUnoObject* pUnoObj = dynamic_cast<OUnoObject*>(pObj); + bChangeOrientation = pUnoObj->getObjectId() == OBJ_DLG_HFIXEDLINE; } - else if ( pObj->ISA(OUnoObject) ) + else if ( pObj->ISA(SdrOle2Obj) ) { - OUnoObject* pUnoObj = dynamic_cast<OUnoObject*>(pObj); - switch(pUnoObj->getObjectId()) + SdrOle2Obj* pOle2Obj = dynamic_cast<SdrOle2Obj*>(pObj); + if ( !pOle2Obj->GetObjRef().is() ) { - case OBJ_DLG_FORMATTEDFIELD: - sServiceName = SERVICE_FORMATTEDFIELD; - break; - case OBJ_DLG_HFIXEDLINE: - sServiceName = SERVICE_FIXEDLINE; - bChangeOrientation = true; - break; - case OBJ_DLG_VFIXEDLINE: - sServiceName = SERVICE_FIXEDLINE; - break; - case OBJ_DLG_FIXEDTEXT: - sServiceName = SERVICE_FIXEDTEXT; - break; - case OBJ_DLG_IMAGECONTROL: - sServiceName = SERVICE_IMAGECONTROL; - break; - default: - OSL_ENSURE(0,"Illegal case value"); - break; + sal_Int64 nAspect = embed::Aspects::MSOLE_CONTENT; + uno::Reference < embed::XEmbeddedObject > xObj; + ::rtl::OUString sName; + xObj = pObj->GetModel()->GetPersist()->getEmbeddedObjectContainer().CreateEmbeddedObject( + ::comphelper::MimeConfigurationHelper::GetSequenceClassIDRepresentation( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("80243D39-6741-46C5-926E-069164FF87BB"))), sName ); + OSL_ENSURE(xObj.is(),"Embedded Object could not be created!"); + + /************************************************** + * Das leere OLE-Objekt bekommt ein neues IPObj + **************************************************/ + pObj->SetEmptyPresObj(FALSE); + pOle2Obj->SetOutlinerParaObject(NULL); + pOle2Obj->SetObjRef(xObj); + pOle2Obj->SetPersistName(sName); + pOle2Obj->SetName(sName); + pOle2Obj->SetAspect(nAspect); + Rectangle aRect = pOle2Obj->GetLogicRect(); + + Size aTmp = aRect.GetSize(); + awt::Size aSz( aTmp.Width(), aTmp.Height() ); + xObj->setVisualAreaSize( nAspect, aSz ); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
