/************************************************************** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __com_sun_star_sdb_OfficeDatabaseDocument_idl__ #define __com_sun_star_sdb_OfficeDatabaseDocument_idl__ #ifndef __com_sun_star_document_OfficeDocument_idl__ #include #endif #ifndef __com_sun_star_sdb_XOfficeDatabaseDocument_idl__ #include #endif #ifndef __com_sun_star_document_XDocumentEventBroadcaster_idl__ #include #endif #ifndef __com_sun_star_script_provider_XScriptProviderSupplier_idl__ #include #endif #ifndef __com_sun_star_frame_XLoadable_idl__ #include #endif #ifndef __com_sun_star_util_XCloseable_idl__ #include #endif 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 succeeeded. 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 succeeeded. 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 succeeeded. 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