summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vogelheim <dvo@openoffice.org>2001-01-19 18:47:04 +0000
committerDaniel Vogelheim <dvo@openoffice.org>2001-01-19 18:47:04 +0000
commit2cda7630c20c98633749ad54757dadc5e67a3b10 (patch)
treec70bdc32519d172ee79746fd2e66f72db20de81d
parent1677364083d8267999b773ff9e59ad8511a6ccbc (diff)
- fixed: redlines
-rw-r--r--sw/inc/unoredline.hxx65
-rw-r--r--sw/source/core/unocore/unoredline.cxx324
2 files changed, 233 insertions, 156 deletions
diff --git a/sw/inc/unoredline.hxx b/sw/inc/unoredline.hxx
index 03f97d2f97fd..2a2b87e25d6c 100644
--- a/sw/inc/unoredline.hxx
+++ b/sw/inc/unoredline.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: unoredline.hxx,v $
*
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*
- * last change: $Author: os $ $Date: 2001-01-15 11:22:34 $
+ * last change: $Author: dvo $ $Date: 2001-01-19 19:47:04 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -80,7 +80,8 @@ class SwRedline;
*/
class SwXRedlineText :
public SwXText,
- public cppu::OWeakObject
+ public cppu::OWeakObject,
+ public ::com::sun::star::container::XEnumerationAccess
{
SwNodeIndex aNodeIndex;
@@ -98,13 +99,17 @@ public:
virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursor(void) throw( ::com::sun::star::uno::RuntimeException );
virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursorByRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & aTextPosition) throw( ::com::sun::star::uno::RuntimeException );
+ //XEnumerationAccess
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException );
+
+ //XElementAccess (via XEnumerationAccess)
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException);
};
/* ---------------------------------------------------------------------------
---------------------------------------------------------------------------*/
-class SwXRedlinePortion : public SwXTextPortion,
- public SwXText,
- public ::com::sun::star::container::XEnumerationAccess
+class SwXRedlinePortion : public SwXTextPortion
{
const SwRedline* pRedline;
@@ -117,24 +122,8 @@ public:
~SwXRedlinePortion();
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL acquire( ) throw(){SwXTextPortion::acquire();}
- virtual void SAL_CALL release( ) throw(){SwXTextPortion::release();}
-
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
- //XText
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursor(void) throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursorByRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & aTextPosition) throw( ::com::sun::star::uno::RuntimeException );
-
- //XEnumerationAccess
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException );
-
- //XElementAccess
- virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException);
-
//XPropertySet
virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
@@ -145,11 +134,16 @@ public:
/* -----------------------------11.01.01 16:52--------------------------------
---------------------------------------------------------------------------*/
-class SwXRedline :
-public cppu::WeakImplHelper1
+typedef
+cppu::WeakImplHelper2
<
- ::com::sun::star::beans::XPropertySet
->,
+ ::com::sun::star::beans::XPropertySet,
+ ::com::sun::star::container::XEnumerationAccess
+>
+SwXRedlineBaseClass;
+class SwXRedline :
+ public SwXRedlineBaseClass,
+ public SwXText,
public SwClient
{
SwDoc* pDoc;
@@ -159,6 +153,18 @@ public:
~SwXRedline();
TYPEINFO();
+
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire( ) throw(){OWeakObject::acquire();}
+ virtual void SAL_CALL release( ) throw(){OWeakObject::release();}
+
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
+
+ //XText
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursor(void) throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursorByRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & aTextPosition) throw( ::com::sun::star::uno::RuntimeException );
+
//XPropertySet
virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
@@ -168,6 +174,13 @@ public:
virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ //XEnumerationAccess
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException );
+
+ //XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException);
+
//SwClient
virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
diff --git a/sw/source/core/unocore/unoredline.cxx b/sw/source/core/unocore/unoredline.cxx
index 4c863cdff0bc..d9f8cc7d545f 100644
--- a/sw/source/core/unocore/unoredline.cxx
+++ b/sw/source/core/unocore/unoredline.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: unoredline.cxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: vg $ $Date: 2001-01-18 16:31:33 $
+ * last change: $Author: dvo $ $Date: 2001-01-19 19:47:03 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -145,12 +145,23 @@ SwXRedlineText::SwXRedlineText(SwDoc* pDoc, SwNodeIndex aIndex) :
Any SwXRedlineText::queryInterface( const Type& rType )
throw(RuntimeException)
{
- // deledate to SwXText and OWeakObject
- Any aRet = SwXText::queryInterface(rType);
- if(!aRet.hasValue())
+ Any aRet;
+
+ if (::getCppuType((Reference<XEnumerationAccess> *)0) == rType)
{
- aRet = OWeakObject::queryInterface(rType);
+ Reference<XEnumerationAccess> aAccess = this;
+ aRet <<= aAccess;
}
+ else
+ {
+ // delegate to SwXText and OWeakObject
+ aRet = SwXText::queryInterface(rType);
+ if(!aRet.hasValue())
+ {
+ aRet = OWeakObject::queryInterface(rType);
+ }
+ }
+
return aRet;
}
/* ---------------------------------------------------------------------------
@@ -161,6 +172,12 @@ Sequence<Type> SwXRedlineText::getTypes()
{
// SwXText::getTypes()
uno::Sequence<uno::Type> aTypes = SwXText::getTypes();
+
+ // add XEnumerationAccess
+ sal_Int32 nLength = aTypes.getLength();
+ aTypes.realloc(nLength + 1);
+ aTypes[nLength] = ::getCppuType((Reference<XEnumerationAccess> *)0);
+
return aTypes;
}
/* ---------------------------------------------------------------------------
@@ -203,6 +220,31 @@ Reference<XTextCursor> SwXRedlineText::createTextCursorByRange(
xCursor->gotoRange(aTextRange->getEnd(), sal_True);
return xCursor;
}
+/* ---------------------------------------------------------------------------
+
+ ---------------------------------------------------------------------------*/
+Reference<XEnumeration> SwXRedlineText::createEnumeration(void)
+ throw( RuntimeException )
+{
+ vos::OGuard aGuard(Application::GetSolarMutex());
+ SwPaM aPam(aNodeIndex);
+ aPam.Move(fnMoveForward, fnGoNode);
+ return new SwXParagraphEnumeration(this, *aPam.Start(), CURSOR_REDLINE);
+}
+/* ---------------------------------------------------------------------------
+
+ ---------------------------------------------------------------------------*/
+uno::Type SwXRedlineText::getElementType( ) throw(RuntimeException)
+{
+ return ::getCppuType((uno::Reference<XTextRange>*)0);
+}
+/* ---------------------------------------------------------------------------
+
+ ---------------------------------------------------------------------------*/
+sal_Bool SwXRedlineText::hasElements( ) throw(RuntimeException)
+{
+ return sal_True; // we always have a content index
+}
/* -----------------------------19.12.00 11:36--------------------------------
---------------------------------------------------------------------------*/
@@ -210,7 +252,7 @@ SwXRedlinePortion::SwXRedlinePortion( const SwRedline* pRed,
const SwUnoCrsr* pPortionCrsr,
Reference< XText > xParent, BOOL bStart) :
SwXTextPortion(pPortionCrsr, xParent, bStart ? PORTION_REDLINE_START : PORTION_REDLINE_END),
- SwXText(pPortionCrsr->GetDoc(), CURSOR_REDLINE),
+// SwXText(pPortionCrsr->GetDoc(), CURSOR_REDLINE),
// SwXRedlineText(pPortionCrsr->GetDoc(), *pRed->GetContentIdx()),
pRedline(pRed)
{
@@ -222,83 +264,6 @@ SwXRedlinePortion::SwXRedlinePortion( const SwRedline* pRed,
SwXRedlinePortion::~SwXRedlinePortion()
{
}
-/*-- 19.12.00 11:37:24---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-Any SwXRedlinePortion::queryInterface( const uno::Type& rType ) throw(RuntimeException)
-{
- Any aRet = SwXTextPortion::queryInterface(rType);
- if(!aRet.hasValue() &&
- IsCollapsed())
- {
- aRet = SwXText::queryInterface(rType);
- if(!aRet.hasValue())
- {
- if(rType == ::getCppuType((Reference<XEnumerationAccess>*)0))
- {
- Reference<XEnumerationAccess> xTmp = this;
- aRet <<= xTmp;
- }
- else if(rType == ::getCppuType((Reference<XElementAccess>*)0))
- {
- Reference<XElementAccess> xTmp = this;
- aRet <<= xTmp;
- }
- }
- }
- return aRet;
-}
-/*-- 19.12.00 11:37:25---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-Sequence< Type > SwXRedlinePortion::getTypes( ) throw(RuntimeException)
-{
- uno::Sequence< uno::Type > aTypes = SwXTextPortion::getTypes();
- if(!IsCollapsed())
- return aTypes;
- uno::Sequence< uno::Type > aTextTypes = SwXText::getTypes();
- long nIndex = aTypes.getLength();
- aTypes.realloc(aTypes.getLength() + aTextTypes.getLength() + 1);
- uno::Type* pTypes = aTypes.getArray();
- const uno::Type* pTextTypes = aTextTypes.getConstArray();
- for(int i = 0; i < aTextTypes.getLength(); i++)
- pTypes[nIndex++] = pTextTypes[i];
- pTypes[nIndex++] = ::getCppuType((Reference<XEnumerationAccess>*)0);
- return aTypes;
-}
-/*-- 19.12.00 11:37:25---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-Reference< XEnumeration > SwXRedlinePortion::createEnumeration(void) throw( RuntimeException )
-{
- vos::OGuard aGuard(Application::GetSolarMutex());
- Reference< XEnumeration > xRet;
- SwUnoCrsr* pUnoCrsr = GetCrsr();
- Validate();
-
- SwNodeIndex* pNodeIndex = pRedline->GetContentIdx();
- if(pNodeIndex)
- {
- SwPaM aPam(*pNodeIndex);
- aPam.Move(fnMoveForward, fnGoNode);
- xRet = new SwXParagraphEnumeration(this, *aPam.Start(), CURSOR_REDLINE);
- }
- return xRet;
-}
-/* -----------------------------19.12.00 12:34--------------------------------
-
- ---------------------------------------------------------------------------*/
-uno::Type SwXRedlinePortion::getElementType( ) throw(RuntimeException)
-{
- return ::getCppuType((uno::Reference<XTextRange>*)0);
-}
-/* -----------------------------19.12.00 12:34--------------------------------
-
- ---------------------------------------------------------------------------*/
-sal_Bool SwXRedlinePortion::hasElements( ) throw(RuntimeException)
-{
- return TRUE;
-}
/* -----------------------------19.12.00 11:46--------------------------------
---------------------------------------------------------------------------*/
@@ -384,55 +349,24 @@ Any SwXRedlinePortion::getPropertyValue( const OUString& rPropertyName )
{
vos::OGuard aGuard(Application::GetSolarMutex());
Validate();
- Any aRet = GetPropertyValue( rPropertyName, *pRedline);
- if(!aRet.hasValue())
- aRet = SwXTextPortion::getPropertyValue(rPropertyName);
- return aRet;
-}
-/* -----------------------------19.12.00 15:11--------------------------------
-
- ---------------------------------------------------------------------------*/
-Reference< XTextCursor > SwXRedlinePortion::createTextCursor(void) throw( RuntimeException )
-{
- vos::OGuard aGuard(Application::GetSolarMutex());
- SwUnoCrsr* pUnoCrsr = GetCrsr();
- Validate();
-
- uno::Reference< XTextCursor > xRet;
- SwNodeIndex* pNodeIndex = pRedline->GetContentIdx();
- if(pNodeIndex)
+ Any aRet;
+ if(rPropertyName.equalsAsciiL(UNO_NAME_REDLINE_TEXT.pName, UNO_NAME_REDLINE_TEXT.nNameLen))
{
- SwPosition aPos(*pNodeIndex);
- SwXTextCursor* pCrsr = new SwXTextCursor(this, aPos, CURSOR_REDLINE, pUnoCrsr->GetDoc());
- pUnoCrsr->Move(fnMoveForward, fnGoNode);
-
- //steht hier eine Tabelle?
- SwTableNode* pTblNode = pUnoCrsr->GetNode()->FindTableNode();
- SwCntntNode* pCont = 0;
- while( pTblNode )
+ SwNodeIndex* pNodeIdx = pRedline->GetContentIdx();
+ if(pNodeIdx)
{
- pUnoCrsr->GetPoint()->nNode = *pTblNode->EndOfSectionNode();
- pCont = GetDoc()->GetNodes().GoNext(&pUnoCrsr->GetPoint()->nNode);
- pTblNode = pCont->FindTableNode();
+ SwUnoCrsr* pUnoCrsr = GetCrsr();
+ Reference<XText> xRet = new SwXRedlineText(pUnoCrsr->GetDoc(), *pNodeIdx);
+ aRet <<= xRet;
}
- if(pCont)
- pUnoCrsr->GetPoint()->nContent.Assign(pCont, 0);
- xRet = (XWordCursor*)pCrsr;
}
else
{
- throw RuntimeException();
+ aRet = GetPropertyValue( rPropertyName, *pRedline);
+ if(!aRet.hasValue())
+ aRet = SwXTextPortion::getPropertyValue(rPropertyName);
}
- return xRet;
-}
-/* -----------------------------19.12.00 15:11--------------------------------
-
- ---------------------------------------------------------------------------*/
-Reference< XTextCursor > SwXRedlinePortion::createTextCursorByRange(const Reference< XTextRange > & aTextPosition)
- throw( RuntimeException )
-{
- throw RuntimeException();
- return Reference< XTextCursor > ();
+ return aRet;
}
/* -----------------------------19.12.00 15:16--------------------------------
@@ -501,9 +435,12 @@ Sequence< PropertyValue > SwXRedlinePortion::CreateRedlineProperties( const SwRe
{
Sequence< PropertyValue > aRet;
const SwRedlineData* pNext = rRedline.GetRedlineData().Next();
- aRet.realloc( pNext ? 5 : 4 );
+ aRet.realloc( pNext ? 6 : 5 );
PropertyValue* pRet = aRet.getArray();
+ OUStringBuffer sRedlineIdBuf;
+ sRedlineIdBuf.append((sal_Int64)&rRedline);
+
pRet[0].Name = C2U(UNO_NAME_REDLINE_AUTHOR.pName);
pRet[0].Value <<= OUString(rRedline.GetAuthorString());
pRet[1].Name = C2U(UNO_NAME_REDLINE_DATE_TIME.pName);
@@ -512,10 +449,12 @@ Sequence< PropertyValue > SwXRedlinePortion::CreateRedlineProperties( const SwRe
pRet[2].Value <<= OUString(rRedline.GetComment());
pRet[3].Name = C2U(UNO_NAME_REDLINE_TYPE .pName);
pRet[3].Value <<= lcl_RedlineTypeToOUString(rRedline.GetType());
+ pRet[4].Name = C2U(UNO_NAME_REDLINE_IDENTIFIER.pName);
+ pRet[4].Value <<= sRedlineIdBuf.makeStringAndClear();
if(pNext)
{
- pRet[4].Name = C2U(UNO_NAME_REDLINE_SUCCESSOR_DATA.pName);
- pRet[4].Value <<= lcl_GetSuccessorProperties(rRedline);
+ pRet[5].Name = C2U(UNO_NAME_REDLINE_SUCCESSOR_DATA.pName);
+ pRet[5].Value <<= lcl_GetSuccessorProperties(rRedline);
}
return aRet;
}
@@ -525,6 +464,7 @@ Sequence< PropertyValue > SwXRedlinePortion::CreateRedlineProperties( const SwRe
TYPEINIT1(SwXRedline, SwClient);
SwXRedline::SwXRedline(SwRedline& rRedline, SwDoc& rDoc) :
pDoc(&rDoc),
+ SwXText(&rDoc, CURSOR_REDLINE),
pRedline(&rRedline)
{
pDoc->GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
@@ -672,7 +612,7 @@ Any SwXRedline::getPropertyValue( const OUString& rPropertyName )
}
aRet <<= xRet;
}
- else if(rPropertyName.equalsAsciiL(UNO_NAME_REDLINE_TEXT .pName, UNO_NAME_REDLINE_TEXT.nNameLen))
+ else if(rPropertyName.equalsAsciiL(UNO_NAME_REDLINE_TEXT.pName, UNO_NAME_REDLINE_TEXT.nNameLen))
{
SwNodeIndex* pNodeIdx = pRedline->GetContentIdx();
if(pNodeIdx)
@@ -730,4 +670,128 @@ void SwXRedline::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
pRedline = 0;
}
}
+/*-- 19.12.00 11:37:25---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+Reference< XEnumeration > SwXRedline::createEnumeration(void) throw( RuntimeException )
+{
+ vos::OGuard aGuard(Application::GetSolarMutex());
+ Reference< XEnumeration > xRet;
+ if(!pDoc)
+ throw RuntimeException();
+
+ SwNodeIndex* pNodeIndex = pRedline->GetContentIdx();
+ if(pNodeIndex)
+ {
+ SwPaM aPam(*pNodeIndex);
+ aPam.Move(fnMoveForward, fnGoNode);
+ xRet = new SwXParagraphEnumeration(this, *aPam.Start(), CURSOR_REDLINE);
+ }
+ return xRet;
+}
+/* -----------------------------19.12.00 12:34--------------------------------
+
+ ---------------------------------------------------------------------------*/
+uno::Type SwXRedline::getElementType( ) throw(RuntimeException)
+{
+ return ::getCppuType((uno::Reference<XTextRange>*)0);
+}
+/* -----------------------------19.12.00 12:34--------------------------------
+
+ ---------------------------------------------------------------------------*/
+sal_Bool SwXRedline::hasElements( ) throw(RuntimeException)
+{
+ if(!pDoc)
+ throw RuntimeException();
+ return 0 != pRedline->GetContentIdx();
+}
+/* -----------------------------19.12.00 15:11--------------------------------
+
+ ---------------------------------------------------------------------------*/
+Reference< XTextCursor > SwXRedline::createTextCursor(void) throw( RuntimeException )
+{
+ vos::OGuard aGuard(Application::GetSolarMutex());
+ if(!pDoc)
+ throw RuntimeException();
+
+ uno::Reference< XTextCursor > xRet;
+ SwNodeIndex* pNodeIndex = pRedline->GetContentIdx();
+ if(pNodeIndex)
+ {
+ SwPosition aPos(*pNodeIndex);
+ SwXTextCursor* pCrsr = new SwXTextCursor(this, aPos, CURSOR_REDLINE, pDoc);
+ SwUnoCrsr* pUnoCrsr = pCrsr->GetCrsr();
+ pUnoCrsr->Move(fnMoveForward, fnGoNode);
+
+ //steht hier eine Tabelle?
+ SwTableNode* pTblNode = pUnoCrsr->GetNode()->FindTableNode();
+ SwCntntNode* pCont = 0;
+ while( pTblNode )
+ {
+ pUnoCrsr->GetPoint()->nNode = *pTblNode->EndOfSectionNode();
+ pCont = GetDoc()->GetNodes().GoNext(&pUnoCrsr->GetPoint()->nNode);
+ pTblNode = pCont->FindTableNode();
+ }
+ if(pCont)
+ pUnoCrsr->GetPoint()->nContent.Assign(pCont, 0);
+ xRet = (XWordCursor*)pCrsr;
+ }
+ else
+ {
+ throw RuntimeException();
+ }
+ return xRet;
+}
+/* -----------------------------19.12.00 15:11--------------------------------
+
+ ---------------------------------------------------------------------------*/
+Reference< XTextCursor > SwXRedline::createTextCursorByRange(
+ const Reference< XTextRange > & aTextPosition)
+ throw( RuntimeException )
+{
+ throw RuntimeException();
+ return Reference< XTextCursor > ();
+}
+/* ---------------------------------------------------------------------------
+
+ ---------------------------------------------------------------------------*/
+Any SwXRedline::queryInterface( const uno::Type& rType )
+ throw(RuntimeException)
+{
+ Any aRet = SwXText::queryInterface(rType);
+ if(!aRet.hasValue())
+ {
+ aRet = SwXRedlineBaseClass::queryInterface(rType);
+ }
+ return aRet;
+}
+/* ---------------------------------------------------------------------------
+
+ ---------------------------------------------------------------------------*/
+Sequence<Type> SwXRedline::getTypes()
+ throw(RuntimeException)
+{
+ uno::Sequence<uno::Type> aTypes = SwXText::getTypes();
+ uno::Sequence<uno::Type> aBaseTypes = SwXRedlineBaseClass::getTypes();
+ const uno::Type* pBaseTypes = aBaseTypes.getConstArray();
+ aTypes.realloc(aTypes.getLength() + aBaseTypes.getLength());
+ uno::Type* pTypes = aTypes.getArray();
+ sal_Int32 nCurType = aTypes.getLength();
+ for(sal_Int32 nType = 0; nType < aBaseTypes.getLength(); nType++)
+ pTypes[nCurType++] = pBaseTypes[nType];
+ return aTypes;
+}
+/* ---------------------------------------------------------------------------
+
+ ---------------------------------------------------------------------------*/
+Sequence<sal_Int8> SwXRedline::getImplementationId()
+ throw(RuntimeException)
+{
+ vos::OGuard aGuard(Application::GetSolarMutex());
+ static uno::Sequence< sal_Int8 > aId( 16 );
+ static sal_Bool bInit = FALSE;
+ if(!bInit)
+ rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True );
+ return aId;
+}