summaryrefslogtreecommitdiff
path: root/reportdesign/source/core/sdr/RptObject.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'reportdesign/source/core/sdr/RptObject.cxx')
-rw-r--r--reportdesign/source/core/sdr/RptObject.cxx221
1 files changed, 101 insertions, 120 deletions
diff --git a/reportdesign/source/core/sdr/RptObject.cxx b/reportdesign/source/core/sdr/RptObject.cxx
index 737c87e3b1fe..a0af522a616c 100644
--- a/reportdesign/source/core/sdr/RptObject.cxx
+++ b/reportdesign/source/core/sdr/RptObject.cxx
@@ -107,9 +107,7 @@ sal_uInt16 OObjectBase::getObjectType(const uno::Reference< report::XReportCompo
return 0;
}
-SdrObject* OObjectBase::createObject(
- SdrModel& rTargetModel,
- const uno::Reference< report::XReportComponent>& _xComponent)
+SdrObject* OObjectBase::createObject(const uno::Reference< report::XReportComponent>& _xComponent)
{
SdrObject* pNewObj = nullptr;
sal_uInt16 nType = OObjectBase::getObjectType(_xComponent);
@@ -117,11 +115,9 @@ SdrObject* OObjectBase::createObject(
{
case OBJ_DLG_FIXEDTEXT:
{
- OUnoObject* pUnoObj = new OUnoObject(
- rTargetModel,
- _xComponent,
- OUString("com.sun.star.form.component.FixedText"),
- OBJ_DLG_FIXEDTEXT);
+ OUnoObject* pUnoObj = new OUnoObject( _xComponent
+ ,OUString("com.sun.star.form.component.FixedText")
+ ,OBJ_DLG_FIXEDTEXT);
pNewObj = pUnoObj;
uno::Reference<beans::XPropertySet> xControlModel(pUnoObj->GetUnoControlModel(),uno::UNO_QUERY);
@@ -130,31 +126,23 @@ SdrObject* OObjectBase::createObject(
}
break;
case OBJ_DLG_IMAGECONTROL:
- pNewObj = new OUnoObject(
- rTargetModel,
- _xComponent,
- OUString("com.sun.star.form.component.DatabaseImageControl"),
- OBJ_DLG_IMAGECONTROL);
+ pNewObj = new OUnoObject(_xComponent
+ ,OUString("com.sun.star.form.component.DatabaseImageControl")
+ ,OBJ_DLG_IMAGECONTROL);
break;
case OBJ_DLG_FORMATTEDFIELD:
- pNewObj = new OUnoObject(
- rTargetModel,
- _xComponent,
- OUString("com.sun.star.form.component.FormattedField"),
- OBJ_DLG_FORMATTEDFIELD);
+ pNewObj = new OUnoObject( _xComponent
+ ,OUString("com.sun.star.form.component.FormattedField")
+ ,OBJ_DLG_FORMATTEDFIELD);
break;
case OBJ_DLG_HFIXEDLINE:
case OBJ_DLG_VFIXEDLINE:
- pNewObj = new OUnoObject(
- rTargetModel,
- _xComponent,
- OUString("com.sun.star.awt.UnoControlFixedLineModel"),
- nType);
+ pNewObj = new OUnoObject( _xComponent
+ ,OUString("com.sun.star.awt.UnoControlFixedLineModel")
+ ,nType);
break;
case OBJ_CUSTOMSHAPE:
- pNewObj = OCustomShape::Create(
- rTargetModel,
- _xComponent);
+ pNewObj = OCustomShape::Create( _xComponent );
try
{
bool bOpaque = false;
@@ -168,10 +156,7 @@ SdrObject* OObjectBase::createObject(
break;
case OBJ_DLG_SUBREPORT:
case OBJ_OLE2:
- pNewObj = OOle2Obj::Create(
- rTargetModel,
- _xComponent,
- nType);
+ pNewObj = OOle2Obj::Create( _xComponent,nType );
break;
default:
OSL_FAIL("Unknown object id");
@@ -470,21 +455,19 @@ uno::Reference< uno::XInterface > OObjectBase::getUnoShapeOf( SdrObject& _rSdrOb
return xShape;
}
-OCustomShape::OCustomShape(
- SdrModel& rSdrModel,
- const uno::Reference< report::XReportComponent>& _xComponent)
-: SdrObjCustomShape(rSdrModel)
- ,OObjectBase(_xComponent)
+
+OCustomShape::OCustomShape(const uno::Reference< report::XReportComponent>& _xComponent
+ )
+ :SdrObjCustomShape()
+ ,OObjectBase(_xComponent)
{
impl_setUnoShape( uno::Reference< uno::XInterface >(_xComponent,uno::UNO_QUERY) );
m_bIsListening = true;
}
-OCustomShape::OCustomShape(
- SdrModel& rSdrModel,
- const OUString& _sComponentName)
-: SdrObjCustomShape(rSdrModel)
- ,OObjectBase(_sComponentName)
+OCustomShape::OCustomShape(const OUString& _sComponentName)
+ :SdrObjCustomShape()
+ ,OObjectBase(_sComponentName)
{
m_bIsListening = true;
}
@@ -517,8 +500,8 @@ void OCustomShape::NbcMove( const Size& rSize )
if ( m_xReportComponent.is() )
{
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
- OXUndoEnvironment::OUndoEnvLock aLock(rRptModel.GetUndoEnv());
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ OXUndoEnvironment::OUndoEnvLock aLock(pRptModel->GetUndoEnv());
m_xReportComponent->setPositionX(m_xReportComponent->getPositionX() + rSize.Width());
m_xReportComponent->setPositionY(m_xReportComponent->getPositionY() + rSize.Height());
}
@@ -550,12 +533,13 @@ bool OCustomShape::EndCreate(SdrDragStat& rStat, SdrCreateCmd eCmd)
bool bResult = SdrObjCustomShape::EndCreate(rStat, eCmd);
if ( bResult )
{
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
- OXUndoEnvironment::OUndoEnvLock aLock(rRptModel.GetUndoEnv());
-
- if ( !m_xReportComponent.is() )
- m_xReportComponent.set(getUnoShape(),uno::UNO_QUERY);
-
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ if ( pRptModel )
+ {
+ OXUndoEnvironment::OUndoEnvLock aLock(pRptModel->GetUndoEnv());
+ if ( !m_xReportComponent.is() )
+ m_xReportComponent.set(getUnoShape(),uno::UNO_QUERY);
+ }
SetPropsFromRect(GetSnapRect());
}
@@ -574,8 +558,8 @@ uno::Reference< uno::XInterface > OCustomShape::getUnoShape()
uno::Reference< uno::XInterface> xShape = OObjectBase::getUnoShapeOf( *this );
if ( !m_xReportComponent.is() )
{
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
- OXUndoEnvironment::OUndoEnvLock aLock(rRptModel.GetUndoEnv());
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ OXUndoEnvironment::OUndoEnvLock aLock(pRptModel->GetUndoEnv());
m_xReportComponent.set(xShape,uno::UNO_QUERY);
}
return xShape;
@@ -588,27 +572,24 @@ void OCustomShape::impl_setUnoShape( const uno::Reference< uno::XInterface >& rx
m_xReportComponent.clear();
}
-OUnoObject::OUnoObject(
- SdrModel& rSdrModel,
- const OUString& _sComponentName,
- const OUString& rModelName,
- sal_uInt16 _nObjectType)
-: SdrUnoObj(rSdrModel, rModelName)
- ,OObjectBase(_sComponentName)
- ,m_nObjectType(_nObjectType)
+
+OUnoObject::OUnoObject(const OUString& _sComponentName
+ ,const OUString& rModelName
+ ,sal_uInt16 _nObjectType)
+ :SdrUnoObj(rModelName)
+ ,OObjectBase(_sComponentName)
+ ,m_nObjectType(_nObjectType)
{
if ( !rModelName.isEmpty() )
impl_initializeModel_nothrow();
}
-OUnoObject::OUnoObject(
- SdrModel& rSdrModel,
- const uno::Reference< report::XReportComponent>& _xComponent,
- const OUString& rModelName,
- sal_uInt16 _nObjectType)
-: SdrUnoObj(rSdrModel, rModelName)
- ,OObjectBase(_xComponent)
- ,m_nObjectType(_nObjectType)
+OUnoObject::OUnoObject(const uno::Reference< report::XReportComponent>& _xComponent
+ ,const OUString& rModelName
+ ,sal_uInt16 _nObjectType)
+ :SdrUnoObj(rModelName)
+ ,OObjectBase(_xComponent)
+ ,m_nObjectType(_nObjectType)
{
impl_setUnoShape( uno::Reference< uno::XInterface >( _xComponent, uno::UNO_QUERY ) );
@@ -645,8 +626,12 @@ void OUnoObject::impl_setReportComponent_nothrow()
if ( m_xReportComponent.is() )
return;
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
- OXUndoEnvironment::OUndoEnvLock aLock( rRptModel.GetUndoEnv() );
+ OReportModel* pReportModel = static_cast<OReportModel*>(GetModel());
+ OSL_ENSURE( pReportModel, "OUnoObject::impl_setReportComponent_nothrow: no report model!" );
+ if ( !pReportModel )
+ return;
+
+ OXUndoEnvironment::OUndoEnvLock aLock( pReportModel->GetUndoEnv() );
m_xReportComponent.set(getUnoShape(),uno::UNO_QUERY);
impl_initializeModel_nothrow();
@@ -680,14 +665,13 @@ void OUnoObject::NbcMove( const Size& rSize )
if ( m_xReportComponent.is() )
{
bool bUndoMode = false;
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
-
- if (rRptModel.GetUndoEnv().IsUndoMode())
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ if (pRptModel->GetUndoEnv().IsUndoMode())
{
// if we are locked from outside, then we must not handle wrong moves, we are in UNDO mode
bUndoMode = true;
}
- OXUndoEnvironment::OUndoEnvLock aLock(rRptModel.GetUndoEnv());
+ OXUndoEnvironment::OUndoEnvLock aLock(pRptModel->GetUndoEnv());
// LLA: why there exists getPositionX and getPositionY and NOT getPosition() which return a Point?
int nNewX = m_xReportComponent->getPositionX() + rSize.Width();
@@ -703,7 +687,7 @@ void OUnoObject::NbcMove( const Size& rSize )
}
if (bPositionFixed)
{
- getSdrModelFromSdrObject().AddUndo(getSdrModelFromSdrObject().GetSdrUndoFactory().CreateUndoMoveObject(*this, aUndoSize));
+ GetModel()->AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoMoveObject(*this, aUndoSize));
}
// set geometry properties
SetPropsFromRect(GetLogicRect());
@@ -883,11 +867,6 @@ void OUnoObject::impl_setUnoShape( const uno::Reference< uno::XInterface >& rxUn
releaseUnoShape();
}
-OUnoObject* OUnoObject::Clone(SdrModel* pTargetModel) const
-{
- return CloneHelper< OUnoObject >(pTargetModel);
-}
-
OUnoObject& OUnoObject::operator=(const OUnoObject& rObj)
{
if( this == &rObj )
@@ -902,28 +881,29 @@ OUnoObject& OUnoObject::operator=(const OUnoObject& rObj)
return *this;
}
+OUnoObject* OUnoObject::Clone() const
+{
+ return CloneHelper< OUnoObject >();
+}
+
// OOle2Obj
-OOle2Obj::OOle2Obj(
- SdrModel& rSdrModel,
- const uno::Reference< report::XReportComponent>& _xComponent,
- sal_uInt16 _nType)
-: SdrOle2Obj(rSdrModel)
- ,OObjectBase(_xComponent)
- ,m_nType(_nType)
- ,m_bOnlyOnce(true)
+
+OOle2Obj::OOle2Obj(const uno::Reference< report::XReportComponent>& _xComponent,sal_uInt16 _nType)
+ :SdrOle2Obj()
+ ,OObjectBase(_xComponent)
+ ,m_nType(_nType)
+ ,m_bOnlyOnce(true)
{
+
impl_setUnoShape( uno::Reference< uno::XInterface >( _xComponent, uno::UNO_QUERY ) );
m_bIsListening = true;
}
-OOle2Obj::OOle2Obj(
- SdrModel& rSdrModel,
- const OUString& _sComponentName,
- sal_uInt16 _nType)
-: SdrOle2Obj(rSdrModel)
- ,OObjectBase(_sComponentName)
- ,m_nType(_nType)
- ,m_bOnlyOnce(true)
+OOle2Obj::OOle2Obj(const OUString& _sComponentName,sal_uInt16 _nType)
+ :SdrOle2Obj()
+ ,OObjectBase(_sComponentName)
+ ,m_nType(_nType)
+ ,m_bOnlyOnce(true)
{
m_bIsListening = true;
}
@@ -960,14 +940,13 @@ void OOle2Obj::NbcMove( const Size& rSize )
if ( m_xReportComponent.is() )
{
bool bUndoMode = false;
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
-
- if (rRptModel.GetUndoEnv().IsUndoMode())
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ if (pRptModel->GetUndoEnv().IsUndoMode())
{
// if we are locked from outside, then we must not handle wrong moves, we are in UNDO mode
bUndoMode = true;
}
- OXUndoEnvironment::OUndoEnvLock aLock(rRptModel.GetUndoEnv());
+ OXUndoEnvironment::OUndoEnvLock aLock(pRptModel->GetUndoEnv());
// LLA: why there exists getPositionX and getPositionY and NOT getPosition() which return a Point?
int nNewX = m_xReportComponent->getPositionX() + rSize.Width();
@@ -988,7 +967,7 @@ void OOle2Obj::NbcMove( const Size& rSize )
}
if (bPositionFixed)
{
- getSdrModelFromSdrObject().AddUndo(getSdrModelFromSdrObject().GetSdrUndoFactory().CreateUndoMoveObject(*this, aUndoSize));
+ GetModel()->AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoMoveObject(*this, aUndoSize));
}
// set geometry properties
SetPropsFromRect(GetLogicRect());
@@ -1034,12 +1013,13 @@ bool OOle2Obj::EndCreate(SdrDragStat& rStat, SdrCreateCmd eCmd)
bool bResult = SdrOle2Obj::EndCreate(rStat, eCmd);
if ( bResult )
{
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
- OXUndoEnvironment::OUndoEnvLock aLock(rRptModel.GetUndoEnv());
-
- if ( !m_xReportComponent.is() )
- m_xReportComponent.set(getUnoShape(),uno::UNO_QUERY);
-
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ if ( pRptModel )
+ {
+ OXUndoEnvironment::OUndoEnvLock aLock(pRptModel->GetUndoEnv());
+ if ( !m_xReportComponent.is() )
+ m_xReportComponent.set(getUnoShape(),uno::UNO_QUERY);
+ }
// set geometry properties
SetPropsFromRect(GetLogicRect());
}
@@ -1058,8 +1038,8 @@ uno::Reference< uno::XInterface > OOle2Obj::getUnoShape()
uno::Reference< uno::XInterface> xShape = OObjectBase::getUnoShapeOf( *this );
if ( !m_xReportComponent.is() )
{
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
- OXUndoEnvironment::OUndoEnvLock aLock(rRptModel.GetUndoEnv());
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ OXUndoEnvironment::OUndoEnvLock aLock(pRptModel->GetUndoEnv());
m_xReportComponent.set(xShape,uno::UNO_QUERY);
}
return xShape;
@@ -1088,32 +1068,33 @@ uno::Reference< chart2::data::XDatabaseDataProvider > lcl_getDataProvider(const
return xSource;
}
-// Clone() should make a complete copy of the object.
-OOle2Obj* OOle2Obj::Clone(SdrModel* pTargetModel) const
-{
- return CloneHelper< OOle2Obj >(pTargetModel);
-}
-
OOle2Obj& OOle2Obj::operator=(const OOle2Obj& rObj)
{
if( this == &rObj )
return *this;
SdrOle2Obj::operator=(rObj);
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
+ OReportModel* pRptModel = static_cast<OReportModel*>(rObj.GetModel());
svt::EmbeddedObjectRef::TryRunningState( GetObjRef() );
- impl_createDataProvider_nothrow(rRptModel.getReportDefinition().get());
+ impl_createDataProvider_nothrow(pRptModel->getReportDefinition().get());
uno::Reference< chart2::data::XDatabaseDataProvider > xSource( lcl_getDataProvider(rObj.GetObjRef()) );
uno::Reference< chart2::data::XDatabaseDataProvider > xDest( lcl_getDataProvider(GetObjRef()) );
if ( xSource.is() && xDest.is() )
comphelper::copyProperties(xSource.get(),xDest.get());
- initializeChart(rRptModel.getReportDefinition().get());
+ initializeChart(pRptModel->getReportDefinition().get());
return *this;
}
+
+// Clone() should make a complete copy of the object.
+OOle2Obj* OOle2Obj::Clone() const
+{
+ return CloneHelper< OOle2Obj >();
+}
+
void OOle2Obj::impl_createDataProvider_nothrow(const uno::Reference< frame::XModel>& _xModel)
{
try
@@ -1142,8 +1123,8 @@ void OOle2Obj::initializeOle()
{
m_bOnlyOnce = false;
uno::Reference < embed::XEmbeddedObject > xObj = GetObjRef();
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
- rRptModel.GetUndoEnv().AddElement(lcl_getDataProvider(xObj));
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ pRptModel->GetUndoEnv().AddElement(lcl_getDataProvider(xObj));
uno::Reference< embed::XComponentSupplier > xCompSupp( xObj, uno::UNO_QUERY );
if( xCompSupp.is() )
@@ -1174,8 +1155,8 @@ void OOle2Obj::initializeChart( const uno::Reference< frame::XModel>& _xModel)
if ( !lcl_getDataProvider(xObj).is() )
impl_createDataProvider_nothrow(_xModel);
- OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
- rRptModel.GetUndoEnv().AddElement(lcl_getDataProvider(xObj));
+ OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
+ pRptModel->GetUndoEnv().AddElement(lcl_getDataProvider(xObj));
::comphelper::NamedValueCollection aArgs;
aArgs.put( "CellRangeRepresentation", uno::makeAny( OUString( "all" ) ) );