Tag: cws_dev300_dba30d
User: fs      
Date: 2008-06-01 21:02:36+0000
Modified:
   dba/dbaccess/source/ui/app/AppController.cxx
   dba/dbaccess/source/ui/app/AppController.hxx
   dba/dbaccess/source/ui/app/AppControllerGen.cxx
   dba/dbaccess/source/ui/app/AppDetailPageHelper.cxx
   dba/dbaccess/source/ui/app/AppDetailPageHelper.hxx
   dba/dbaccess/source/ui/app/AppDetailView.cxx
   dba/dbaccess/source/ui/app/AppDetailView.hxx
   dba/dbaccess/source/ui/app/AppIconControl.cxx
   dba/dbaccess/source/ui/app/AppSwapWindow.cxx
   dba/dbaccess/source/ui/app/AppView.cxx
   dba/dbaccess/source/ui/app/AppView.hxx

Log:
 #i80943# more preparations for context menu interception, including some 
re-factoring

File Changes:

Directory: /dba/dbaccess/source/ui/app/
=======================================

File [changed]: AppController.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppController.cxx?r1=1.60.10.2&r2=1.60.10.3
Delta lines:  +100 -14
----------------------
--- AppController.cxx   2008-05-29 11:36:13+0000        1.60.10.2
+++ AppController.cxx   2008-06-01 21:02:31+0000        1.60.10.3
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppController.cxx,v $
- * $Revision: 1.60.10.2 $
+ * $Revision: 1.60.10.3 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -445,7 +445,7 @@
 //--------------------------------------------------------------------
 sal_Bool OApplicationController::Construct(Window* _pParent)
 {
-       m_pView = new OApplicationView( _pParent, getORB(), *this, this, this, 
this, this, this, m_ePreviewMode );
+       m_pView = new OApplicationView( _pParent, getORB(), *this, 
m_ePreviewMode );
        m_pView->SetUniqueId(UID_APP_VIEW);
 
        // late construction
@@ -997,6 +997,13 @@
 {
        ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
        ::osl::MutexGuard aGuard(m_aMutex);
+
+    if ( isUserDefinedFeature( _nId ) )
+    {
+        OApplicationController_CBASE::Execute( _nId, aArgs );
+        return;
+    }
+
        if ( !getContainer() || m_bReadOnly )
                return; // return without execution
 
@@ -1501,13 +1508,7 @@
 {
        return static_cast< OApplicationView* >( getView() );
 }
-// 
-----------------------------------------------------------------------------
-void OApplicationController::onCreationClick(const ::rtl::OUString& _sCommand)
-{
-       URL aCommand;
-       aCommand.Complete = _sCommand;
-       executeChecked(aCommand,Sequence<PropertyValue>());
-}
+
 // 
-----------------------------------------------------------------------------
 // ::com::sun::star::container::XContainerListener
 void SAL_CALL OApplicationController::elementInserted( const ContainerEvent& 
_rEvent ) throw(RuntimeException)
@@ -1719,15 +1720,14 @@
        return sal_True;
 }
 // 
-----------------------------------------------------------------------------
-bool OApplicationController::onEntryDoubleClick(SvTreeListBox* _pTree)
+bool OApplicationController::onEntryDoubleClick( SvTreeListBox& _rTree )
 {
-       OSL_ENSURE(_pTree != NULL,"Who called me without a svtreelsiboc! ->GPF 
");
-       if ( getContainer() && getContainer()->isLeaf(_pTree->GetHdlEntry()) )
+       if ( getContainer() && getContainer()->isLeaf( _rTree.GetHdlEntry() ) )
        {
                try
                {
                        openElement(
-                getContainer()->getQualifiedName( _pTree->GetHdlEntry() ),
+                getContainer()->getQualifiedName( _rTree.GetHdlEntry() ),
                 getContainer()->getElementType(),
                 E_OPEN_NORMAL
             );
@@ -2141,7 +2141,7 @@
        }
 }
 // 
-----------------------------------------------------------------------------
-void OApplicationController::onEntryDeSelect(SvTreeListBox* /*_pTree*/)
+void OApplicationController::onEntryDeSelect(SvTreeListBox& /*_rTree*/)
 {
        InvalidateAll();
     EventObject aEvent(*this);
@@ -2275,6 +2275,92 @@
 }
 
 // 
-----------------------------------------------------------------------------
+void OApplicationController::executeUnChecked(const URL& _rCommand, const 
Sequence< PropertyValue>& aArgs)
+{
+    OApplicationController_CBASE::executeUnChecked( _rCommand, aArgs );
+}
+
+// 
-----------------------------------------------------------------------------
+void OApplicationController::executeChecked(const URL& _rCommand, const 
Sequence< PropertyValue>& aArgs)
+{
+    OApplicationController_CBASE::executeChecked( _rCommand, aArgs );
+}
+
+// 
-----------------------------------------------------------------------------
+void OApplicationController::executeUnChecked(sal_uInt16 _nCommandId, const 
Sequence< PropertyValue>& aArgs)
+{
+    OApplicationController_CBASE::executeUnChecked( _nCommandId, aArgs );
+}
+
+// 
-----------------------------------------------------------------------------
+void OApplicationController::executeChecked(sal_uInt16 _nCommandId, const 
Sequence< PropertyValue>& aArgs)
+{
+    OApplicationController_CBASE::executeChecked( _nCommandId, aArgs );
+}
+
+// 
-----------------------------------------------------------------------------
+sal_Bool OApplicationController::isCommandEnabled(sal_uInt16 _nCommandId) const
+{
+    return OApplicationController_CBASE::isCommandEnabled( _nCommandId );
+}
+
+// 
-----------------------------------------------------------------------------
+sal_Bool OApplicationController::isCommandEnabled( const ::rtl::OUString& 
_rCompleteCommandURL ) const
+{
+    return OApplicationController_CBASE::isCommandEnabled( 
_rCompleteCommandURL );
+}
+
+// 
-----------------------------------------------------------------------------
+sal_uInt16 OApplicationController::registerCommandURL( const ::rtl::OUString& 
_rCompleteCommandURL )
+{
+    return OApplicationController_CBASE::registerCommandURL( 
_rCompleteCommandURL );
+}
+
+// 
-----------------------------------------------------------------------------
+void OApplicationController::notifyHiContrastChanged()
+{
+    OApplicationController_CBASE::notifyHiContrastChanged();
+}
+
+// 
-----------------------------------------------------------------------------
+Reference< XController > OApplicationController::getXController() throw( 
RuntimeException )
+{
+    return OApplicationController_CBASE::getXController();
+}
+
+// 
-----------------------------------------------------------------------------
+bool OApplicationController::interceptUserInput( const NotifyEvent& _rEvent )
+{
+    return OApplicationController_CBASE::interceptUserInput( _rEvent );
+}
+
+// 
-----------------------------------------------------------------------------
+PopupMenu* OApplicationController::getContextMenu( Control& /*_rControl*/ ) 
const
+{
+    return new PopupMenu( ModuleRes( RID_MENU_APP_EDIT ) );
+}
+
+// 
-----------------------------------------------------------------------------
+IController& OApplicationController::getCommandController()
+{
+    return *static_cast< IApplicationController* >( this );
+}
+
+// 
-----------------------------------------------------------------------------
+::cppu::OInterfaceContainerHelper* 
OApplicationController::getContextMenuInterceptors()
+{
+    return &m_aContextMenuInterceptors;
+}
+
+// 
-----------------------------------------------------------------------------
+Any OApplicationController::getCurrentSelection( Control& _rControl ) const
+{
+    Any aSelection;
+       getContainer()->describeCurrentSelectionForControl( _rControl, 
aSelection );
+    return aSelection;
+}
+
+// 
-----------------------------------------------------------------------------
 sal_Bool OApplicationController::requestQuickHelp( const SvLBoxEntry* 
/*_pEntry*/, String& /*_rText*/ ) const
 {
     return sal_False;

File [changed]: AppController.hxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppController.hxx?r1=1.28.10.2&r2=1.28.10.3
Delta lines:  +37 -39
---------------------
--- AppController.hxx   2008-05-29 11:36:13+0000        1.28.10.2
+++ AppController.hxx   2008-06-01 21:02:32+0000        1.28.10.3
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppController.hxx,v $
- * $Revision: 1.28.10.2 $
+ * $Revision: 1.28.10.3 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -31,13 +31,13 @@
 #ifndef DBAUI_APPCONTROLLER_HXX
 #define DBAUI_APPCONTROLLER_HXX
 
+#include "IApplicationController.hxx"
 #include "AppElementType.hxx"
 #include "callbacks.hxx"
 #include "commontypes.hxx"
 #include "documentcontroller.hxx"
 #include "dsntypes.hxx"
 #include "genericcontroller.hxx"
-#include "IAppElementNotification.hxx"
 #include "linkeddocuments.hxx"
 #include "moduledbu.hxx"
 #include "TableCopyHelper.hxx"
@@ -94,10 +94,7 @@
        class OApplicationController
                        :public OApplicationController_CBASE
                        ,public OApplicationController_Base
-                       ,public IApplicationElementNotification
-                       ,public IControlActionListener
-                       ,public IContainerFoundListener
-                       ,public IViewChangeListener
+                       ,public IApplicationController
        {
        public:
         typedef ::com::sun::star::uno::Reference< 
::com::sun::star::container::XContainer > TContainer;
@@ -225,21 +222,13 @@
                */
                void convertToView(const ::rtl::OUString& _sName);
 
-               /** checks if the selected data source is read only
-                       @return
-                               <TRUE/> if read only, otherwise <FALSE/>
-               */
-               virtual sal_Bool isDataSourceReadOnly() const;
-
                /** checks if the connection for the selected data source is 
read only. If the connection doesn't exist, <TRUE/> will be returned.
                        @return
                                <TRUE/> if read only or doesn't exist, 
otherwise <FALSE/>
                */
                sal_Bool isConnectionReadOnly() const;
 
-               /** fills the list with the selected entries.
-                       @param  _rNames
-               */
+               /// fills the list with the selected entries.
                void getSelectionElementNames( ::std::vector< ::rtl::OUString>& 
_rNames ) const;
 
                /// deletes the entries selected.
@@ -454,12 +443,6 @@
                // execute a feature
                virtual void                    Execute(sal_uInt16 nId, const 
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& 
aArgs);
 
-               // IControlActionListener overridables
-               virtual sal_Bool        requestQuickHelp( const SvLBoxEntry* 
_pEntry, String& _rText ) const;
-               virtual sal_Bool                requestDrag( sal_Int8 _nAction, 
const Point& _rPosPixel );
-               virtual sal_Int8                queryDrop( const 
AcceptDropEvent& _rEvt, const DataFlavorExVector& _rFlavors );
-               virtual sal_Int8                executeDrop( const 
ExecuteDropEvent& _rEvt );
-
                // OGenericUnoController
         virtual void            onLoadedMenu( const 
::com::sun::star::uno::Reference< ::com::sun::star::frame::XLayoutManager >& 
_xLayoutManager );
 
@@ -535,24 +518,45 @@
                */
                void refreshTables();
 
-               /// @see 
<method>IApplicationElementNotification::onEntryDoubleClick</method>
-               virtual bool onEntryDoubleClick(SvTreeListBox* _pTree);
-               /// @see 
<method>IApplicationElementNotification::onCreationClick</method>
-               virtual void onCreationClick(const ::rtl::OUString& _sCommand);
-               /// @see 
<method>IApplicationElementNotification::onContainerSelect</method>
+        // IApplicationController
+               virtual bool onEntryDoubleClick(SvTreeListBox& _rTree);
                virtual sal_Bool onContainerSelect(ElementType _eType);
-               /// @see 
<method>IApplicationElementNotification::onEntrySelect</method>
                virtual void onEntrySelect(SvLBoxEntry* _pEntry);
-               /// @see 
<method>IApplicationElementNotification::onEntryDeSelect</method>
-               virtual void onEntryDeSelect(SvTreeListBox* _pTree);
-               /// @see 
<method>IApplicationElementNotification::onCutEntry</method>
+               virtual void onEntryDeSelect(SvTreeListBox& _rTree);
                virtual void onCutEntry(SvLBoxEntry* _pEntry);
-               /// @see 
<method>IApplicationElementNotification::onCopyEntry</method>
                virtual void onCopyEntry(SvLBoxEntry* _pEntry);
-               /// @see 
<method>IApplicationElementNotification::onPasteEntry</method>
                virtual void onPasteEntry(SvLBoxEntry* _pEntry);
-               /// @see 
<method>IApplicationElementNotification::onDeleteEntry</method>
                virtual void onDeleteEntry(SvLBoxEntry* _pEntry);
+               virtual void previewChanged( sal_Int32 _nMode);
+               virtual void containerFound( const 
::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer >& 
_xContainer);
+
+        // IController (base of IApplicationController)
+               virtual void        executeUnChecked(const 
::com::sun::star::util::URL& _rCommand, const ::com::sun::star::uno::Sequence< 
::com::sun::star::beans::PropertyValue>& aArgs);
+        virtual void        executeChecked(const ::com::sun::star::util::URL& 
_rCommand, const ::com::sun::star::uno::Sequence< 
::com::sun::star::beans::PropertyValue>& aArgs);
+               virtual void        executeUnChecked(sal_uInt16 _nCommandId, 
const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& 
aArgs);
+               virtual void        executeChecked(sal_uInt16 _nCommandId, 
const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& 
aArgs);
+               virtual sal_Bool    isCommandEnabled(sal_uInt16 _nCommandId) 
const;
+        virtual sal_Bool    isCommandEnabled( const ::rtl::OUString& 
_rCompleteCommandURL ) const;
+        virtual sal_uInt16  registerCommandURL( const ::rtl::OUString& 
_rCompleteCommandURL );
+               virtual void        notifyHiContrastChanged();
+               virtual sal_Bool    isDataSourceReadOnly() const;
+               virtual ::com::sun::star::uno::Reference< 
::com::sun::star::frame::XController >
+                            getXController(void) throw( 
::com::sun::star::uno::RuntimeException );
+        virtual bool        interceptUserInput( const NotifyEvent& _rEvent );
+
+               // IControlActionListener overridables
+               virtual sal_Bool        requestQuickHelp( const SvLBoxEntry* 
_pEntry, String& _rText ) const;
+               virtual sal_Bool                requestDrag( sal_Int8 _nAction, 
const Point& _rPosPixel );
+               virtual sal_Int8                queryDrop( const 
AcceptDropEvent& _rEvt, const DataFlavorExVector& _rFlavors );
+               virtual sal_Int8                executeDrop( const 
ExecuteDropEvent& _rEvt );
+
+        // IContextMenuProvider (base of IApplicationController)
+        virtual PopupMenu*      getContextMenu( Control& _rControl ) const;
+        virtual IController&    getCommandController();
+        virtual ::cppu::OInterfaceContainerHelper*
+                                getContextMenuInterceptors();
+        virtual ::com::sun::star::uno::Any
+                                getCurrentSelection( Control& _rControl ) 
const;
 
                DECL_LINK( OnInvalidateClipboard, void* );
                DECL_LINK( OnClipboardChanged, void* );
@@ -561,12 +565,6 @@
         DECL_LINK( OnSelectContainer, void* );
         DECL_LINK( OnFirstControllerConnected, void* );
 
-               // IContainerFoundListener
-               virtual void containerFound( const 
::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer >& 
_xContainer);
-
-               // IViewChangeListener
-               virtual void previewChanged( sal_Int32 _nMode);
-
     protected:
         using OApplicationController_CBASE::connect;
 

File [changed]: AppControllerGen.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppControllerGen.cxx?r1=1.35.10.2&r2=1.35.10.3
Delta lines:  +2 -2
-------------------
--- AppControllerGen.cxx        2008-05-30 10:55:38+0000        1.35.10.2
+++ AppControllerGen.cxx        2008-06-01 21:02:32+0000        1.35.10.3
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppControllerGen.cxx,v $
- * $Revision: 1.35.10.2 $
+ * $Revision: 1.35.10.3 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -802,7 +802,7 @@
                        if ( bEnabled && bCompareRes && E_TABLE == eType )
                        {
                                ::std::vector< ::rtl::OUString> aList;
-                               
const_cast<OApplicationController*>(this)->getSelectionElementNames(aList);
+                               getSelectionElementNames(aList);
 
                                try
                                {

File [changed]: AppDetailPageHelper.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppDetailPageHelper.cxx?r1=1.32.10.1&r2=1.32.10.2
Delta lines:  +79 -36
---------------------
--- AppDetailPageHelper.cxx     2008-05-29 11:33:17+0000        1.32.10.1
+++ AppDetailPageHelper.cxx     2008-06-01 21:02:32+0000        1.32.10.2
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppDetailPageHelper.cxx,v $
- * $Revision: 1.32.10.1 $
+ * $Revision: 1.32.10.2 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -126,9 +126,6 @@
 #ifndef DBAUI_APPVIEW_HXX
 #include "AppView.hxx"
 #endif
-#ifndef DBAUI_IAPPELEMENTNOTIFICATION_HXX
-#include "IAppElementNotification.hxx"
-#endif
 #ifndef _DBA_DBACCESS_HELPID_HRC_
 #include "dbaccess_helpid.hrc"
 #endif
@@ -162,6 +159,7 @@
 #ifndef _TOOLS_DEBUG_HXX
 #include <tools/debug.hxx>
 #endif
+#include "IApplicationController.hxx"
 
 #include <com/sun/star/document/XDocumentProperties.hpp>
 
@@ -427,7 +425,7 @@
                        if ( eType == E_TABLE )
                        {
                                if( rTree.GetChildCount(pEntry) == 0 )
-                                       _rNames.push_back(getQualifiedName( 
pEntry ) );
+                                       _rNames.push_back( getQualifiedName( 
pEntry ) );
                        }
                        else
                        {
@@ -444,6 +442,27 @@
                }
        }
 }
+
+// 
-----------------------------------------------------------------------------
+void OAppDetailPageHelper::describeCurrentSelectionForControl( const Control& 
_rControl, Any& _out_rSelectedObjects )
+{
+    DBTreeListBox* pList = NULL;
+       for ( size_t i=0; i < CONTROL_COUNT; ++i )
+       {
+        if ( m_pLists[i] == &_rControl )
+        {
+            pList = m_pLists[i];
+            break;
+        }
+       }
+    OSL_ENSURE( pList, 
"OAppDetailPageHelper::describeCurrentSelectionForControl: invalid control, 
this is none of our lists!" );
+    if ( !pList )
+        return;
+
+    // TODO
+    (void)_out_rSelectedObjects;
+}
+
 // 
-----------------------------------------------------------------------------
 void OAppDetailPageHelper::selectElements(const Sequence< ::rtl::OUString>& 
_aNames)
 {
@@ -728,7 +747,37 @@
 void OAppDetailPageHelper::fillNames( const Reference< XNameAccess >& 
_xContainer, DBTreeListBox& _rList,
                                       USHORT _nImageId, USHORT 
_nHighContrastImageId, SvLBoxEntry* _pParent )
 {
-       fillTreeListNames( _xContainer, _rList, _nImageId, 
_nHighContrastImageId, _pParent, m_rBorderWin.getView()->getContainerListener() 
);
+       OSL_ENSURE(_xContainer.is(),"Data source is NULL! -> GPF");
+
+       if ( _xContainer.is() && _xContainer->hasElements() )
+       {
+               Sequence< ::rtl::OUString> aSeq = 
_xContainer->getElementNames();
+               const ::rtl::OUString* pIter = aSeq.getConstArray();
+               const ::rtl::OUString* pEnd      = pIter + aSeq.getLength();
+               for(;pIter != pEnd;++pIter)
+               {
+                       SvLBoxEntry* pEntry = NULL;
+                       Reference<XNameAccess> 
xSubElements(_xContainer->getByName(*pIter),UNO_QUERY);
+                       if ( xSubElements.is() )
+                       {
+                pEntry = _rList.InsertEntry( *pIter, _pParent, FALSE, 
LIST_APPEND, reinterpret_cast< void* >( FOLDER_INDICATOR ) );
+                getBorderWin().getView()->getAppController().containerFound( 
Reference< XContainer >( xSubElements, UNO_QUERY ) );
+                               fillNames( xSubElements, _rList, _nImageId, 
_nHighContrastImageId, pEntry );
+                       }
+                       else
+                       {
+                               pEntry = _rList.InsertEntry( *pIter, _pParent );
+
+                Image aImage = Image( ModuleRes( _nImageId ) );
+                _rList.SetExpandedEntryBmp( pEntry, aImage, BMP_COLOR_NORMAL );
+                _rList.SetCollapsedEntryBmp( pEntry, aImage, BMP_COLOR_NORMAL 
);
+
+                Image aHCImage = Image( ModuleRes( _nHighContrastImageId ) );
+                _rList.SetExpandedEntryBmp( pEntry, aHCImage, 
BMP_COLOR_HIGHCONTRAST );
+                _rList.SetCollapsedEntryBmp( pEntry, aHCImage, 
BMP_COLOR_HIGHCONTRAST );
+                       }
+               }
+       }
 }
 // 
-----------------------------------------------------------------------------
 DBTreeListBox* OAppDetailPageHelper::createSimpleTree( ULONG _nHelpId, const 
Image& _rImage, const Image& _rImageHC )
@@ -763,8 +812,8 @@
        _pTreeView->setPasteHandler(LINK(this, OAppDetailPageHelper, 
OnPasteEntry));
        _pTreeView->setDeleteHandler(LINK(this, OAppDetailPageHelper, 
OnDeleteEntry));
 
-       _pTreeView->setControlActionListener( 
getBorderWin().getView()->getActionListener() );
-       _pTreeView->setContextMenuProvider( this );
+       _pTreeView->setControlActionListener( 
&getBorderWin().getView()->getAppController() );
+       _pTreeView->setContextMenuProvider( 
&getBorderWin().getView()->getAppController() );
 
        return _pTreeView;
 }
@@ -908,13 +957,16 @@
 // 
-----------------------------------------------------------------------------
 IMPL_LINK(OAppDetailPageHelper, OnEntryDoubleClick, SvTreeListBox*, _pTree)
 {
-       bool bHandled = 
getBorderWin().getView()->getElementNotification()->onEntryDoubleClick(_pTree);
+    OSL_ENSURE( _pTree, "OAppDetailPageHelper, OnEntryDoubleClick: invalid 
callback!" );
+       bool bHandled = ( _pTree != NULL ) && 
getBorderWin().getView()->getAppController().onEntryDoubleClick( *_pTree );
     return bHandled ? 1L : 0L;
 }
 // 
-----------------------------------------------------------------------------
 IMPL_LINK(OAppDetailPageHelper, OnDeSelectHdl, SvTreeListBox*, _pTree)
 {
-       
getBorderWin().getView()->getElementNotification()->onEntryDeSelect(_pTree);
+    OSL_ENSURE( _pTree, "OAppDetailPageHelper, OnDeSelectHdl: invalid 
callback!" );
+       if ( _pTree != NULL )
+        getBorderWin().getView()->getAppController().onEntryDeSelect( *_pTree 
);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
@@ -922,7 +974,7 @@
 {
        if ( 1 == getSelectionCount() )
        {
-               
getBorderWin().getView()->getElementNotification()->onEntrySelect(_pEntry);
+               
getBorderWin().getView()->getAppController().onEntrySelect(_pEntry);
        }
        else
        {
@@ -933,25 +985,25 @@
 // 
-----------------------------------------------------------------------------
 IMPL_LINK( OAppDetailPageHelper, OnCutEntry, SvLBoxEntry*, _pEntry )
 {
-       getBorderWin().getView()->getElementNotification()->onCutEntry(_pEntry);
+       getBorderWin().getView()->getAppController().onCutEntry(_pEntry);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
 IMPL_LINK( OAppDetailPageHelper, OnCopyEntry, SvLBoxEntry*, _pEntry )
 {
-       
getBorderWin().getView()->getElementNotification()->onCopyEntry(_pEntry);
+       getBorderWin().getView()->getAppController().onCopyEntry(_pEntry);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
 IMPL_LINK( OAppDetailPageHelper, OnPasteEntry, SvLBoxEntry*, _pEntry )
 {
-       
getBorderWin().getView()->getElementNotification()->onPasteEntry(_pEntry);
+       getBorderWin().getView()->getAppController().onPasteEntry(_pEntry);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
 IMPL_LINK( OAppDetailPageHelper, OnDeleteEntry, SvLBoxEntry*, _pEntry )
 {
-       
getBorderWin().getView()->getElementNotification()->onDeleteEntry(_pEntry);
+       getBorderWin().getView()->getAppController().onDeleteEntry(_pEntry);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
@@ -1003,7 +1055,7 @@
        {
                m_ePreviewMode = _eMode;
 
-               
getBorderWin().getView()->getViewChangeListener()->previewChanged(static_cast<sal_Int32>(m_ePreviewMode));
+               
getBorderWin().getView()->getAppController().previewChanged(static_cast<sal_Int32>(m_ePreviewMode));
 
                sal_uInt16 nSelectedAction = SID_DB_APP_DISABLE_PREVIEW;
                switch ( m_ePreviewMode )
@@ -1015,7 +1067,7 @@
                                nSelectedAction = SID_DB_APP_VIEW_DOC_PREVIEW;
                                break;
                        case E_DOCUMENTINFO:
-                               if ( 
getCommandController().isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW) )
+                               if ( 
getBorderWin().getView()->getAppController().isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW)
 )
                                        nSelectedAction = 
SID_DB_APP_VIEW_DOCINFO_PREVIEW;
                                else
                                        m_ePreviewMode = E_PREVIEWNONE;
@@ -1034,7 +1086,7 @@
                                SvLBoxEntry* pEntry = pTree->GetSelectedEntry();
                                if ( pEntry )
                                {
-                                       
getBorderWin().getView()->getElementNotification()->onEntrySelect(pEntry);
+                                       
getBorderWin().getView()->getAppController().onEntrySelect(pEntry);
                                }
                        }
                }
@@ -1134,7 +1186,7 @@
                 Reference< XPropertySet > xFrameProps( m_xFrame, 
UNO_QUERY_THROW );
                 xFrameProps->setPropertyValue( ::rtl::OUString( 
RTL_CONSTASCII_USTRINGPARAM( "LayoutManager" ) ), makeAny(Reference< 
XLayoutManager >()) );
 
-                               Reference<XFramesSupplier> 
xSup(getBorderWin().getView()->getController()->getFrame(),UNO_QUERY);
+                               Reference<XFramesSupplier> 
xSup(getBorderWin().getView()->getAppController().getXController()->getFrame(),UNO_QUERY);
                                if ( xSup.is() )
                                {
                                        Reference<XFrames> xFrames = 
xSup->getFrames();
@@ -1146,7 +1198,7 @@
                        }
                }
 
-        Reference< XDatabaseDocumentUI > xApplication( 
getBorderWin().getView()->getController(), UNO_QUERY );
+        Reference< XDatabaseDocumentUI > xApplication( 
getBorderWin().getView()->getAppController().getXController(), UNO_QUERY );
                ::std::auto_ptr< DatabaseObjectView > pDispatcher( new 
ResultSetBrowser(
             getBorderWin().getView()->getORB(), xApplication, NULL, _bTable
         ) );
@@ -1207,7 +1259,7 @@
        {
                
aMenu->CheckItem(pActions[i],m_aMenu->IsItemChecked(pActions[i]));
        }
-       aMenu->EnableItem( SID_DB_APP_VIEW_DOCINFO_PREVIEW, 
getCommandController().isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW) );
+       aMenu->EnableItem( SID_DB_APP_VIEW_DOCINFO_PREVIEW, 
getBorderWin().getView()->getAppController().isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW)
 );
 
        // no disabled entries
        aMenu->RemoveDisabledEntries();
@@ -1221,32 +1273,23 @@
        {
                m_aTBPreview.SetItemText(SID_DB_APP_DISABLE_PREVIEW, 
aMenu->GetItemText(nSelectedAction));
                Resize();
-               
getCommandController().executeChecked(nSelectedAction,Sequence<PropertyValue>());
+               
getBorderWin().getView()->getAppController().executeChecked(nSelectedAction,Sequence<PropertyValue>());
        }
        return 0L;
 }
 
 // 
-----------------------------------------------------------------------------
-PopupMenu* OAppDetailPageHelper::getContextMenu( Control& /*_rControl*/ )
-{
-    return new PopupMenu( ModuleRes( RID_MENU_APP_EDIT ) );
-}
-
-// 
-----------------------------------------------------------------------------
-IController& OAppDetailPageHelper::getCommandController()
-{
-    return getBorderWin().getView()->getCommandController();
-}
-
-// 
-----------------------------------------------------------------------------
 void OAppDetailPageHelper::KeyInput( const KeyEvent& rKEvt )
 {
+    SvTreeListBox* pCurrentView = getCurrentView();
+    OSL_PRECOND( pCurrentView, "OAppDetailPageHelper::KeyInput: how this?" );
+
        KeyFuncType eFunc = rKEvt.GetKeyCode().GetFunction(); (void)eFunc;
        USHORT          nCode = rKEvt.GetKeyCode().GetCode();
 
-       if ( KEY_RETURN == nCode )
+       if ( ( KEY_RETURN == nCode ) && pCurrentView )
        {
-               
getBorderWin().getView()->getElementNotification()->onEntryDoubleClick(getCurrentView());
+               
getBorderWin().getView()->getAppController().onEntryDoubleClick( *pCurrentView 
);
        }
        else
                Window::KeyInput(rKEvt);

File [changed]: AppDetailPageHelper.hxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppDetailPageHelper.hxx?r1=1.14.30.1&r2=1.14.30.2
Delta lines:  +9 -7
-------------------
--- AppDetailPageHelper.hxx     2008-05-29 11:33:17+0000        1.14.30.1
+++ AppDetailPageHelper.hxx     2008-06-01 21:02:32+0000        1.14.30.2
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppDetailPageHelper.hxx,v $
- * $Revision: 1.14.30.1 $
+ * $Revision: 1.14.30.2 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -109,8 +109,7 @@
        // A helper class for the controls in the detail page.
        // Combines general functionality.
        //==================================================================
-       class OAppDetailPageHelper  :public Window
-                                ,public IContextMenuProvider
+       class OAppDetailPageHelper : public Window
        {
                DBTreeListBox*          m_pLists[CONTROL_COUNT];
                OAppBorderWindow&       m_rBorderWin;
@@ -217,10 +216,6 @@
                virtual void Resize();
                virtual void KeyInput( const KeyEvent& rKEvt );
 
-        // IContextMenuProvider
-        virtual PopupMenu*      getContextMenu( Control& _rControl );
-        virtual IController&    getCommandController();
-
         sal_Bool isCutAllowed();
                sal_Bool isCopyAllowed();
                sal_Bool isPasteAllowed();
@@ -268,6 +263,13 @@
                */
                void getSelectionElementNames( ::std::vector< ::rtl::OUString>& 
_rNames ) const;
 
+        /** describes the current selection for the given control
+        */
+        void    describeCurrentSelectionForControl(
+                    const Control& _rControl,
+                    ::com::sun::star::uno::Any& _out_rSelectedObjects
+                );
+
         /** select all names on the currently selected container. Non 
existence names where ignored.
         *
         * \param _aNames the element names

File [changed]: AppDetailView.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppDetailView.cxx?r1=1.28.30.1&r2=1.28.30.2
Delta lines:  +14 -11
---------------------
--- AppDetailView.cxx   2008-05-29 11:32:27+0000        1.28.30.1
+++ AppDetailView.cxx   2008-06-01 21:02:32+0000        1.28.30.2
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppDetailView.cxx,v $
- * $Revision: 1.28.30.1 $
+ * $Revision: 1.28.30.2 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -45,9 +45,6 @@
 #ifndef DBAUI_APPVIEW_HXX
 #include "AppView.hxx"
 #endif
-#ifndef DBAUI_IAPPELEMENTNOTIFICATION_HXX
-#include "IAppElementNotification.hxx"
-#endif
 #ifndef _COM_SUN_STAR_UI_XUICONFIGURATIONMANAGER_HPP_
 #include <com/sun/star/ui/XUIConfigurationManager.hpp>
 #endif
@@ -104,6 +101,7 @@
 #endif
 #include <algorithm>
 #include "dbtreelistbox.hxx"
+#include "IApplicationController.hxx"
 
 using namespace ::dbaui;
 using namespace ::com::sun::star::uno;
@@ -114,6 +112,8 @@
 using namespace ::com::sun::star::graphic;
 using namespace ::com::sun::star::ui;
 using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::beans;
+using ::com::sun::star::util::URL;
 
 #define SPACEBETWEENENTRIES            4
 
@@ -363,7 +363,9 @@
 void OCreationList::onSelected( SvLBoxEntry* _pEntry ) const
 {
     DBG_ASSERT( _pEntry, "OCreationList::onSelected: invalid entry!" );
-    m_rTaskWindow.getDetailView()->onCreationClick( reinterpret_cast< 
TaskEntry* >( _pEntry->GetUserData() )->sUNOCommand );
+       URL aCommand;
+       aCommand.Complete = reinterpret_cast< TaskEntry* >( 
_pEntry->GetUserData() )->sUNOCommand;
+    
m_rTaskWindow.getDetailView()->getBorderWin().getView()->getAppController().executeChecked(
 aCommand, Sequence< PropertyValue >() );
 }
 // 
-----------------------------------------------------------------------------
 void OCreationList::KeyInput( const KeyEvent& rKEvt )
@@ -891,6 +893,7 @@
        DBG_CHKTHIS(OApplicationDetailView,NULL);
        return m_pControlHelper->getElementCount();
 }
+
 // 
-----------------------------------------------------------------------------
 void OApplicationDetailView::getSelectionElementNames( ::std::vector< 
::rtl::OUString>& _rNames ) const
 {
@@ -898,6 +901,12 @@
        m_pControlHelper->getSelectionElementNames( _rNames );
 }
 // 
-----------------------------------------------------------------------------
+void OApplicationDetailView::describeCurrentSelectionForControl( const 
Control& _rControl, Any& _out_rSelectedObjects )
+{
+       DBG_CHKTHIS(OApplicationDetailView,NULL);
+       m_pControlHelper->describeCurrentSelectionForControl( _rControl, 
_out_rSelectedObjects );
+}
+// 
-----------------------------------------------------------------------------
 void OApplicationDetailView::selectElements(const Sequence< ::rtl::OUString>& 
_aNames)
 {
     DBG_CHKTHIS(OApplicationDetailView,NULL);
@@ -929,12 +938,6 @@
        m_pControlHelper->paste(); 
 }
 // 
-----------------------------------------------------------------------------
-void OApplicationDetailView::onCreationClick( const ::rtl::OUString& _sCommand)
-{
-       DBG_CHKTHIS(OApplicationDetailView,NULL);
-       
getBorderWin().getView()->getElementNotification()->onCreationClick(_sCommand);
-}
-// 
-----------------------------------------------------------------------------
 SvLBoxEntry*  OApplicationDetailView::elementAdded(ElementType _eType,const 
::rtl::OUString& _rName, const Any& _rObject )
 {
        DBG_CHKTHIS(OApplicationDetailView,NULL);

File [changed]: AppDetailView.hxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppDetailView.hxx?r1=1.19&r2=1.19.30.1
Delta lines:  +9 -8
-------------------
--- AppDetailView.hxx   2008-04-10 13:58:21+0000        1.19
+++ AppDetailView.hxx   2008-06-01 21:02:33+0000        1.19.30.1
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppDetailView.hxx,v $
- * $Revision: 1.19 $
+ * $Revision: 1.19.30.1 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -73,7 +73,6 @@
 
 namespace dbaui
 {
-       class OApplicationController;
        class OAppBorderWindow;
        class OApplicationDetailView;
        class OAppDetailPageHelper;
@@ -295,6 +294,13 @@
                */
                void getSelectionElementNames(::std::vector< ::rtl::OUString>& 
_rNames ) const;
 
+        /** describes the current selection for the given control
+        */
+        void    describeCurrentSelectionForControl(
+                    const Control& _rControl,
+                    ::com::sun::star::uno::Any& _out_rSelectedObjects
+                );
+
         /** select all names on the currently selected container. Non 
existence names where ignored.
         *
         * \param _aNames the element names
@@ -376,11 +382,6 @@
 
                SvLBoxEntry* getEntry( const Point& _aPoint ) const;
 
-               /** a command entry was selected
-                       @param  _sCommand
-                               The command to be executed.
-               */
-               void onCreationClick( const ::rtl::OUString& _sCommand);
                Window* getTreeWindow() const;
     private:
         void                impl_createPage(

File [changed]: AppIconControl.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppIconControl.cxx?r1=1.10&r2=1.10.30.1
Delta lines:  +23 -18
---------------------
--- AppIconControl.cxx  2008-04-10 13:58:42+0000        1.10
+++ AppIconControl.cxx  2008-06-01 21:02:33+0000        1.10.30.1
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppIconControl.cxx,v $
- * $Revision: 1.10 $
+ * $Revision: 1.10.30.1 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -69,21 +69,26 @@
 {
     DBG_CTOR(OApplicationIconControl,NULL);
 
-       typedef ::std::pair< USHORT,USHORT> TUSHORTPair;
-       typedef ::std::pair< ElementType,TUSHORTPair> TUSHORT2Pair;
-       typedef ::std::pair< String,TUSHORT2Pair> TPair;
-       static const TPair pTypes[] = { 
-                       
TPair(String(ModuleRes(RID_STR_TABLES_CONTAINER)),TUSHORT2Pair(E_TABLE,TUSHORTPair(IMG_TABLEFOLDER_TREE_L,IMG_TABLEFOLDER_TREE_LHC)
 )) 
-               ,       
TPair(String(ModuleRes(RID_STR_QUERIES_CONTAINER)),TUSHORT2Pair(E_QUERY,TUSHORTPair(IMG_QUERYFOLDER_TREE_L,IMG_QUERYFOLDER_TREE_LHC))
 )
-               ,       
TPair(String(ModuleRes(RID_STR_FORMS_CONTAINER)),TUSHORT2Pair(E_FORM,TUSHORTPair(IMG_FORMFOLDER_TREE_L,IMG_FORMFOLDER_TREE_LHC))
 )
-               ,       
TPair(String(ModuleRes(RID_STR_REPORTS_CONTAINER)),TUSHORT2Pair(E_REPORT,TUSHORTPair(IMG_REPORTFOLDER_TREE_L,IMG_REPORTFOLDER_TREE_LHC))
 )
+    struct CategoryDescriptor
+    {
+        USHORT      nLabelResId;
+        ElementType eType;
+        USHORT      nImageResId;
+        USHORT      nImageResIdHC;
+    }   aCategories[] = {
+        { RID_STR_TABLES_CONTAINER,     E_TABLE,    IMG_TABLEFOLDER_TREE_L, 
IMG_TABLEFOLDER_TREE_LHC    },
+        { RID_STR_QUERIES_CONTAINER,    E_QUERY,    IMG_QUERYFOLDER_TREE_L, 
IMG_QUERYFOLDER_TREE_LHC    },
+               { RID_STR_FORMS_CONTAINER,      E_FORM,     
IMG_FORMFOLDER_TREE_L,  IMG_FORMFOLDER_TREE_LHC     },
+        { RID_STR_REPORTS_CONTAINER,    E_REPORT,   
IMG_REPORTFOLDER_TREE_L,IMG_REPORTFOLDER_TREE_LHC   }
                };
-
-       for (size_t i=0; i < sizeof(pTypes)/sizeof(pTypes[0]); ++i)
+    for ( size_t i=0; i < sizeof(aCategories)/sizeof(aCategories[0]); ++i)
        {
-               SvxIconChoiceCtrlEntry* pEntry = 
InsertEntry(pTypes[i].first,Image(ModuleRes(pTypes[i].second.second.first)),Image(ModuleRes(pTypes[i].second.second.second)));
+        SvxIconChoiceCtrlEntry* pEntry = InsertEntry(
+            String( ModuleRes( aCategories[i].nLabelResId ) ),
+            Image( ModuleRes( aCategories[i].nImageResId ) ),
+            Image( ModuleRes( aCategories[i].nImageResIdHC ) ) );
                if ( pEntry )
-                       pEntry->SetUserData(new 
ElementType(pTypes[i].second.first));
+            pEntry->SetUserData( new ElementType( aCategories[i].eType ) );
        }
 
        SetChoiceWithCursor( TRUE );

File [changed]: AppSwapWindow.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppSwapWindow.cxx?r1=1.15.8.1&r2=1.15.8.2
Delta lines:  +5 -7
-------------------
--- AppSwapWindow.cxx   2008-05-28 08:49:06+0000        1.15.8.1
+++ AppSwapWindow.cxx   2008-06-01 21:02:33+0000        1.15.8.2
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppSwapWindow.cxx,v $
- * $Revision: 1.15.8.1 $
+ * $Revision: 1.15.8.2 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -45,9 +45,6 @@
 #ifndef DBAUI_APPVIEW_HXX
 #include "AppView.hxx"
 #endif
-#ifndef DBAUI_IAPPELEMENTNOTIFICATION_HXX
-#include "IAppElementNotification.hxx"
-#endif
 #ifndef _SV_SVAPP_HXX
 #include <vcl/svapp.hxx>
 #endif
@@ -60,6 +57,7 @@
 #ifndef _SV_MNEMONIC_HXX
 #include <vcl/mnemonic.hxx>
 #endif
+#include "IApplicationController.hxx"
 
 #include <memory>
 
@@ -85,7 +83,7 @@
        ImplInitSettings( sal_True, sal_True, sal_True );
 
        m_aIconControl.SetClickHdl(LINK(this, OApplicationSwapWindow, 
OnContainerSelectHdl));
-       m_aIconControl.setControlActionListener( 
m_rBorderWin.getView()->getActionListener());
+       m_aIconControl.setControlActionListener( 
&m_rBorderWin.getView()->getAppController() );
        m_aIconControl.SetHelpId(HID_APP_SWAP_ICONCONTROL);
        m_aIconControl.Show();
        //m_aIconControl.Enable(TRUE);
@@ -186,12 +184,12 @@
        if ( m_eLastType == _eType )
         return true;
 
-    if ( m_rBorderWin.getView()->getElementNotification()->onContainerSelect( 
_eType ) )
+    if ( m_rBorderWin.getView()->getAppController().onContainerSelect( _eType 
) )
     {
                if ( _eType != E_NONE )
                        m_eLastType = _eType;
         return true;
-    } // if ( 
m_rBorderWin.getView()->getElementNotification()->onContainerSelect( _eType ) )
+    } // if ( m_rBorderWin.getView()->getAppController().onContainerSelect( 
_eType ) )
 
        PostUserEvent( LINK( this, OApplicationSwapWindow, ChangeToLastSelected 
) );
     return false;

File [changed]: AppView.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppView.cxx?r1=1.24.10.1&r2=1.24.10.2
Delta lines:  +11 -21
---------------------
--- AppView.cxx 2008-05-29 11:32:25+0000        1.24.10.1
+++ AppView.cxx 2008-06-01 21:02:33+0000        1.24.10.2
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppView.cxx,v $
- * $Revision: 1.24.10.1 $
+ * $Revision: 1.24.10.2 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -42,9 +42,6 @@
 #ifndef TOOLS_DIAGNOSE_EX_H
 #include <tools/diagnose_ex.h>
 #endif
-#ifndef DBAUI_IAPPELEMENTNOTIFICATION_HXX
-#include "IAppElementNotification.hxx"
-#endif
 #ifndef _DBA_DBACCESS_HELPID_HRC_
 #include "dbaccess_helpid.hrc"
 #endif                           
@@ -66,9 +63,6 @@
 #ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
 #include <com/sun/star/beans/XPropertySet.hpp>
 #endif
-#ifndef _COM_SUN_STAR_FRAME_XCONTROLLER_HPP_
-#include <com/sun/star/frame/XController.hpp>
-#endif
 #ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_
 #include <com/sun/star/sdbcx/XTablesSupplier.hpp>
 #endif
@@ -114,7 +108,7 @@
 #ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX 
 #include <svtools/pathoptions.hxx>
 #endif
-
+#include "IApplicationController.hxx"
 
 using namespace ::dbaui;
 using namespace ::com::sun::star::uno;
@@ -274,20 +268,11 @@
 
//------------------------------------------------------------------------------
 OApplicationView::OApplicationView( Window* pParent
                                                                        ,const 
Reference< XMultiServiceFactory >& _rxOrb
-                                                                       
,IController& _rIController
-                                                                       
,IApplicationElementNotification* _pController
-                                                                       
,IControlActionListener* _pActonListener
-                                                                       
,IContainerFoundListener* _pContainerListener
-                                                                       
,IViewChangeListener* _pViewChangeListener
-                                                                       ,const 
Reference< XController>& _xController
+                                                                       
,IApplicationController& _rAppController
                                                                        
,PreviewMode _ePreviewMode
                                                                   ) :
-       ODataView( pParent, _rIController, _rxOrb, WB_DIALOGCONTROL )
-       ,m_xController(_xController)
-       ,m_pElementNotification( _pController )
-       ,m_pActonListener(_pActonListener)
-       ,m_pContainerListener(_pContainerListener)
-       ,m_pViewChangeListener(_pViewChangeListener)
+       ODataView( pParent, _rAppController, _rxOrb, WB_DIALOGCONTROL )
+       ,m_rAppController( _rAppController )
        ,m_eChildFocus(NONE)
 {
        DBG_CTOR(OApplicationView,NULL);
@@ -318,7 +303,6 @@
                ::std::auto_ptr<Window> aTemp(m_pWin);
                m_pWin = NULL;
        }
-       m_pElementNotification = NULL;
 }
 // 
-----------------------------------------------------------------------------
 void OApplicationView::createIconAutoMnemonics( MnemonicGenerator& _rMnemonics 
)
@@ -515,6 +499,12 @@
        getDetailView()->getSelectionElementNames( _rNames );
 }
 // 
-----------------------------------------------------------------------------
+void OApplicationView::describeCurrentSelectionForControl( const Control& 
_rControl, Any& _out_rSelectedObjects )
+{
+       OSL_ENSURE(m_pWin && getDetailView(),"Detail view is NULL! -> GPF");
+       getDetailView()->describeCurrentSelectionForControl( _rControl, 
_out_rSelectedObjects );
+}
+// 
-----------------------------------------------------------------------------
 void OApplicationView::selectElements(const Sequence< ::rtl::OUString>& 
_aNames)
 {
     OSL_ENSURE(m_pWin && getDetailView(),"Detail view is NULL! -> GPF");

File [changed]: AppView.hxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppView.hxx?r1=1.16.30.1&r2=1.16.30.2
Delta lines:  +13 -28
---------------------
--- AppView.hxx 2008-05-29 11:32:26+0000        1.16.30.1
+++ AppView.hxx 2008-06-01 21:02:33+0000        1.16.30.2
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: AppView.hxx,v $
- * $Revision: 1.16.30.1 $
+ * $Revision: 1.16.30.2 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -33,9 +33,6 @@
 #ifndef DBAUI_DATAVIEW_HXX
 #include "dataview.hxx"
 #endif
-#ifndef _COM_SUN_STAR_FRAME_XCONTROLLER_HPP_ 
-#include <com/sun/star/frame/XController.hpp>
-#endif
 #ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_
 #include <com/sun/star/container/XNameAccess.hpp>
 #endif
@@ -59,7 +56,6 @@
 #endif
 
 namespace com{ namespace sun { namespace star { namespace beans    { class 
XPropertySet; } } } }
-namespace com{ namespace sun { namespace star { namespace frame    { class 
XController; } } } }
 
 class Control;
 class SvLBoxEntry;
@@ -67,10 +63,8 @@
 
 namespace dbaui
 {
-       class IApplicationElementNotification;
        class IControlActionListener;
-       class IContainerFoundListener;
-       class IViewChangeListener;
+    class IApplicationController;
        class OApplicationView;
        class OApplicationDetailView;
        class OApplicationSwapWindow;
@@ -112,16 +106,10 @@
                };
        private:
                ::com::sun::star::lang::Locale          m_aLocale;
-               ::com::sun::star::uno::Reference< 
-                       ::com::sun::star::frame::XController> 
-                                                                               
        m_xController;
                ::com::sun::star::uno::Reference< 
::com::sun::star::lang::XComponent >  
                                                                                
        m_xObject;
                OAppBorderWindow*                                       m_pWin; 
        
-               IApplicationElementNotification*        m_pElementNotification;
-               IControlActionListener*                         
m_pActonListener;
-               IContainerFoundListener*                        
m_pContainerListener;
-               IViewChangeListener*                            
m_pViewChangeListener;
+               IApplicationController&             m_rAppController;
                ChildFocusState                                         
m_eChildFocus;
 
                IClipboardTest* getActiveChild() const;
@@ -141,12 +129,7 @@
        public:
                OApplicationView(       Window* pParent
                                                        ,const 
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory 
>&
-                                                       ,IController& 
_rIController
-                                                       
,IApplicationElementNotification*       _pController
-                                                       
,IControlActionListener*                        _pActonListener
-                                                       
,IContainerFoundListener*                       _pContainerListener
-                                                       ,IViewChangeListener*   
                        _pViewChangeListener
-                                                       ,const 
::com::sun::star::uno::Reference< ::com::sun::star::frame::XController>& 
_xController
+                                                       
,IApplicationController&            _rAppController
                                                        ,PreviewMode 
_ePreviewMode
                                                        );
                virtual ~OApplicationView();
@@ -161,13 +144,8 @@
                virtual long PreNotify( NotifyEvent& rNEvt );
                virtual void GetFocus();
 
-               inline IApplicationElementNotification*                 
getElementNotification() const { return m_pElementNotification; }
-               inline IControlActionListener*                                  
getActionListener() const { return m_pActonListener; }
-               inline IContainerFoundListener*                                 
getContainerListener() const { return m_pContainerListener; }
-               inline IViewChangeListener*                                     
        getViewChangeListener() const { return m_pViewChangeListener; }
+        inline IApplicationController&                  getAppController() 
const { return m_rAppController; }
                inline const ::com::sun::star::lang::Locale&    getLocale() 
const { return m_aLocale;}
-               inline ::com::sun::star::uno::Reference< 
-                       ::com::sun::star::frame::XController> getController() 
const { return m_xController; }
 
                // IClipboardTest
                virtual sal_Bool isCutAllowed();
@@ -243,6 +221,13 @@
                */
                void getSelectionElementNames( ::std::vector< ::rtl::OUString>& 
_rNames ) const;
 
+        /** describes the current selection for the given control
+        */
+        void    describeCurrentSelectionForControl(
+                    const Control& _rControl,
+                    ::com::sun::star::uno::Any& _out_rSelectedObjects
+                );
+
         /** select all names on the currently selected container. Non 
existence names where ignored.
         *
         * \param _aNames the element names




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to