Files
loongoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx
Oliver-Rainer Wittmann d02f75a8c3 Resolves: #i121420# merge sidebar feature
(cherry picked from commit 0a0a9b32aa5bf1ce2554ad37cbba3c7a105db2b5)

Conflicts:
	chart2/source/controller/dialogs/dlg_View3D.cxx
	chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
	chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
	chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
	chart2/source/controller/inc/ViewElementListProvider.hxx
	chart2/source/controller/inc/dlg_View3D.hxx
	chart2/source/controller/main/ShapeController.cxx
	chart2/source/inc/chartview/DrawModelWrapper.hxx
	chart2/source/view/main/DrawModelWrapper.cxx
	cui/source/inc/border.hxx
	cui/source/inc/cuitabarea.hxx
	cui/source/inc/cuitabline.hxx
	cui/source/inc/sdrcelldlg.hxx
	cui/source/inc/treeopt.hxx
	cui/source/options/optchart.cxx
	cui/source/options/optchart.hxx
	cui/source/options/optcolor.cxx
	cui/source/options/treeopt.cxx
	cui/source/tabpages/backgrnd.cxx
	cui/source/tabpages/border.cxx
	cui/source/tabpages/chardlg.cxx
	cui/source/tabpages/numpages.cxx
	cui/source/tabpages/tpcolor.cxx
	cui/source/tabpages/tplneend.cxx
	editeng/inc/editeng/outliner.hxx
	extensions/source/propctrlr/standardcontrol.cxx
	framework/source/register/registerservices.cxx
	offapi/com/sun/star/ui/makefile.mk
	officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
	officecfg/registry/data/org/openoffice/Office/UI/makefile.mk
	officecfg/registry/schema/org/openoffice/Office/UI/makefile.mk
	postprocess/packregistry/makefile.mk
	reportdesign/source/ui/dlg/Condition.cxx
	reportdesign/source/ui/misc/UITools.cxx
	sc/inc/document.hxx
	sc/inc/helpids.h
	sc/inc/sc.hrc
	sc/prj/build.lst
	sc/sdi/scalc.sdi
	sc/source/core/data/documen9.cxx
	sc/source/core/data/drwlayer.cxx
	sc/source/ui/app/scdll.cxx
	sc/source/ui/app/typemap.cxx
	sc/source/ui/dbgui/scendlg.cxx
	sc/source/ui/docshell/docsh2.cxx
	sc/source/ui/docshell/docsh4.cxx
	sc/source/ui/drawfunc/chartsh.cxx
	sc/source/ui/drawfunc/drawsh.cxx
	sc/source/ui/drawfunc/drawsh2.cxx
	sc/source/ui/drawfunc/drawsh4.cxx
	sc/source/ui/drawfunc/drformsh.cxx
	sc/source/ui/drawfunc/drtxtob.cxx
	sc/source/ui/drawfunc/drtxtob1.cxx
	sc/source/ui/drawfunc/drtxtob2.cxx
	sc/source/ui/drawfunc/graphsh.cxx
	sc/source/ui/drawfunc/oleobjsh.cxx
	sc/source/ui/inc/chartsh.hxx
	sc/source/ui/inc/formatsh.hxx
	sc/source/ui/miscdlgs/tabbgcolordlg.cxx
	sc/source/ui/navipi/navipi.cxx
	sc/source/ui/optdlg/opredlin.cxx
	sc/source/ui/optdlg/tpview.cxx
	sc/source/ui/sidebar/makefile.mk
	sc/source/ui/view/auditsh.cxx
	sc/source/ui/view/cellsh.cxx
	sc/source/ui/view/editsh.cxx
	sc/source/ui/view/formatsh.cxx
	sc/source/ui/view/pivotsh.cxx
	sc/source/ui/view/tabvwsh.cxx
	sc/util/makefile.mk
	sd/inc/sdabstdlg.hxx
	sd/prj/build.lst
	sd/sdi/ToolPanelViewShell.sdi
	sd/sdi/makefile.mk
	sd/source/ui/accessibility/makefile.mk
	sd/source/ui/animations/CustomAnimationDialog.cxx
	sd/source/ui/dlg/PaneChildWindows.cxx
	sd/source/ui/dlg/PaneShells.cxx
	sd/source/ui/dlg/copydlg.cxx
	sd/source/ui/dlg/navigatr.cxx
	sd/source/ui/dlg/sddlgfact.cxx
	sd/source/ui/dlg/sddlgfact.hxx
	sd/source/ui/docshell/docshel3.cxx
	sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx
	sd/source/ui/framework/factories/TaskPanelFactory.cxx
	sd/source/ui/framework/factories/TaskPanelFactory.hxx
	sd/source/ui/framework/factories/ViewShellWrapper.cxx
	sd/source/ui/framework/factories/makefile.mk
	sd/source/ui/framework/module/ImpressModule.cxx
	sd/source/ui/framework/module/ToolPanelModule.cxx
	sd/source/ui/framework/tools/FrameworkHelper.cxx
	sd/source/ui/func/fuolbull.cxx
	sd/source/ui/inc/DrawViewShell.hxx
	sd/source/ui/inc/PaneChildWindows.hxx
	sd/source/ui/inc/celltempl.hxx
	sd/source/ui/inc/copydlg.hxx
	sd/source/ui/inc/dlgpage.hxx
	sd/source/ui/inc/framework/FrameworkHelper.hxx
	sd/source/ui/inc/prltempl.hxx
	sd/source/ui/inc/tabtempl.hxx
	sd/source/ui/inc/taskpane/ILayoutableWindow.hxx
	sd/source/ui/inc/taskpane/PanelId.hxx
	sd/source/ui/inc/tpaction.hxx
	sd/source/ui/sidebar/AllMasterPagesSelector.cxx
	sd/source/ui/sidebar/AllMasterPagesSelector.hxx
	sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
	sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
	sd/source/ui/sidebar/DocumentHelper.cxx
	sd/source/ui/sidebar/DocumentHelper.hxx
	sd/source/ui/sidebar/LayoutMenu.cxx
	sd/source/ui/sidebar/LayoutMenu.hxx
	sd/source/ui/sidebar/MasterPageContainer.cxx
	sd/source/ui/sidebar/MasterPageContainer.hxx
	sd/source/ui/sidebar/MasterPageContainerFiller.cxx
	sd/source/ui/sidebar/MasterPageContainerFiller.hxx
	sd/source/ui/sidebar/MasterPageContainerProviders.cxx
	sd/source/ui/sidebar/MasterPageContainerProviders.hxx
	sd/source/ui/sidebar/MasterPageContainerQueue.cxx
	sd/source/ui/sidebar/MasterPageContainerQueue.hxx
	sd/source/ui/sidebar/MasterPageDescriptor.cxx
	sd/source/ui/sidebar/MasterPageDescriptor.hxx
	sd/source/ui/sidebar/MasterPageObserver.cxx
	sd/source/ui/sidebar/MasterPagesSelector.cxx
	sd/source/ui/sidebar/MasterPagesSelector.hxx
	sd/source/ui/sidebar/PreviewValueSet.cxx
	sd/source/ui/sidebar/PreviewValueSet.hxx
	sd/source/ui/sidebar/RecentMasterPagesSelector.cxx
	sd/source/ui/sidebar/RecentlyUsedMasterPages.cxx
	sd/source/ui/sidebar/SidebarShellManager.cxx
	sd/source/ui/sidebar/SlideTransitionPanel.hxx
	sd/source/ui/sidebar/makefile.mk
	sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx
	sd/source/ui/table/TableDesignPane.hxx
	sd/source/ui/toolpanel/ControlContainer.cxx
	sd/source/ui/toolpanel/ControlContainerDescriptor.hxx
	sd/source/ui/toolpanel/MethodGuard.hxx
	sd/source/ui/toolpanel/ScrollPanel.cxx
	sd/source/ui/toolpanel/SlideSorterCacheDisplay.cxx
	sd/source/ui/toolpanel/SubToolPanel.cxx
	sd/source/ui/toolpanel/TaskPaneFocusManager.cxx
	sd/source/ui/toolpanel/TaskPaneTreeNode.cxx
	sd/source/ui/toolpanel/TitleBar.cxx
	sd/source/ui/toolpanel/TitledControl.cxx
	sd/source/ui/toolpanel/ToolPanel.cxx
	sd/source/ui/toolpanel/ToolPanel.hxx
	sd/source/ui/toolpanel/ToolPanelFactory.cxx
	sd/source/ui/toolpanel/ToolPanelUIElement.cxx
	sd/source/ui/toolpanel/ToolPanelUIElement.hxx
	sd/source/ui/toolpanel/ToolPanelViewShell.cxx
	sd/source/ui/toolpanel/controls/CustomAnimationPanel.cxx
	sd/source/ui/toolpanel/controls/CustomAnimationPanel.hxx
	sd/source/ui/toolpanel/controls/MasterPagesPanel.cxx
	sd/source/ui/toolpanel/controls/MasterPagesPanel.hxx
	sd/source/ui/toolpanel/controls/SlideTransitionPanel.cxx
	sd/source/ui/toolpanel/controls/SlideTransitionPanel.hxx
	sd/source/ui/toolpanel/controls/TableDesignPanel.cxx
	sd/source/ui/toolpanel/controls/TableDesignPanel.hxx
	sd/source/ui/unoidl/UnoDocumentSettings.cxx
	sd/source/ui/view/ViewShellBase.cxx
	sd/source/ui/view/drtxtob.cxx
	sd/source/ui/view/drviews3.cxx
	sd/source/ui/view/drviews7.cxx
	sd/source/ui/view/drviewsa.cxx
	sd/source/ui/view/drviewsf.cxx
	sd/source/ui/view/outlnvsh.cxx
	sd/source/ui/view/sdview.cxx
	sd/source/ui/view/viewshel.cxx
	sd/uiconfig/sdraw/menubar/menubar.xml
	sd/util/makefile.mk
	sfx2/Package_inc.mk
	sfx2/inc/sfx2/sfx.hrc
	sfx2/inc/sfx2/sfxsids.hrc
	sfx2/source/control/bindings.cxx
	sfx2/source/dialog/templdlg.cxx
	sfx2/source/inc/templdgi.hxx
	svx/AllLangResTarget_svx.mk
	svx/Package_inc.mk
	svx/inc/svx/XPropertyTable.hxx
	svx/inc/svx/bmpmask.hxx
	svx/inc/svx/colrctrl.hxx
	svx/inc/svx/dialogs.hrc
	svx/inc/svx/dlgctrl.hxx
	svx/inc/svx/dlgutil.hxx
	svx/inc/svx/drawitem.hxx
	svx/inc/svx/fontwork.hxx
	svx/inc/svx/galbrws.hxx
	svx/inc/svx/sdr/table/tablecontroller.hxx
	svx/inc/svx/svdmodel.hxx
	svx/inc/svx/svdstr.hrc
	svx/inc/svx/svxids.hrc
	svx/inc/svx/svxitems.hrc
	svx/inc/svx/xattr.hxx
	svx/inc/svx/xflgrit.hxx
	svx/inc/svx/xflhtit.hxx
	svx/inc/svx/xit.hxx
	svx/inc/svx/xlineit.hxx
	svx/inc/svx/xlndsit.hxx
	svx/inc/svx/xlnedit.hxx
	svx/inc/svx/xlnstit.hxx
	svx/inc/svx/xtable.hxx
	svx/sdi/svx.sdi
	svx/source/dialog/_bmpmask.cxx
	svx/source/dialog/dialcontrol.cxx
	svx/source/dialog/dlgctrl.cxx
	svx/source/dialog/dlgutil.cxx
	svx/source/dialog/fontwork.cxx
	svx/source/gallery2/galbrws.cxx
	svx/source/gallery2/galbrws1.cxx
	svx/source/gallery2/gallery1.cxx
	svx/source/items/drawitem.cxx
	svx/source/items/svxitems.src
	svx/source/sdr/attribute/sdrformtextattribute.cxx
	svx/source/sidebar/ColorPanel.hxx
	svx/source/sidebar/EmptyPanel.hrc
	svx/source/sidebar/EmptyPanel.hxx
	svx/source/sidebar/gallery/GalleryPanel.hxx
	svx/source/svdraw/svdedtv1.cxx
	svx/source/svdraw/svdmodel.cxx
	svx/source/svdraw/svdogrp.cxx
	svx/source/svdraw/svdstr.src
	svx/source/tbxctrls/tbcontrl.cxx
	svx/source/unodraw/XPropertyTable.cxx
	svx/source/unodraw/unoctabl.cxx
	svx/source/xoutdev/XPropertyEntry.cxx
	svx/source/xoutdev/xattr.cxx
	svx/source/xoutdev/xattr2.cxx
	svx/source/xoutdev/xtabbtmp.cxx
	svx/source/xoutdev/xtabcolr.cxx
	svx/source/xoutdev/xtabdash.cxx
	svx/source/xoutdev/xtabgrdt.cxx
	svx/source/xoutdev/xtabhtch.cxx
	svx/source/xoutdev/xtable.cxx
	svx/source/xoutdev/xtablend.cxx
	svx/util/svx.component
	sw/inc/cmdid.h
	sw/inc/docsh.hxx
	sw/inc/editsh.hxx
	sw/inc/helpid.h
	sw/inc/rcid.hrc
	sw/inc/swabstdlg.hxx
	sw/inc/swcommands.h
	sw/sdi/swriter.sdi
	sw/source/core/doc/docdesc.cxx
	sw/source/core/draw/drawdoc.cxx
	sw/source/ui/app/docsh2.cxx
	sw/source/ui/app/docshdrw.cxx
	sw/source/ui/app/docshini.cxx
	sw/source/ui/app/docst.cxx
	sw/source/ui/config/optpage.cxx
	sw/source/ui/dialog/swdlgfact.cxx
	sw/source/ui/dialog/swdlgfact.hxx
	sw/source/ui/fmtui/tmpdlg.cxx
	sw/source/ui/inc/tmpdlg.hxx
	sw/source/ui/misc/pggrid.cxx
	sw/source/ui/shells/annotsh.cxx
	sw/source/ui/shells/basesh.cxx
	sw/source/ui/shells/beziersh.cxx
	sw/source/ui/shells/drawdlg.cxx
	sw/source/ui/shells/drawsh.cxx
	sw/source/ui/shells/drformsh.cxx
	sw/source/ui/shells/drwbassh.cxx
	sw/source/ui/shells/drwtxtex.cxx
	sw/source/ui/shells/drwtxtsh.cxx
	sw/source/ui/shells/frmsh.cxx
	sw/source/ui/shells/grfsh.cxx
	sw/source/ui/shells/olesh.cxx
	sw/source/ui/shells/tabsh.cxx
	sw/source/ui/shells/textsh.cxx
	sw/source/ui/shells/textsh1.cxx
	sw/source/ui/shells/txtnum.cxx
	sw/source/ui/uiview/viewtab.cxx
	sw/source/ui/uno/unofreg.cxx
	sw/source/ui/utlui/navipi.cxx
	sw/util/sw.component
	vcl/inc/vcl/split.hxx
	vcl/inc/vcl/window.hxx
	vcl/inc/window.h
	vcl/source/window/split.cxx
	vcl/source/window/window.cxx
	vcl/source/window/window4.cxx

Change-Id: Idebaff59f9d60e4e93290cefefdda4c5a1e9215e

Resolves: #i122194# Adapted license text in propertypanel.hrc

then renamed it to ResourceDefinitions.hrc

(cherry picked from commit e952d1401c1adc41934118ba7f542611ef9da11b)

Conflicts:
	sfx2/Package_inc.mk
	sfx2/source/sidebar/SidebarChildWindow.cxx
	svx/source/sidebar/graphic/GraphicPropertyPanel.cxx
	svx/source/sidebar/line/LinePropertyPanel.cxx
	svx/source/sidebar/possize/PosSizePropertyPanel.cxx
	sw/source/ui/sidebar/PagePropertyPanel.src
	sw/source/ui/sidebar/WrapPropertyPanel.src

Change-Id: Ie009056a78ab108556717a501399c83b477b3548

Resolves: #i122194# finally I got the correct file name

Change-Id: If7a075af8c9a829f6f0a69f883c5c6d4ac97ba2a

More merge changes for optional sidebar:
     revert toolpanel removal, restore and re-enable task pane
     remove apparently un-used SidebarFactory module
     add extra visibility annotation to ItemReceiverUpdate
2013-05-20 11:33:10 +01:00

342 lines
11 KiB
C++

/* -*- 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 .
*/
#include "ConfigurationControllerResourceManager.hxx"
#include "ConfigurationControllerBroadcaster.hxx"
#include "ResourceFactoryManager.hxx"
#include "framework/FrameworkHelper.hxx"
#include <com/sun/star/lang/DisposedException.hpp>
#include <tools/diagnose_ex.h>
#include <algorithm>
#include <boost/bind.hpp>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::drawing::framework;
namespace sd { namespace framework {
//===== ConfigurationControllerResourceManager ================================
ConfigurationControllerResourceManager::ConfigurationControllerResourceManager (
const ::boost::shared_ptr<ResourceFactoryManager>& rpResourceFactoryContainer,
const ::boost::shared_ptr<ConfigurationControllerBroadcaster>& rpBroadcaster)
: maResourceMap(ResourceComparator()),
mpResourceFactoryContainer(rpResourceFactoryContainer),
mpBroadcaster(rpBroadcaster)
{
}
ConfigurationControllerResourceManager::~ConfigurationControllerResourceManager (void)
{
}
ConfigurationControllerResourceManager::ResourceDescriptor
ConfigurationControllerResourceManager::GetResource (
const Reference<XResourceId>& rxResourceId)
{
::osl::MutexGuard aGuard (maMutex);
ResourceMap::const_iterator iResource (maResourceMap.find(rxResourceId));
if (iResource != maResourceMap.end())
return iResource->second;
else
return ResourceDescriptor();
}
void ConfigurationControllerResourceManager::ActivateResources (
const ::std::vector<Reference<XResourceId> >& rResources,
const Reference<XConfiguration>& rxConfiguration)
{
::osl::MutexGuard aGuard (maMutex);
// Iterate in normal order over the resources that are to be
// activated so that resources on which others depend are activated
// beforet the depending resources are activated.
::std::for_each(
rResources.begin(),
rResources.end(),
::boost::bind(&ConfigurationControllerResourceManager::ActivateResource,
this, _1, rxConfiguration));
}
void ConfigurationControllerResourceManager::DeactivateResources (
const ::std::vector<Reference<XResourceId> >& rResources,
const Reference<XConfiguration>& rxConfiguration)
{
::osl::MutexGuard aGuard (maMutex);
// Iterate in reverese order over the resources that are to be
// deactivated so that resources on which others depend are deactivated
// only when the depending resources have already been deactivated.
::std::for_each(
rResources.rbegin(),
rResources.rend(),
::boost::bind(&ConfigurationControllerResourceManager::DeactivateResource,
this, _1, rxConfiguration));
}
/* In this method we do following steps.
1. Get the factory with which the resource will be created.
2. Create the resource.
3. Add the resource to the URL->Object map of the configuration
controller.
4. Add the resource id to the current configuration.
5. Notify listeners.
*/
void ConfigurationControllerResourceManager::ActivateResource (
const Reference<XResourceId>& rxResourceId,
const Reference<XConfiguration>& rxConfiguration)
{
if ( ! rxResourceId.is())
{
OSL_ASSERT(rxResourceId.is());
return;
}
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": activating resource " << OUStringToOString(
FrameworkHelper::ResourceIdToString(rxResourceId), RTL_TEXTENCODING_UTF8).getStr());
// 1. Get the factory.
const OUString sResourceURL (rxResourceId->getResourceURL());
Reference<XResourceFactory> xFactory (mpResourceFactoryContainer->GetFactory(sResourceURL));
if ( ! xFactory.is())
{
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": no factory found for " <<
OUStringToOString(sResourceURL, RTL_TEXTENCODING_UTF8).getStr());
return;
}
try
{
// 2. Create the resource.
Reference<XResource> xResource;
try
{
xResource = xFactory->createResource(rxResourceId);
}
catch (lang::DisposedException&)
{
// The factory is disposed and can be removed from the list
// of registered factories.
mpResourceFactoryContainer->RemoveFactoryForReference(xFactory);
}
catch (Exception& e)
{
(void)e;
}
if (xResource.is())
{
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": successfully created");
// 3. Add resource to URL->Object map.
AddResource(xResource, xFactory);
// 4. Add resource id to current configuration.
rxConfiguration->addResource(rxResourceId);
// 5. Notify the new resource to listeners of the ConfigurationController.
mpBroadcaster->NotifyListeners(
FrameworkHelper::msResourceActivationEvent,
rxResourceId,
xResource);
}
else
{
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": resource creation failed");
}
}
catch (RuntimeException&)
{
DBG_UNHANDLED_EXCEPTION();
}
}
/* In this method we do following steps.
1. Remove the resource from the URL->Object map of the configuration
controller.
2. Notify listeners that deactivation has started.
3. Remove the resource id from the current configuration.
4. Release the resource.
5. Notify listeners about that deactivation is completed.
*/
void ConfigurationControllerResourceManager::DeactivateResource (
const Reference<XResourceId>& rxResourceId,
const Reference<XConfiguration>& rxConfiguration)
{
if ( ! rxResourceId.is())
return;
#if OSL_DEBUG_LEVEL >= 1
bool bSuccess (false);
#endif
try
{
// 1. Remove resource from URL->Object map.
ResourceDescriptor aDescriptor (RemoveResource(rxResourceId));
if (aDescriptor.mxResource.is() && aDescriptor.mxResourceFactory.is())
{
// 2. Notifiy listeners that the resource is being deactivated.
mpBroadcaster->NotifyListeners(
FrameworkHelper::msResourceDeactivationEvent,
rxResourceId,
aDescriptor.mxResource);
// 3. Remove resource id from current configuration.
rxConfiguration->removeResource(rxResourceId);
// 4. Release the resource.
try
{
aDescriptor.mxResourceFactory->releaseResource(aDescriptor.mxResource);
}
catch (const lang::DisposedException& rException)
{
if ( ! rException.Context.is()
|| rException.Context == aDescriptor.mxResourceFactory)
{
// The factory is disposed and can be removed from the
// list of registered factories.
mpResourceFactoryContainer->RemoveFactoryForReference(
aDescriptor.mxResourceFactory);
}
}
#if OSL_DEBUG_LEVEL >= 1
bSuccess = true;
#endif
}
}
catch (RuntimeException&)
{
DBG_UNHANDLED_EXCEPTION();
}
// 5. Notifiy listeners that the resource is being deactivated.
mpBroadcaster->NotifyListeners(
FrameworkHelper::msResourceDeactivationEndEvent,
rxResourceId,
NULL);
#if OSL_DEBUG_LEVEL >= 1
if (bSuccess)
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": successfully deactivated " << OUStringToOString(
FrameworkHelper::ResourceIdToString(rxResourceId), RTL_TEXTENCODING_UTF8).getStr());
else
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": activating resource " << OUStringToOString(
FrameworkHelper::ResourceIdToString(rxResourceId), RTL_TEXTENCODING_UTF8).getStr()
<< " failed");
#endif
}
void ConfigurationControllerResourceManager::AddResource (
const Reference<XResource>& rxResource,
const Reference<XResourceFactory>& rxFactory)
{
if ( ! rxResource.is())
{
OSL_ASSERT(rxResource.is());
return;
}
// Add the resource to the resource container.
ResourceDescriptor aDescriptor;
aDescriptor.mxResource = rxResource;
aDescriptor.mxResourceFactory = rxFactory;
maResourceMap[rxResource->getResourceId()] = aDescriptor;
#if OSL_DEBUG_LEVEL >= 2
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": ConfigurationControllerResourceManager::AddResource(): added " <<
OUStringToOString(
FrameworkHelper::ResourceIdToString(rxResource->getResourceId()),
RTL_TEXTENCODING_UTF8).getStr() << " -> " << rxResource.get());
#endif
}
ConfigurationControllerResourceManager::ResourceDescriptor
ConfigurationControllerResourceManager::RemoveResource (
const Reference<XResourceId>& rxResourceId)
{
ResourceDescriptor aDescriptor;
ResourceMap::iterator iResource (maResourceMap.find(rxResourceId));
if (iResource != maResourceMap.end())
{
#if OSL_DEBUG_LEVEL >= 2
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": ConfigurationControllerResourceManager::RemoveResource(): removing " <<
OUStringToOString(
FrameworkHelper::ResourceIdToString(rxResourceId),
RTL_TEXTENCODING_UTF8).getStr() <<
" -> " << &iResource);
#endif
aDescriptor = iResource->second;
maResourceMap.erase(rxResourceId);
}
return aDescriptor;
}
//===== ConfigurationControllerResourceManager::ResourceComparator ============
bool ConfigurationControllerResourceManager::ResourceComparator::operator() (
const Reference<XResourceId>& rxId1,
const Reference<XResourceId>& rxId2) const
{
if (rxId1.is() && rxId2.is())
return rxId1->compareTo(rxId2)<0;
else if (rxId1.is())
return true;
else
return false;
}
} } // end of namespace sd::framework
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */