22#include <rtl/ustring.hxx>
23#include <osl/diagnose.h>
26#include <com/sun/star/uno/XComponentContext.hpp>
27#include <com/sun/star/frame/XModel.hpp>
28#include <com/sun/star/frame/XTransientDocumentsDocumentContentFactory.hpp>
29#include <com/sun/star/ucb/ContentCreationException.hpp>
30#include <com/sun/star/ucb/SimpleFileAccess.hpp>
31#include <com/sun/star/lang/IllegalArgumentException.hpp>
32#include <com/sun/star/lang/XMultiComponentFactory.hpp>
42static css::uno::Sequence< OUString >
allOpenTDocUrls(
const css::uno::Reference< css::uno::XComponentContext >& xCtx)
44 css::uno::Sequence< OUString >
result;
51 css::uno::Reference < css::ucb::XSimpleFileAccess3 > xSFA( css::ucb::SimpleFileAccess::create(xCtx) );
52 result = xSFA->getFolderContents(
"vnd.sun.star.tdoc:/",
true );
54 catch ( css::uno::Exception& )
60static OUString
xModelToTdocUrl(
const css::uno::Reference< css::frame::XModel >& xModel,
61 const css::uno::Reference< css::uno::XComponentContext >& xContext )
63 css::uno::Reference< css::lang::XMultiComponentFactory > xMCF(
64 xContext->getServiceManager() );
66 css::frame::XTransientDocumentsDocumentContentFactory > xDocFac;
69 xDocFac.set(xMCF->createInstanceWithContext(
70 "com.sun.star.frame.TransientDocumentsDocumentContentFactory",
72 css::uno::UNO_QUERY );
74 catch ( css::uno::Exception
const & )
83 css::uno::Reference< css::ucb::XContent > xContent(
84 xDocFac->createDocumentContent(
xModel ) );
85 return xContent->getIdentifier()->getContentIdentifier();
87 catch ( css::lang::IllegalArgumentException
const & )
89 OSL_FAIL(
"Invalid document model!" );
93 OSL_FAIL(
"Unable to obtain URL for document model!" );
97static css::uno::Reference< css::frame::XModel >
tDocUrlToModel(
const OUString& url )
106 catch ( css::ucb::ContentCreationException& )
110 catch ( css::uno::RuntimeException& )
115 css::uno::Reference< css::frame::XModel >
xModel(
116 result, css::uno::UNO_QUERY );
129 catch ( css::uno::Exception& )
static css::uno::Any getUCBProperty(::ucbhelper::Content &content, OUString const &prop)
static css::uno::Reference< css::frame::XModel > tDocUrlToModel(const OUString &url)
static css::uno::Sequence< OUString > allOpenTDocUrls(const css::uno::Reference< css::uno::XComponentContext > &xCtx)
static OUString xModelToTdocUrl(const css::uno::Reference< css::frame::XModel > &xModel, const css::uno::Reference< css::uno::XComponentContext > &xContext)
css::uno::Any getPropertyValue(const OUString &rPropertyName)
Reference< XComponentContext > getProcessComponentContext()
Reference< XModel > xModel