/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * 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 . */ #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 an 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 com::sun::star::view::XPrintable interface. The non-optional requirement of this interface in the com::sun::star::document::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 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 an 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 com::sun::star::util::XCloseable::close().

Since this can be done by multiple clients, every client is additionally required to register itself as com::sun::star::util::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 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */