/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef __com_sun_star_sdb_OfficeDatabaseDocument_idl__ #define __com_sun_star_sdb_OfficeDatabaseDocument_idl__ #include #include #include #include #include #include module com { module sun { module star { module sdb { /** specifies a office database document which is a storable document.

These documents contain information about forms, and reports, and the properties of a data source.

The database document contains no data per default. The following is stored inside the document:

  • forms
  • reports
  • The table settings defined in DataSettings
  • The query settings defined in DataSettings
  • All properties of the service DataSource

@see com::sun::star::sdb::XOfficeDatabaseDocument @see com::sun::star::document::OfficeDocument @since OOo 2.0 */ service OfficeDatabaseDocument { /** specifies basic functionality of a document in OpenOffice.org

Note that a database document actually does not support the XPrintable interface. The non-optional requirement of this interface in the OfficeDocument service is considered a documentation error.

*/ service com::sun::star::document::OfficeDocument; interface XOfficeDatabaseDocument; /** allows access to the Basic macros and dialogs possibly embedded in the document @since OOo 3.1 */ interface ::com::sun::star::document::XEmbeddedScripts; /** supplies a script provider which can be used to execute macros and scripts embedded in the document @since OOo 3.1 */ interface ::com::sun::star::script::provider::XScriptProviderSupplier; /** allows to initialize the the document, either from scratch, or from a stored database document.

A newly instantiated database document cannot be operated until it is fully initialized. There are three possible means to do this initialization:

  • calling XLoadable::initNew
  • calling XLoadable::load
  • calling XStorable::storeAsURL
The third option was added for compatibility reasons, since a DatabaseDocument in earlier versions of OpenOffice.org did not support the XLoadable interface, so the usual way of creating a document from scratch was to create it, set properties as needed, and store it.

@since OOo 3.1 */ interface ::com::sun::star::frame::XLoadable; /** allows to register for notifications happening in the document

The following events are broadcasted by a database document
Event Name broadcasted when broadcasted synchronously
OnCreate the document has been newly created. This does not imply that the document has been loaded into a frame, it just means the initialization has been finished. yes
OnLoadFinished the document has been completely loaded. This does not imply that the document has been loaded into a frame, it just means the load process has been finished. yes
OnNew the document has been initialized from scratch, including plugging it into a frame. no
OnLoad the document has been completely loaded, including plugging it into a frame. no
OnSave the document is about to be saved. yes
OnSaveDone saving the document succeeded. no
OnSaveFailed saving the document failed. no
OnSaveAs the document is about to be saved under a new name. yes
OnSaveAsDone saving the document under a new name succeeded. no
OnSaveAsFailed saving the document under a new name failed. no
OnSaveTo the document is about to be saved to a location different from its current location, but without adjusting the current location. yes
OnSaveToDone saving the document to a different location succeeded. no
OnSaveToFailed saving the document to a different location failed. no
OnPrepareUnload the document is about to be closed. yes
OnUnload the document is being closed. yes
OnFocus a view to the document obtained the focus. no
OnUnfocus a view to the document lost the focus. no
OnModifyChanged the modified state of the document changed. no
OnViewCreated a view to the document has been created, and attached to the document. no
OnPrepareViewClosing a view to the document is about to be closed. yes
OnViewClosed a view to the document has been closed. no
OnTitleChanged the title of the document changed. no
OnSubComponentOpened From with a view to the document, a view to a sub component (e.g. a table or a report) has been opened. no
OnSubComponentClosed From with a view to the document, a view to a sub component (e.g. a table or a report) has been closed. no

@since OOo 3.1 */ interface ::com::sun::star::document::XDocumentEventBroadcaster; /** implements life time control

Whoever retrieves a OfficeDatabaseDocument should be aware of life time issues, since a document needs to be closed when nobody needs it anymore.

This implies that clients of a document need to ensure that as soon as they don't need, they invoke XCloseable::close.

Since this can be done by multiple clients, every client is additionally required to register itself as XCloseListener at the document, to prevent some other client closing the model while it's still needed by the first client.

*/ interface com::sun::star::util::XCloseable; }; //============================================================================= }; }; }; }; /*=========================================================================== ===========================================================================*/ #endif