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]

Reply via email to