chart2/source/controller/accessibility/AccessibleChartElement.cxx |   23 
+------
 chart2/source/controller/accessibility/AccessibleChartElement.hxx |    3 
 chart2/source/controller/accessibility/AccessibleTextHelper.cxx   |   15 ----
 chart2/source/controller/inc/AccessibleTextHelper.hxx             |    9 +-
 chart2/source/controller/inc/ChartController.hxx                  |   32 
+++-------
 chart2/source/controller/main/ChartController.cxx                 |   32 
----------
 chart2/source/controller/main/ChartController_TextEdit.cxx        |   11 +--
 chart2/source/inc/servicenames.hxx                                |    4 -
 8 files changed, 28 insertions(+), 101 deletions(-)

New commits:
commit 21af3e5b5df02747691f08c453407d0abfc91242
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sat Sep 2 14:19:55 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sat Sep 2 21:14:18 2023 +0200

    use more concrete type in chart::AccessibleTextHelper
    
    Change-Id: I3ad20c37bb2009964cf20a1ee184b2674de82817
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156470
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/chart2/source/controller/accessibility/AccessibleChartElement.cxx 
b/chart2/source/controller/accessibility/AccessibleChartElement.cxx
index cca038b5be94..209d282c2c77 100644
--- a/chart2/source/controller/accessibility/AccessibleChartElement.cxx
+++ b/chart2/source/controller/accessibility/AccessibleChartElement.cxx
@@ -18,6 +18,7 @@
  */
 
 #include "AccessibleChartElement.hxx"
+#include <AccessibleTextHelper.hxx>
 #include <CharacterProperties.hxx>
 #include <ChartModel.hxx>
 #include <ChartController.hxx>
@@ -86,29 +87,15 @@ void AccessibleChartElement::InitTextEdit()
     if( ! m_xTextHelper.is())
     {
         // get hard reference
-        rtl::Reference< ::chart::ChartController > xSelSupp( 
GetInfo().m_xChartController );
-        if( xSelSupp.is())
-        {
-            m_xTextHelper.set(
-                xSelSupp->createInstance( CHART_ACCESSIBLE_TEXT_SERVICE_NAME 
), uno::UNO_QUERY );
-        }
+        rtl::Reference< ::chart::ChartController > xChartController( 
GetInfo().m_xChartController );
+        if( xChartController.is())
+            m_xTextHelper = xChartController->createAccessibleTextContext();
     }
 
     if( !m_xTextHelper.is())
         return;
 
-    try
-    {
-        Reference< lang::XInitialization > xInit( m_xTextHelper, 
uno::UNO_QUERY_THROW );
-        Sequence< uno::Any > aArgs{ uno::Any(GetInfo().m_aOID.getObjectCID()),
-                                    uno::Any(Reference< XAccessible >( this )),
-                                    uno::Any(Reference< awt::XWindow >( 
GetInfo().m_xWindow )) };
-        xInit->initialize( aArgs );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xTextHelper->initialize( GetInfo().m_aOID.getObjectCID(), this, 
GetInfo().m_xWindow );
 }
 
 //             Interfaces
diff --git a/chart2/source/controller/accessibility/AccessibleChartElement.hxx 
b/chart2/source/controller/accessibility/AccessibleChartElement.hxx
index 944aa5fa822a..283efed69d80 100644
--- a/chart2/source/controller/accessibility/AccessibleChartElement.hxx
+++ b/chart2/source/controller/accessibility/AccessibleChartElement.hxx
@@ -27,6 +27,7 @@ namespace com::sun::star::awt { class XFont; }
 
 namespace chart
 {
+class AccessibleTextHelper;
 
 /** Base class for all Chart Accessibility objects except the root node (see 
AccessibleChartView)
 
@@ -93,7 +94,7 @@ public:
 
 private:
     bool                m_bHasText;
-    css::uno::Reference< css::accessibility::XAccessibleContext >
+    rtl::Reference< ::chart::AccessibleTextHelper >
                         m_xTextHelper;
 
     void InitTextEdit();
diff --git a/chart2/source/controller/accessibility/AccessibleTextHelper.cxx 
b/chart2/source/controller/accessibility/AccessibleTextHelper.cxx
index 42cddcd36832..ed98cd296706 100644
--- a/chart2/source/controller/accessibility/AccessibleTextHelper.cxx
+++ b/chart2/source/controller/accessibility/AccessibleTextHelper.cxx
@@ -53,19 +53,10 @@ AccessibleTextHelper::~AccessibleTextHelper()
 {
 }
 
-// ____ XInitialization ____
-void SAL_CALL AccessibleTextHelper::initialize( const Sequence< uno::Any >& 
aArguments )
+void AccessibleTextHelper::initialize( const OUString& aCID,
+                                const Reference< XAccessible >& xEventSource,
+                                const Reference< awt::XWindow >& xWindow )
 {
-    OUString aCID;
-    Reference< XAccessible > xEventSource;
-    Reference< awt::XWindow > xWindow;
-
-    if( aArguments.getLength() >= 3 )
-    {
-        aArguments[0] >>= aCID;
-        aArguments[1] >>= xEventSource;
-        aArguments[2] >>= xWindow;
-    }
     OSL_ENSURE( !aCID.isEmpty(), "Empty CID" );
     OSL_ENSURE( xEventSource.is(), "Empty Event Source" );
     OSL_ENSURE( xWindow.is(), "Empty Window" );
diff --git a/chart2/source/controller/inc/AccessibleTextHelper.hxx 
b/chart2/source/controller/inc/AccessibleTextHelper.hxx
index b73a62b428cd..937af7da05cc 100644
--- a/chart2/source/controller/inc/AccessibleTextHelper.hxx
+++ b/chart2/source/controller/inc/AccessibleTextHelper.hxx
@@ -20,8 +20,8 @@
 
 #include <memory>
 #include <comphelper/compbase.hxx>
-#include <com/sun/star/lang/XInitialization.hpp>
 #include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
 
 // forward declaration of helper class from svx
 namespace accessibility
@@ -37,7 +37,6 @@ class DrawViewWrapper;
 namespace impl
 {
 typedef comphelper::WeakComponentImplHelper<
-        css::lang::XInitialization,
         css::accessibility::XAccessibleContext >
     AccessibleTextHelper_Base;
 }
@@ -49,7 +48,6 @@ public:
     explicit AccessibleTextHelper( DrawViewWrapper * pDrawViewWrapper );
     virtual ~AccessibleTextHelper() override;
 
-    // ____ XInitialization ____
     /** Must be called at least once for this helper class to work.
 
         mandatory parameter 0: type string. This is the CID that is used to 
find
@@ -62,8 +60,9 @@ public:
         mandatory parameter 2: type awt::XWindow.  The Window that shows the
             text currently.
      */
-    virtual void SAL_CALL initialize(
-        const css::uno::Sequence< css::uno::Any >& aArguments ) override;
+    void initialize(const OUString& aCID,
+                    const css::uno::Reference< css::accessibility::XAccessible 
>& xEventSource,
+                    const css::uno::Reference< css::awt::XWindow >& xWindow );
 
     // ____ XAccessibleContext ____
     virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
diff --git a/chart2/source/controller/inc/ChartController.hxx 
b/chart2/source/controller/inc/ChartController.hxx
index 8da5a4bba13e..9e72e09ddbd9 100644
--- a/chart2/source/controller/inc/ChartController.hxx
+++ b/chart2/source/controller/inc/ChartController.hxx
@@ -37,7 +37,6 @@
 #include <com/sun/star/frame/XController2.hpp>
 #include <com/sun/star/frame/XLayoutManagerListener.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 
 #include <memory>
 #include <string_view>
@@ -90,6 +89,7 @@ class ReferenceSizeProvider;
 class ViewElementListProvider;
 class Diagram;
 class AccessibleChartView;
+class AccessibleTextHelper;
 
 enum ChartDrawMode { CHARTDRAW_INSERT, CHARTDRAW_SELECT };
 
@@ -102,7 +102,6 @@ class ChartController final : public ::cppu::WeakImplHelper 
<
         ,css::util::XCloseListener         //(needed for communication with 
XModel)
         ,css::frame::XDispatch
         ,css::awt::XWindow //this is the Window Controller part of this 
Controller, that will be given to a Frame via setComponent
-        ,css::lang::XMultiServiceFactory
         ,css::util::XModifyListener
         ,css::util::XModeChangeListener
         ,css::frame::XLayoutManagerListener
@@ -263,16 +262,6 @@ public:
     virtual void SAL_CALL
         removePaintListener( const css::uno::Reference< 
css::awt::XPaintListener >& xListener ) override;
 
-    // css::lang XMultiServiceFactory
-    virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
-        createInstance( const OUString& aServiceSpecifier ) override;
-    virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
-        createInstanceWithArguments( const OUString& ServiceSpecifier,
-                                     const css::uno::Sequence<
-                                         css::uno::Any >& Arguments ) override;
-    virtual css::uno::Sequence< OUString > SAL_CALL
-        getAvailableServiceNames() override;
-
     // css::util::XModifyListener
     virtual void SAL_CALL modified(
         const css::lang::EventObject& aEvent ) override;
@@ -319,6 +308,15 @@ public:
 
     css::uno::Reference< css::accessibility::XAccessible > CreateAccessible();
 
+    /** Creates a helper accessibility class that must be initialized via 
initialize().  For
+        parameters see
+
+        The returned object should not be used directly.  Instead a proxy 
object
+        should use this helper to retrieve its children and add them to its own
+        children.
+     */
+    rtl::Reference< ::chart::AccessibleTextHelper > 
createAccessibleTextContext();
+
     static bool isObjectDeleteable( const css::uno::Any& rSelection );
 
     void setDrawMode( ChartDrawMode eMode ) { m_eDrawMode = eMode; }
@@ -541,16 +539,6 @@ private:
 
     static const o3tl::sorted_vector< OUString >& impl_getAvailableCommands();
 
-    /** Creates a helper accessibility class that must be initialized via 
XInitialization.  For
-        parameters see
-
-        The returned object should not be used directly.  Instead a proxy 
object
-        should use this helper to retrieve its children and add them to its own
-        children.
-     */
-    css::uno::Reference< css::accessibility::XAccessibleContext >
-        impl_createAccessibleTextContext();
-
     void impl_PasteGraphic( css::uno::Reference< css::graphic::XGraphic > 
const & xGraphic,
                             const ::Point & aPosition );
     void impl_PasteShapes( SdrModel* pModel );
diff --git a/chart2/source/controller/main/ChartController.cxx 
b/chart2/source/controller/main/ChartController.cxx
index 2a233aa5f851..7e33f4b0ccef 100644
--- a/chart2/source/controller/main/ChartController.cxx
+++ b/chart2/source/controller/main/ChartController.cxx
@@ -1424,38 +1424,6 @@ void ChartController::executeDispatch_MoveSeries( bool 
bForward )
     }
 }
 
-// ____ XMultiServiceFactory ____
-uno::Reference< uno::XInterface > SAL_CALL
-    ChartController::createInstance( const OUString& aServiceSpecifier )
-{
-    uno::Reference< uno::XInterface > xResult;
-
-#if !ENABLE_WASM_STRIP_ACCESSIBILITY
-    if( aServiceSpecifier == CHART_ACCESSIBLE_TEXT_SERVICE_NAME )
-        xResult.set( impl_createAccessibleTextContext());
-#else
-    (void)aServiceSpecifier;
-#endif
-
-    return xResult;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL
-    ChartController::createInstanceWithArguments(
-        const OUString& ServiceSpecifier,
-        const uno::Sequence< uno::Any >& /* Arguments */ )
-{
-    // ignore Arguments
-    return createInstance( ServiceSpecifier );
-}
-
-uno::Sequence< OUString > SAL_CALL
-    ChartController::getAvailableServiceNames()
-{
-    uno::Sequence< OUString > aServiceNames { 
CHART_ACCESSIBLE_TEXT_SERVICE_NAME };
-    return aServiceNames;
-}
-
 // ____ XModifyListener ____
 void SAL_CALL ChartController::modified(
     const lang::EventObject& /* aEvent */ )
diff --git a/chart2/source/controller/main/ChartController_TextEdit.cxx 
b/chart2/source/controller/main/ChartController_TextEdit.cxx
index fbc8df4ed6b0..f2d21779ba69 100644
--- a/chart2/source/controller/main/ChartController_TextEdit.cxx
+++ b/chart2/source/controller/main/ChartController_TextEdit.cxx
@@ -215,16 +215,13 @@ void 
ChartController::executeDispatch_InsertSpecialCharacter()
     pOutlinerView->ShowCursor();
 }
 
-uno::Reference< css::accessibility::XAccessibleContext >
-    ChartController::impl_createAccessibleTextContext()
+rtl::Reference< ::chart::AccessibleTextHelper >
+    ChartController::createAccessibleTextContext()
 {
 #if !ENABLE_WASM_STRIP_ACCESSIBILITY
-    uno::Reference< css::accessibility::XAccessibleContext > xResult(
-        new AccessibleTextHelper( m_pDrawViewWrapper.get() ));
-
-    return xResult;
+    return new AccessibleTextHelper( m_pDrawViewWrapper.get() );
 #else
-    return uno::Reference< css::accessibility::XAccessibleContext >();
+    return {};
 #endif
 }
 
diff --git a/chart2/source/inc/servicenames.hxx 
b/chart2/source/inc/servicenames.hxx
index b9f0bb554458..48fbbffd370d 100644
--- a/chart2/source/inc/servicenames.hxx
+++ b/chart2/source/inc/servicenames.hxx
@@ -50,8 +50,4 @@ inline constexpr OUStringLiteral 
CHART_CHARTAPIWRAPPER_IMPLEMENTATION_NAME
 inline constexpr OUStringLiteral CHART_CHARTAPIWRAPPER_SERVICE_NAME
     = u"com.sun.star.chart2.ChartDocumentWrapper";
 
-// accessibility
-inline constexpr OUStringLiteral CHART_ACCESSIBLE_TEXT_SERVICE_NAME
-    = u"com.sun.star.accessibility.AccessibleTextComponent";
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Reply via email to