Author: leiw
Date: Thu Oct 11 03:39:30 2012
New Revision: 1396896

URL: http://svn.apache.org/viewvc?rev=1396896&view=rev
Log:
#i121178 Chart name in Excel is different with the name in AOO 

          Patch by: Clarence GUO
          Review by: Wang Lei

Modified:
    incubator/ooo/trunk/main/sc/inc/chartuno.hxx
    incubator/ooo/trunk/main/sc/source/ui/unoobj/chartuno.cxx
    incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.cxx
    incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.hxx
    incubator/ooo/trunk/main/udkapi/com/sun/star/container/XNamed.idl

Modified: incubator/ooo/trunk/main/sc/inc/chartuno.hxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/inc/chartuno.hxx?rev=1396896&r1=1396895&r2=1396896&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/inc/chartuno.hxx (original)
+++ incubator/ooo/trunk/main/sc/inc/chartuno.hxx Thu Oct 11 03:39:30 2012
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 #ifndef SC_CHARTUNO_HXX
 #define SC_CHARTUNO_HXX
 
@@ -36,7 +34,7 @@
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/container/XEnumerationAccess.hpp>
 #include <com/sun/star/container/XIndexAccess.hpp>
-#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/container/XNamedEx.hpp>
 #include <cppuhelper/compbase4.hxx>
 #include <cppuhelper/implbase4.hxx>
 
@@ -115,7 +113,7 @@ public:
 typedef ::cppu::WeakComponentImplHelper4<
     ::com::sun::star::table::XTableChart,
     ::com::sun::star::document::XEmbeddedObjectSupplier,
-    ::com::sun::star::container::XNamed,
+    ::com::sun::star::container::XNamedEx,  // #i121178#: support displaying 
name
     ::com::sun::star::lang::XServiceInfo > ScChartObj_Base;
 
 typedef ::comphelper::OPropertyContainer ScChartObj_PBase;
@@ -131,6 +129,7 @@ private:
        ScDocShell*                             pDocShell;
        SCTAB                                   nTab;                   // 
Charts sind pro Sheet
        String                                  aChartName;
+       String                                  aObjectName;    // #i121178#: 
the OLE object's name(displaying name)
 
        void    Update_Impl( const ScRangeListRef& rRanges, bool bColHeaders, 
bool bRowHeaders );
        void    GetData_Impl( ScRangeListRef& rRanges, bool& rColHeaders, bool& 
rRowHeaders ) const;
@@ -183,6 +182,11 @@ public:
        virtual void SAL_CALL   setName( const ::rtl::OUString& aName )
                                                                
throw(::com::sun::star::uno::RuntimeException);
 
+                                                       // XNamedEx
+       virtual ::rtl::OUString SAL_CALL getDisplayName() 
throw(::com::sun::star::uno::RuntimeException);
+       virtual void SAL_CALL   setDisplayName( const ::rtl::OUString& aName )
+                                                               
throw(::com::sun::star::uno::RuntimeException);
+
                                                        // XServiceInfo
        virtual ::rtl::OUString SAL_CALL getImplementationName()
                                                                
throw(::com::sun::star::uno::RuntimeException);

Modified: incubator/ooo/trunk/main/sc/source/ui/unoobj/chartuno.cxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/ui/unoobj/chartuno.cxx?rev=1396896&r1=1396895&r2=1396896&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/ui/unoobj/chartuno.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/ui/unoobj/chartuno.cxx Thu Oct 11 
03:39:30 2012
@@ -19,12 +19,9 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_sc.hxx"
 
-
 #include <com/sun/star/embed/Aspects.hpp>
 #include <com/sun/star/awt/Size.hpp>
 #include <com/sun/star/beans/PropertyAttribute.hpp>
@@ -460,8 +457,10 @@ ScChartObj::ScChartObj(ScDocShell* pDocS
        ,nTab( nT )
        ,aChartName( rN )
 {
-       pDocShell->GetDocument()->AddUnoObject(*this);
-
+    pDocShell->GetDocument()->AddUnoObject(*this);
+    SdrOle2Obj* pObject = lcl_FindChartObj( pDocShell, nTab, aChartName );
+    if ( pObject && svt::EmbeddedObjectRef::TryRunningState( 
pObject->GetObjRef() ) )
+        aObjectName = pObject->GetName();   // #i121178#: keep the OLE 
object's name
     uno::Sequence< table::CellRangeAddress > aInitialPropValue;
     registerPropertyNoMember( ::rtl::OUString::createFromAscii( 
"RelatedCellRanges" ),
         PROP_HANDLE_RELATED_CELLRANGES, beans::PropertyAttribute::MAYBEVOID,
@@ -801,6 +800,20 @@ void SAL_CALL ScChartObj::setName( const
        throw uno::RuntimeException();          // name cannot be changed
 }
 
+// XNamedEx
+
+rtl::OUString SAL_CALL ScChartObj::getDisplayName() 
throw(uno::RuntimeException)
+{
+       ScUnoGuard aGuard;
+       return aObjectName;
+}
+
+void SAL_CALL ScChartObj::setDisplayName( const rtl::OUString& aName ) 
throw(uno::RuntimeException)
+{
+       ScUnoGuard aGuard;
+       aObjectName = aName;
+}
+
 // XPropertySet
 
 uno::Reference< beans::XPropertySetInfo > ScChartObj::getPropertySetInfo() 
throw (uno::RuntimeException)

Modified: incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.cxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.cxx?rev=1396896&r1=1396895&r2=1396896&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.cxx Thu Oct 11 
03:39:30 2012
@@ -19,7 +19,6 @@
  * 
  *************************************************************/
 
-
 #include "vbachart.hxx"
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/document/XEmbeddedObjectSupplier.hpp>
@@ -37,13 +36,15 @@ const rtl::OUString PERSIST_NAME( RTL_CO
 
 ScVbaChartObject::ScVbaChartObject( const css::uno::Reference< 
ov::XHelperInterface >& _xParent, const css::uno::Reference< 
css::uno::XComponentContext >& _xContext, const css::uno::Reference< 
css::table::XTableChart >& _xTableChart, const css::uno::Reference< 
css::drawing::XDrawPageSupplier >& _xDrawPageSupplier ) : ChartObjectImpl_BASE( 
_xParent, _xContext ), xTableChart( _xTableChart ), xDrawPageSupplier( 
_xDrawPageSupplier )
 {
-        xDrawPage = xDrawPageSupplier->getDrawPage();        
-        xEmbeddedObjectSupplier.set( xTableChart, uno::UNO_QUERY_THROW );
-        xNamed.set( xTableChart, uno::UNO_QUERY_THROW );
-        sPersistName = getPersistName();
-        xShape = setShape();
-        setName(sPersistName);
-        oShapeHelper.reset(new ShapeHelper(xShape));
+    xDrawPage = xDrawPageSupplier->getDrawPage();        
+    xEmbeddedObjectSupplier.set( xTableChart, uno::UNO_QUERY_THROW );
+    xNamed.set( xTableChart, uno::UNO_QUERY_THROW );
+    sPersistName = getPersistName();
+    xShape = setShape();
+// #i121178#: don't set the persist name to the object but the OLE object's 
name(displaying name)
+//    setName(sPersistName);
+    setName(xNamed->getDisplayName());
+    oShapeHelper.reset(new ShapeHelper(xShape));
 }
 
 rtl::OUString ScVbaChartObject::getPersistName()
@@ -88,7 +89,6 @@ ScVbaChartObject::setName( const rtl::OU
        xNamedShape->setName(sName);
 }
 
-
 ::rtl::OUString SAL_CALL 
 ScVbaChartObject::getName() throw (css::uno::RuntimeException)
 {

Modified: incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.hxx
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.hxx?rev=1396896&r1=1396895&r2=1396896&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.hxx (original)
+++ incubator/ooo/trunk/main/sc/source/ui/vba/vbachartobject.hxx Thu Oct 11 
03:39:30 2012
@@ -19,14 +19,13 @@
  * 
  *************************************************************/
 
-
 #ifndef SC_VBA_CHARTOBJECT_HXX
 #define SC_VBA_CHARTOBJECT_HXX
 #include <cppuhelper/implbase1.hxx>
 #include <com/sun/star/uno/XComponentContext.hpp>
 #include <com/sun/star/table/XTableChart.hpp>
 #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
-#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/container/XNamedEx.hpp>
 #include <com/sun/star/document/XEmbeddedObjectSupplier.hpp>
 #include <ooo/vba/excel/XChartObject.hpp>
 #include <vbahelper/vbahelperinterface.hxx>
@@ -36,14 +35,13 @@ typedef InheritedHelperInterfaceImpl1<ov
 
 class ScVbaChartObject : public ChartObjectImpl_BASE
 {              
-
        css::uno::Reference< css::table::XTableChart  > xTableChart;
        css::uno::Reference< css::document::XEmbeddedObjectSupplier > 
xEmbeddedObjectSupplier;
        css::uno::Reference< css::beans::XPropertySet > xPropertySet;
        css::uno::Reference< css::drawing::XDrawPageSupplier > 
xDrawPageSupplier;
        css::uno::Reference< css::drawing::XDrawPage > xDrawPage;
        css::uno::Reference< css::drawing::XShape > xShape;
-       css::uno::Reference< css::container::XNamed > xNamed;
+       css::uno::Reference< css::container::XNamedEx > xNamed;
        rtl::OUString sPersistName;
        std::auto_ptr<ov::ShapeHelper> oShapeHelper;
        css::uno::Reference< css::container::XNamed > xNamedShape;

Modified: incubator/ooo/trunk/main/udkapi/com/sun/star/container/XNamed.idl
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/udkapi/com/sun/star/container/XNamed.idl?rev=1396896&r1=1396895&r2=1396896&view=diff
==============================================================================
--- incubator/ooo/trunk/main/udkapi/com/sun/star/container/XNamed.idl (original)
+++ incubator/ooo/trunk/main/udkapi/com/sun/star/container/XNamed.idl Thu Oct 
11 03:39:30 2012
@@ -56,6 +56,27 @@ published interface XNamed: com::sun::st
  
 
//============================================================================= 
  
+/** specifies the display name of the object.
+       
+       <p>The name is generally unique in the container of the object.</p>
+ */
+published interface XNamedEx: XNamed
+{ 
+       
//------------------------------------------------------------------------- 
+        
+       /** @returns 
+               the display name of the object.
+        */
+       string getDisplayName(); 
+ 
+       
//------------------------------------------------------------------------- 
+        
+       /** sets the display name of the object.
+        */
+       [oneway] void setDisplayName( [in] string aName ); 
+ 
+}; 
+ 
 }; }; }; };  
  
 #endif 


Reply via email to