blob: 2a5ba69f1b9201ab4358ebc23310173ee6494ccc [file] [log] [blame]
/**************************************************************
*
* 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_frame_XDocumentTemplates_idl__
#define __com_sun_star_frame_XDocumentTemplates_idl__
#ifndef __com_sun_star_frame_XStorable_idl__
#include <com/sun/star/frame/XStorable.idl>
#endif
#ifndef __com_sun_star_ucb_XContent_idl__
#include <com/sun/star/ucb/XContent.idl>
#endif
//=============================================================================
module com { module sun { module star { module frame {
//=============================================================================
/** provides a high level api to organize document templates
<p>
Template informations are saved as links to the original content
and organized in groups. This data should be persistent and can be
updated by calling special method <member>XDocumentTemplates::update()</member>.
A real implementation of this interface can do that on top of
an ucb content provider. Method <member>XDocumentTemplates::getContent()</member>
force that.
</p>
*/
published interface XDocumentTemplates: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** privides access to the root of internal used hierarchy
<p>
This content can be used for accessing the groups directly.
</p>
@return
the ucb content for template configuration
*/
com::sun::star::ucb::XContent getContent();
//-------------------------------------------------------------------------
/** creates the template with the given name in the given group using the
data from the storable
@param GroupName
specifies the group
@param TemplateName
specifies the template
@param Storable
specifies the target
@return
<TRUE/> if operation was sucessfully
<br>
<FALSE/> otherwise
@see XDocumentTemplates::addTemplate()
*/
boolean storeTemplate(
[in] string GroupName,
[in] string TemplateName,
[in] XStorable Storable);
//-------------------------------------------------------------------------
/** creates the template with the given name in the given group using the
given URL
@param GroupName
specifies the group
@param TemplateName
specifies the template
@param SourceURL
specifies the position of template
@return
<TRUE/> if operation was sucessfully
<br>
<FALSE/> otherwise
@see XDocumentTemplates::storeTemplate()
*/
boolean addTemplate(
[in] string GroupName,
[in] string TemplateName,
[in] string SourceURL);
//-------------------------------------------------------------------------
/** remove a template from specified group
@param GroupName
specifies the group which include the template
@param TemplateName
specifies the template for delete
@return
<TRUE/> if operation was sucessfully
<br>
<FALSE/> otherwise
*/
boolean removeTemplate(
[in] string GroupName,
[in] string TemplateName);
//-------------------------------------------------------------------------
/** rename a template inside specified group
@param GroupName
specifies the group which include the template
@param TemplateName
specifies the template for renaming
@return
<TRUE/> if operation was sucessfully
<br>
<FALSE/> otherwise
*/
boolean renameTemplate(
[in] string GroupName,
[in] string OldTemplateName,
[in] string NewTemplateName);
//-------------------------------------------------------------------------
/** creates a new group
@param GroupName
the name of the group to be created
@return
<TRUE/> if operation was sucessfully
<br>
<FALSE/> otherwise
*/
boolean addGroup( [in] string GroupName );
//-------------------------------------------------------------------------
/** remove an existing group
@param GroupName
the name of the group to be removed
@return
<TRUE/> if operation was sucessfully
<br>
<FALSE/> otherwise
*/
boolean removeGroup( [in] string GroupName );
//-------------------------------------------------------------------------
/** rename an existing group
@param OldGroupName
the old name of the group
@param NewGroupName
the new name of the group
@return
<TRUE/> if operation was sucessfully
<br>
<FALSE/> otherwise
*/
boolean renameGroup(
[in] string OldGroupName,
[in] string NewGroupName);
//-------------------------------------------------------------------------
/** force an update for internal structures
<p>
Because the templates are well known by links and not as direct content
they can be outdated. An update force actualization of that to find
wrong links.
</p>
*/
[oneway] void update();
};
//=============================================================================
}; }; }; };
#endif