b707a707aa
Change-Id: Ied9c8635cde96d2d00d66a68cd8387799455c2ec
106 lines
No EOL
3.4 KiB
Java
106 lines
No EOL
3.4 KiB
Java
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
|
|
package util;
|
|
|
|
import util.XInstCreator;
|
|
|
|
import com.sun.star.lang.XMultiServiceFactory;
|
|
import com.sun.star.uno.UnoRuntime;
|
|
import com.sun.star.uno.XInterface;
|
|
import com.sun.star.text.XTextTablesSupplier;
|
|
import com.sun.star.text.XTextFramesSupplier;
|
|
import com.sun.star.text.XTextSectionsSupplier;
|
|
import com.sun.star.text.XFootnotesSupplier;
|
|
import com.sun.star.text.XBookmarksSupplier;
|
|
import com.sun.star.container.XNameAccess;
|
|
import com.sun.star.container.XIndexAccess;
|
|
|
|
|
|
public class InstCreator implements XInstCreator {
|
|
XInterface xParent;
|
|
XMultiServiceFactory xMSF;
|
|
XInterface xInstance;
|
|
XIndexAccess xIA;
|
|
InstDescr iDsc;
|
|
|
|
public InstCreator( XInterface xParent, InstDescr iDsc ) {
|
|
this.xParent = xParent;
|
|
this.iDsc = iDsc;
|
|
|
|
xMSF = UnoRuntime.queryInterface(
|
|
XMultiServiceFactory.class, xParent );
|
|
|
|
xInstance = createInstance();
|
|
xIA = createCollection();
|
|
}
|
|
public XInterface getInstance() {
|
|
return xInstance;
|
|
}
|
|
|
|
public XInterface createInstance() {
|
|
XInterface xIfc = null;
|
|
xIfc = iDsc.createInstance( xMSF );
|
|
|
|
return xIfc;
|
|
}
|
|
|
|
public XIndexAccess getCollection() {
|
|
return xIA;
|
|
}
|
|
|
|
private XIndexAccess createCollection() {
|
|
XNameAccess oNA = null;
|
|
|
|
if ( iDsc instanceof TableDsc ) {
|
|
XTextTablesSupplier oTTS = UnoRuntime.queryInterface(
|
|
XTextTablesSupplier.class, xParent );
|
|
|
|
oNA = oTTS.getTextTables();
|
|
}
|
|
if ( iDsc instanceof FrameDsc ) {
|
|
XTextFramesSupplier oTTS = UnoRuntime.queryInterface(
|
|
XTextFramesSupplier.class, xParent );
|
|
|
|
oNA = oTTS.getTextFrames();
|
|
}
|
|
if ( iDsc instanceof BookmarkDsc ) {
|
|
XBookmarksSupplier oTTS = UnoRuntime.queryInterface(
|
|
XBookmarksSupplier.class, xParent );
|
|
|
|
oNA = oTTS.getBookmarks();
|
|
}
|
|
|
|
if ( iDsc instanceof FootnoteDsc ) {
|
|
XFootnotesSupplier oTTS = UnoRuntime.queryInterface(
|
|
XFootnotesSupplier.class, xParent );
|
|
|
|
return( oTTS.getFootnotes() );
|
|
}
|
|
|
|
if ( iDsc instanceof TextSectionDsc ) {
|
|
XTextSectionsSupplier oTSS = UnoRuntime.queryInterface(
|
|
XTextSectionsSupplier.class, xParent );
|
|
|
|
oNA = oTSS.getTextSections();
|
|
}
|
|
|
|
return UnoRuntime.queryInterface(
|
|
XIndexAccess.class, oNA);
|
|
}
|
|
} |