summaryrefslogtreecommitdiff
path: root/framework/source/uifactory
diff options
context:
space:
mode:
authorAriel Constenla-Haile <arielch@apache.org>2013-04-26 21:55:57 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-05-21 16:29:33 +0100
commit8b050d1e91a6623fb2770421e564a74d6259d816 (patch)
treecd2ee3f0c91955bb45cc53c92767b1e5aabc20e1 /framework/source/uifactory
parentf4bccae9eb48d36de9edd1fa5551e5e8de85b17e (diff)
UI Controller Factory fixes
- "ModuleName" --> "ModuleIdentifier": the IDL definition for css::frame::PopupMenuControllerFactory and css::frame::StatusbarControllerFactory tells to use a property named "ModuleIdentifier", but in the code it is named "ModuleName" - Undocumented css::frame::ToolbarControllerFactory - Fix service name of ToolbarControllerFactory (ToolbarControllerFactory instead of ToolBarControllerFactory) - Convert the three service factories to new style, and use these new-style services in the source code - Implement multiple inheritance: added new css::frame::XUIControllerFactory - Added a (true) base class and implemented the three factories in a single file (cherry picked from commit acc7fed28f54f836b0923180431a0c180f91e98c) Conflicts: framework/inc/pch/precompiled_framework.hxx framework/inc/uielement/toolbarmanager.hxx framework/inc/uifactory/popupmenucontrollerfactory.hxx framework/inc/uifactory/statusbarcontrollerfactory.hxx framework/inc/uifactory/uicontrollerfactory.hxx framework/source/uielement/addonstoolbarmanager.cxx framework/source/uielement/menubarmanager.cxx framework/source/uielement/popupmenucontroller.cxx framework/source/uielement/statusbarmanager.cxx framework/source/uielement/toolbarmanager.cxx framework/source/uifactory/popupmenucontrollerfactory.cxx framework/source/uifactory/statusbarcontrollerfactory.cxx framework/source/uifactory/uicontrollerfactory.cxx framework/source/unotypes/fwk.xml offapi/com/sun/star/frame/PopupMenuControllerFactory.idl offapi/com/sun/star/frame/StatusbarControllerFactory.idl offapi/com/sun/star/frame/makefile.mk svtools/source/uno/toolboxcontroller.cxx Change-Id: Ia8580539badf650a84bc6e57a6b832071e011f0a
Diffstat (limited to 'framework/source/uifactory')
-rw-r--r--framework/source/uifactory/factoryconfiguration.cxx1
-rw-r--r--framework/source/uifactory/popupmenucontrollerfactory.cxx73
-rw-r--r--framework/source/uifactory/statusbarcontrollerfactory.cxx71
-rw-r--r--framework/source/uifactory/toolbarcontrollerfactory.cxx242
4 files changed, 0 insertions, 387 deletions
diff --git a/framework/source/uifactory/factoryconfiguration.cxx b/framework/source/uifactory/factoryconfiguration.cxx
index 759de8d5c68e..73fa872259ed 100644
--- a/framework/source/uifactory/factoryconfiguration.cxx
+++ b/framework/source/uifactory/factoryconfiguration.cxx
@@ -42,7 +42,6 @@ using namespace com::sun::star::uno;
using namespace com::sun::star::lang;
using namespace com::sun::star::beans;
using namespace com::sun::star::container;
-using namespace ::com::sun::star::frame;
//_________________________________________________________________________________________________________________
// Namespace
diff --git a/framework/source/uifactory/popupmenucontrollerfactory.cxx b/framework/source/uifactory/popupmenucontrollerfactory.cxx
deleted file mode 100644
index 2b47fd3d1951..000000000000
--- a/framework/source/uifactory/popupmenucontrollerfactory.cxx
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- 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 "uifactory/popupmenucontrollerfactory.hxx"
-#include <threadhelp/resetableguard.hxx>
-#include "services.h"
-#include "uifactory/factoryconfiguration.hxx"
-
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/container/XContainer.hpp>
-
-#include <rtl/ustrbuf.hxx>
-#include <cppuhelper/weak.hxx>
-#include <rtl/logfile.hxx>
-
-//_________________________________________________________________________________________________________________
-// Defines
-//_________________________________________________________________________________________________________________
-
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::container;
-using namespace ::com::sun::star::frame;
-
-//_________________________________________________________________________________________________________________
-// Namespace
-//_________________________________________________________________________________________________________________
-
-namespace framework
-{
-
-//*****************************************************************************************************************
-// XInterface, XTypeProvider, XServiceInfo
-//*****************************************************************************************************************
-DEFINE_XSERVICEINFO_ONEINSTANCESERVICE ( PopupMenuControllerFactory ,
- ::cppu::OWeakObject ,
- SERVICENAME_POPUPMENUCONTROLLERFACTORY ,
- IMPLEMENTATIONNAME_POPUPMENUCONTROLLERFACTORY
- )
-
-DEFINE_INIT_SERVICE ( PopupMenuControllerFactory, {} )
-
-PopupMenuControllerFactory::PopupMenuControllerFactory( const Reference< XMultiServiceFactory >& xServiceManager ) :
- ToolbarControllerFactory(xServiceManager,true)
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen@sun.com", "PopupMenuControllerFactory::PopupMenuControllerFactory" );
- m_pConfigAccess = new ConfigurationAccess_ControllerFactory( comphelper::getComponentContext(m_xServiceManager), OUString( "/org.openoffice.Office.UI.Controller/Registered/PopupMenu" ) );
- m_pConfigAccess->acquire();
-}
-
-} // namespace framework
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/uifactory/statusbarcontrollerfactory.cxx b/framework/source/uifactory/statusbarcontrollerfactory.cxx
deleted file mode 100644
index 3496d170577e..000000000000
--- a/framework/source/uifactory/statusbarcontrollerfactory.cxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- 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 "uifactory/statusbarcontrollerfactory.hxx"
-#include "uifactory/factoryconfiguration.hxx"
-#include <threadhelp/resetableguard.hxx>
-#include "services.h"
-
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/container/XContainer.hpp>
-
-#include <rtl/ustrbuf.hxx>
-#include <cppuhelper/weak.hxx>
-
-//_________________________________________________________________________________________________________________
-// Defines
-//_________________________________________________________________________________________________________________
-
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::container;
-using namespace ::com::sun::star::frame;
-
-//_________________________________________________________________________________________________________________
-// Namespace
-//_________________________________________________________________________________________________________________
-
-namespace framework
-{
-//*****************************************************************************************************************
-// XInterface, XTypeProvider, XServiceInfo
-//*****************************************************************************************************************
-DEFINE_XSERVICEINFO_ONEINSTANCESERVICE ( StatusbarControllerFactory ,
- ::cppu::OWeakObject ,
- SERVICENAME_STATUSBARCONTROLLERFACTORY ,
- IMPLEMENTATIONNAME_STATUSBARCONTROLLERFACTORY
- )
-
-DEFINE_INIT_SERVICE ( StatusbarControllerFactory, {} )
-
-StatusbarControllerFactory::StatusbarControllerFactory( const Reference< XMultiServiceFactory >& xServiceManager ) :
- ToolbarControllerFactory(xServiceManager,true)
-{
- m_pConfigAccess = new ConfigurationAccess_ControllerFactory( comphelper::getComponentContext(m_xServiceManager), OUString( "/org.openoffice.Office.UI.Controller/Registered/StatusBar" ),true );
- m_pConfigAccess->acquire();
-}
-
-
-} // namespace framework
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/uifactory/toolbarcontrollerfactory.cxx b/framework/source/uifactory/toolbarcontrollerfactory.cxx
deleted file mode 100644
index 592b89c1f07e..000000000000
--- a/framework/source/uifactory/toolbarcontrollerfactory.cxx
+++ /dev/null
@@ -1,242 +0,0 @@
-/* -*- 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 "uifactory/toolbarcontrollerfactory.hxx"
-#include "uifactory/factoryconfiguration.hxx"
-#include <threadhelp/resetableguard.hxx>
-#include "services.h"
-
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/container/XContainer.hpp>
-
-#include <rtl/ustrbuf.hxx>
-#include <cppuhelper/weak.hxx>
-
-//_________________________________________________________________________________________________________________
-// Defines
-//_________________________________________________________________________________________________________________
-
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::container;
-using namespace ::com::sun::star::frame;
-
-//_________________________________________________________________________________________________________________
-// Namespace
-//_________________________________________________________________________________________________________________
-
-namespace framework
-{
-
-//*****************************************************************************************************************
-// XInterface, XTypeProvider, XServiceInfo
-//*****************************************************************************************************************
-DEFINE_XSERVICEINFO_ONEINSTANCESERVICE ( ToolbarControllerFactory ,
- ::cppu::OWeakObject ,
- SERVICENAME_TOOLBARCONTROLLERFACTORY ,
- IMPLEMENTATIONNAME_TOOLBARCONTROLLERFACTORY
- )
-
-DEFINE_INIT_SERVICE ( ToolbarControllerFactory, {} )
-
-ToolbarControllerFactory::ToolbarControllerFactory( const Reference< XMultiServiceFactory >& xServiceManager ) :
- ThreadHelpBase(),
- m_bConfigRead( sal_False ),
- m_xServiceManager( xServiceManager )
-{
- m_pConfigAccess = new ConfigurationAccess_ControllerFactory( comphelper::getComponentContext(m_xServiceManager), OUString( "/org.openoffice.Office.UI.Controller/Registered/ToolBar" ) );
- m_pConfigAccess->acquire();
-}
-
-ToolbarControllerFactory::ToolbarControllerFactory( const Reference< XMultiServiceFactory >& xServiceManager,bool ) :
- ThreadHelpBase(),
- m_bConfigRead( sal_False ),
- m_xServiceManager( xServiceManager )
-{
- m_pConfigAccess = NULL;
-}
-
-ToolbarControllerFactory::~ToolbarControllerFactory()
-{
- ResetableGuard aLock( m_aLock );
-
- // reduce reference count
- m_pConfigAccess->release();
-}
-
-// XMultiComponentFactory
-Reference< XInterface > SAL_CALL ToolbarControllerFactory::createInstanceWithContext(
- const OUString& aServiceSpecifier,
- const Reference< XComponentContext >& )
-throw (Exception, RuntimeException)
-{
- // SAFE
- ResetableGuard aLock( m_aLock );
-
- if ( !m_bConfigRead )
- {
- m_bConfigRead = sal_True;
- m_pConfigAccess->readConfigurationData();
- }
-
- OUString aServiceName = m_pConfigAccess->getServiceFromCommandModule( aServiceSpecifier, OUString() );
- if ( !aServiceName.isEmpty() )
- return m_xServiceManager->createInstance( aServiceName );
- else
- return Reference< XInterface >();
- // SAFE
-}
-
-Reference< XInterface > SAL_CALL ToolbarControllerFactory::createInstanceWithArgumentsAndContext(
- const OUString& ServiceSpecifier,
- const Sequence< Any >& Arguments,
- const Reference< XComponentContext >& )
-throw (Exception, RuntimeException)
-{
- const OUString aPropModuleName( "ModuleName" );
- const OUString aPropValueName( "Value" );
-
- OUString aPropName;
- PropertyValue aPropValue;
-
- // Retrieve the optional module name form the Arguments sequence. It is used as a part of
- // the hash map key to support different controller implementation for the same URL but different
- // module!!
- for ( int i = 0; i < Arguments.getLength(); i++ )
- {
- if (( Arguments[i] >>= aPropValue ) && ( aPropValue.Name.equals( aPropModuleName )))
- {
- aPropValue.Value >>= aPropName;
- break;
- }
- }
-
- Sequence< Any > aNewArgs( Arguments );
-
- sal_Int32 nAppendIndex = aNewArgs.getLength();
- bool bHasValue = m_pConfigAccess->hasValue();
- aNewArgs.realloc( aNewArgs.getLength() + (bHasValue ? 2 : 1) );
-
- // Append the command URL to the Arguments sequence so that one controller can be
- // used for more than one command URL.
- aPropValue.Name = OUString( "CommandURL" );
- aPropValue.Value <<= ServiceSpecifier;
- aNewArgs[nAppendIndex] <<= aPropValue;
-
- if ( bHasValue )
- {
- // Append the optional value argument. It's an empty string if no additional info
- // is provided to the controller.
- OUString aValue = m_pConfigAccess->getValueFromCommandModule( ServiceSpecifier, aPropName );
- aPropValue.Name = aPropValueName;
- aPropValue.Value <<= aValue;
- aNewArgs[nAppendIndex+1] <<= aPropValue;
- }
-
- {
- // SAFE
- ResetableGuard aLock( m_aLock );
-
- if ( !m_bConfigRead )
- {
- m_bConfigRead = sal_True;
- m_pConfigAccess->readConfigurationData();
- }
-
- OUString aServiceName = m_pConfigAccess->getServiceFromCommandModule( ServiceSpecifier, aPropName );
- Reference< XMultiServiceFactory > xServiceManager( m_xServiceManager );
-
- aLock.unlock();
- // SAFE
-
-
- if ( !aServiceName.isEmpty() )
- return xServiceManager->createInstanceWithArguments( aServiceName, aNewArgs );
- else
- return Reference< XInterface >();
- }
-}
-
-Sequence< OUString > SAL_CALL ToolbarControllerFactory::getAvailableServiceNames()
-throw (RuntimeException)
-{
- return Sequence< OUString >();
-}
-
-// XUIControllerRegistration
-sal_Bool SAL_CALL ToolbarControllerFactory::hasController(
- const OUString& aCommandURL,
- const OUString& aModuleName )
-throw (::com::sun::star::uno::RuntimeException)
-{
- ResetableGuard aLock( m_aLock );
-
- if ( !m_bConfigRead )
- {
- m_bConfigRead = sal_True;
- m_pConfigAccess->readConfigurationData();
- }
-
- return ( !m_pConfigAccess->getServiceFromCommandModule( aCommandURL, aModuleName ).isEmpty() );
-}
-
-void SAL_CALL ToolbarControllerFactory::registerController(
- const OUString& aCommandURL,
- const OUString& aModuleName,
- const OUString& aControllerImplementationName )
-throw (RuntimeException)
-{
- // SAFE
- ResetableGuard aLock( m_aLock );
-
- if ( !m_bConfigRead )
- {
- m_bConfigRead = sal_True;
- m_pConfigAccess->readConfigurationData();
- }
-
- m_pConfigAccess->addServiceToCommandModule( aCommandURL, aModuleName, aControllerImplementationName );
- // SAFE
-}
-
-void SAL_CALL ToolbarControllerFactory::deregisterController(
- const OUString& aCommandURL,
- const OUString& aModuleName )
-throw (RuntimeException)
-{
- // SAFE
- ResetableGuard aLock( m_aLock );
-
- if ( !m_bConfigRead )
- {
- m_bConfigRead = sal_True;
- m_pConfigAccess->readConfigurationData();
- }
-
- m_pConfigAccess->removeServiceFromCommandModule( aCommandURL, aModuleName );
- // SAFE
-}
-
-} // namespace framework
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */