Kaydet (Commit) 0006fcbd authored tarafından Ivo Hinkelmann's avatar Ivo Hinkelmann

INTEGRATION: CWS jl49 (1.11.26); FILE MERGED

2006/11/30 08:56:34 sb 1.11.26.10: #i70481# Made code warning-free.
2006/11/30 08:51:52 jl 1.11.26.9: #i70481# ProgressCommandEnv constructor has now different signature
2006/11/27 14:21:49 jl 1.11.26.8: #i70481# ProgressCommandEnv is now created with additional parameter
2006/11/24 14:23:08 sb 1.11.26.7: #i70481# Fixed context menu calculation.
2006/11/21 09:52:15 sb 1.11.26.6: Fixed merge conflict resolution.
2006/11/20 15:23:46 sb 1.11.26.5: #i70481# Adapted to changes on CWS updatefeed; made code warning-free.
2006/11/20 13:13:48 sb 1.11.26.4: RESYNC: (1.11-1.12); FILE MERGED
2006/11/17 12:59:43 sb 1.11.26.3: #i70481# Next step of dp_gui_updatedialog; various related improvements in other code.
2006/11/06 16:21:42 sb 1.11.26.2: #i70481# Check for Update button and context menu entry.
2006/10/18 11:13:34 jl 1.11.26.1: #i70481# Extension Manager has now a version column. Currently no default versions are displayed
üst 4d755f74
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
* *
* $RCSfile: dp_gui_treelb.cxx,v $ * $RCSfile: dp_gui_treelb.cxx,v $
* *
* $Revision: 1.13 $ * $Revision: 1.14 $
* *
* last change: $Author: ihi $ $Date: 2006-12-19 11:43:27 $ * last change: $Author: ihi $ $Date: 2006-12-20 14:23:58 $
* *
* The Contents of this file are made available subject to * The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1. * the terms of GNU Lesser General Public License Version 2.1.
...@@ -50,6 +50,8 @@ ...@@ -50,6 +50,8 @@
#include "com/sun/star/lang/WrappedTargetRuntimeException.hpp" #include "com/sun/star/lang/WrappedTargetRuntimeException.hpp"
#include "com/sun/star/beans/PropertyValue.hpp" #include "com/sun/star/beans/PropertyValue.hpp"
#include "com/sun/star/container/XNameAccess.hpp" #include "com/sun/star/container/XNameAccess.hpp"
#include "com/sun/star/deployment/UpdateInformationProvider.hpp"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/ucb/ContentAction.hpp" #include "com/sun/star/ucb/ContentAction.hpp"
#include "com/sun/star/frame/XModuleManager.hpp" #include "com/sun/star/frame/XModuleManager.hpp"
#include <hash_set> #include <hash_set>
...@@ -106,10 +108,12 @@ struct NodeImpl : public ::cppu::WeakImplHelper1<util::XModifyListener> ...@@ -106,10 +108,12 @@ struct NodeImpl : public ::cppu::WeakImplHelper1<util::XModifyListener>
const OUString m_factoryURL; const OUString m_factoryURL;
Reference<deployment::XPackageManager> m_xPackageManager; Reference<deployment::XPackageManager> m_xPackageManager;
Reference<deployment::XPackage> m_xPackage; Reference<deployment::XPackage> m_xPackage;
Reference<css::uno::XComponentContext> m_xComponentContext;
virtual ~NodeImpl(); virtual ~NodeImpl();
inline NodeImpl( DialogImpl::TreeListBoxImpl * treelb, inline NodeImpl( Reference<css::uno::XComponentContext> xComponentContext,
DialogImpl::TreeListBoxImpl * treelb,
OUString const & factoryURL, OUString const & factoryURL,
Reference<deployment::XPackageManager> const & Reference<deployment::XPackageManager> const &
xPackageManager, xPackageManager,
...@@ -119,7 +123,8 @@ struct NodeImpl : public ::cppu::WeakImplHelper1<util::XModifyListener> ...@@ -119,7 +123,8 @@ struct NodeImpl : public ::cppu::WeakImplHelper1<util::XModifyListener>
m_it( treelb->m_nodes.end() ), m_it( treelb->m_nodes.end() ),
m_factoryURL( factoryURL ), m_factoryURL( factoryURL ),
m_xPackageManager( xPackageManager ), m_xPackageManager( xPackageManager ),
m_xPackage( xPackage ) m_xPackage( xPackage ),
m_xComponentContext(xComponentContext)
{} {}
Image getIcon() const; Image getIcon() const;
...@@ -279,16 +284,16 @@ void NodeImpl::modified( Reference<XCommandEnvironment> const & xCmdEnv ) ...@@ -279,16 +284,16 @@ void NodeImpl::modified( Reference<XCommandEnvironment> const & xCmdEnv )
switch (getPackageState( m_xPackage, xCmdEnv )) switch (getPackageState( m_xPackage, xCmdEnv ))
{ {
case REGISTERED: case REGISTERED:
m_treelb->SetEntryText( m_treelb->m_strEnabled, m_lbEntry, 1 ); m_treelb->SetEntryText( m_treelb->m_strEnabled, m_lbEntry, 2 );
break; break;
case NOT_REGISTERED: case NOT_REGISTERED:
m_treelb->SetEntryText( m_treelb->m_strDisabled, m_lbEntry, 1 ); m_treelb->SetEntryText( m_treelb->m_strDisabled, m_lbEntry, 2 );
break; break;
case AMBIGUOUS: case AMBIGUOUS:
m_treelb->SetEntryText( m_treelb->m_strUnknown, m_lbEntry, 1 ); m_treelb->SetEntryText( m_treelb->m_strUnknown, m_lbEntry, 2 );
break; break;
case NOT_AVAILABLE: case NOT_AVAILABLE:
m_treelb->SetEntryText( String(), m_lbEntry, 1 ); m_treelb->SetEntryText( String(), m_lbEntry, 2 );
break; break;
} }
...@@ -330,7 +335,7 @@ void NodeImpl::modified( lang::EventObject const & ) ...@@ -330,7 +335,7 @@ void NodeImpl::modified( lang::EventObject const & )
{ {
try { try {
const Reference<XCommandEnvironment> xCmdEnv( const Reference<XCommandEnvironment> xCmdEnv(
new ProgressCommandEnv( m_treelb->m_dialog, String(), OUString() ) ); new ProgressCommandEnv( m_xComponentContext, m_treelb->m_dialog, String() ) );
modified( xCmdEnv ); modified( xCmdEnv );
} }
catch (RuntimeException &) { catch (RuntimeException &) {
...@@ -378,13 +383,15 @@ long DialogImpl::SelectionBoxControl::Notify( NotifyEvent & rEvt ) ...@@ -378,13 +383,15 @@ long DialogImpl::SelectionBoxControl::Notify( NotifyEvent & rEvt )
//______________________________________________________________________________ //______________________________________________________________________________
DialogImpl::TreeListBoxImpl::TreeListBoxImpl( DialogImpl::TreeListBoxImpl::TreeListBoxImpl(
Window * pParent, DialogImpl * dialog ) Reference<XComponentContext> const & context, Window * pParent,
DialogImpl * dialog )
: SvHeaderTabListBox( pParent, : SvHeaderTabListBox( pParent,
WB_CLIPCHILDREN | WB_TABSTOP | WB_CLIPCHILDREN | WB_TABSTOP |
WB_HASBUTTONS | WB_HASLINES | WB_HASBUTTONS | WB_HASLINES |
/* WB_BORDER | */ WB_HASLINESATROOT | /* WB_BORDER | */ WB_HASLINESATROOT |
WB_HASBUTTONSATROOT | WB_HIDESELECTION | WB_HASBUTTONSATROOT | WB_HIDESELECTION |
WB_HSCROLL ), WB_HSCROLL ),
m_context( context ),
m_dialog( dialog ), m_dialog( dialog ),
m_currentSelectedEntry( 0 ), m_currentSelectedEntry( 0 ),
m_hiContrastMode( GetDisplayBackground().GetColor().IsDark() ), m_hiContrastMode( GetDisplayBackground().GetColor().IsDark() ),
...@@ -396,6 +403,7 @@ DialogImpl::TreeListBoxImpl::TreeListBoxImpl( ...@@ -396,6 +403,7 @@ DialogImpl::TreeListBoxImpl::TreeListBoxImpl(
m_strCtxEnable( getResourceString(RID_CTX_ITEM_ENABLE) ), m_strCtxEnable( getResourceString(RID_CTX_ITEM_ENABLE) ),
m_strCtxDisable( getResourceString(RID_CTX_ITEM_DISABLE) ), m_strCtxDisable( getResourceString(RID_CTX_ITEM_DISABLE) ),
m_strCtxExport( getResourceString(RID_CTX_ITEM_EXPORT) ), m_strCtxExport( getResourceString(RID_CTX_ITEM_EXPORT) ),
m_strCtxCheckUpdate( getResourceString(RID_CTX_ITEM_CHECK_UPDATE) ),
m_defaultPackage( getResId(RID_IMG_DEF_PACKAGE) ), m_defaultPackage( getResId(RID_IMG_DEF_PACKAGE) ),
m_defaultPackage_hc( getResId(RID_IMG_DEF_PACKAGE_HC) ), m_defaultPackage_hc( getResId(RID_IMG_DEF_PACKAGE_HC) ),
m_defaultPackageBundle( getResId(RID_IMG_DEF_PACKAGE_BUNDLE) ), m_defaultPackageBundle( getResId(RID_IMG_DEF_PACKAGE_BUNDLE) ),
...@@ -429,7 +437,7 @@ SvLBoxEntry * DialogImpl::TreeListBoxImpl::addNode( ...@@ -429,7 +437,7 @@ SvLBoxEntry * DialogImpl::TreeListBoxImpl::addNode(
bool sortIn ) bool sortIn )
{ {
NodeImpl * node = new NodeImpl( NodeImpl * node = new NodeImpl(
this, factoryURL, xPackageManager, xPackage ); m_context, this, factoryURL, xPackageManager, xPackage );
Reference<util::XModifyListener> xListener( node ); Reference<util::XModifyListener> xListener( node );
m_nodes.push_front( xListener ); m_nodes.push_front( xListener );
node->m_it = m_nodes.begin(); node->m_it = m_nodes.begin();
...@@ -463,9 +471,10 @@ SvLBoxEntry * DialogImpl::TreeListBoxImpl::addNode( ...@@ -463,9 +471,10 @@ SvLBoxEntry * DialogImpl::TreeListBoxImpl::addNode(
else else
{ {
String name( displayName ); String name( displayName );
name.AppendAscii( RTL_CONSTASCII_STRINGPARAM("\t") ); name.AppendAscii( RTL_CONSTASCII_STRINGPARAM("\t\t") );
node->m_lbEntry = InsertEntryToColumn( node->m_lbEntry = InsertEntryToColumn(
name, imgIcon, imgIcon, parentNode, pos, 0xffff, node ); name, imgIcon, imgIcon, parentNode, pos, 0xffff, node );
SetEntryText( xPackage->getVersion(), node->m_lbEntry, 1 );
// update status: // update status:
node->modified( xCmdEnv ); node->modified( xCmdEnv );
node->m_xPackage->addModifyListener( xListener ); node->m_xPackage->addModifyListener( xListener );
...@@ -539,6 +548,16 @@ DialogImpl::TreeListBoxImpl::getPackage( SvLBoxEntry * entry ) const ...@@ -539,6 +548,16 @@ DialogImpl::TreeListBoxImpl::getPackage( SvLBoxEntry * entry ) const
return NodeImpl::get(entry)->m_xPackage; return NodeImpl::get(entry)->m_xPackage;
} }
//______________________________________________________________________________
Reference<deployment::XPackageManager>
DialogImpl::TreeListBoxImpl::getPackageManager( SvLBoxEntry * entry ) const
{
if (entry == 0)
return Reference<deployment::XPackageManager>();
else
return NodeImpl::get(entry)->m_xPackageManager;
}
//______________________________________________________________________________ //______________________________________________________________________________
PopupMenu * DialogImpl::TreeListBoxImpl::CreateContextMenu(void) PopupMenu * DialogImpl::TreeListBoxImpl::CreateContextMenu(void)
{ {
...@@ -551,23 +570,44 @@ PopupMenu * DialogImpl::TreeListBoxImpl::CreateContextMenu(void) ...@@ -551,23 +570,44 @@ PopupMenu * DialogImpl::TreeListBoxImpl::CreateContextMenu(void)
menu->InsertItem( RID_BTN_ADD, m_strCtxAdd ); menu->InsertItem( RID_BTN_ADD, m_strCtxAdd );
if (m_dialog->m_removeButton->IsEnabled()) if (m_dialog->m_removeButton->IsEnabled())
menu->InsertItem( RID_BTN_REMOVE, m_strCtxRemove ); menu->InsertItem( RID_BTN_REMOVE, m_strCtxRemove );
if ((m_dialog->m_addButton->IsEnabled() ||
m_dialog->m_removeButton->IsEnabled()) &&
(m_dialog->m_enableButton->IsEnabled()||
m_dialog->m_disableButton->IsEnabled()))
menu->InsertSeparator();
if ((m_dialog->m_enableButton->IsEnabled()
|| m_dialog->m_disableButton->IsEnabled())
&& menu->GetItemCount() != 0)
menu->InsertSeparator();
if (m_dialog->m_enableButton->IsEnabled()) if (m_dialog->m_enableButton->IsEnabled())
menu->InsertItem( RID_BTN_ENABLE, m_strCtxEnable ); menu->InsertItem( RID_BTN_ENABLE, m_strCtxEnable );
if (m_dialog->m_disableButton->IsEnabled()) if (m_dialog->m_disableButton->IsEnabled())
menu->InsertItem( RID_BTN_DISABLE, m_strCtxDisable ); menu->InsertItem( RID_BTN_DISABLE, m_strCtxDisable );
if (m_dialog->m_exportButton->IsEnabled() &&
(m_dialog->m_addButton->IsEnabled() ||
m_dialog->m_removeButton->IsEnabled()))
menu->InsertSeparator();
if (m_dialog->m_exportButton->IsEnabled()) if (m_dialog->m_exportButton->IsEnabled())
{
if (menu->GetItemCount() != 0)
menu->InsertSeparator();
menu->InsertItem( RID_BTN_EXPORT, m_strCtxExport ); menu->InsertItem( RID_BTN_EXPORT, m_strCtxExport );
}
bool updateUrl = deployment::UpdateInformationProvider::create(m_context)->
hasPredeterminedUpdateURL();
for (SvLBoxEntry * e = FirstSelected(); e != NULL; e = NextSelected(e))
{
if (isFirstLevelChild(e))
{
updateUrl = updateUrl ||
getPackage(e)->getUpdateInformationURLs().getLength() != 0;
}
else
{
updateUrl = false;
break;
}
}
if (updateUrl)
{
if (menu->GetItemCount() != 0)
menu->InsertSeparator();
menu->InsertItem( RID_BTN_CHECK_UPDATES, m_strCtxCheckUpdate );
}
return menu.release(); return menu.release();
} }
...@@ -597,6 +637,9 @@ void DialogImpl::TreeListBoxImpl::ExcecuteContextMenuAction( ...@@ -597,6 +637,9 @@ void DialogImpl::TreeListBoxImpl::ExcecuteContextMenuAction(
case RID_BTN_EXPORT: case RID_BTN_EXPORT:
m_dialog->m_exportButton->Click(); m_dialog->m_exportButton->Click();
break; break;
case RID_BTN_CHECK_UPDATES:
m_dialog->checkUpdates(true);
break;
default: default:
OSL_ENSURE( 0, "### forgot button entry?!" ); OSL_ENSURE( 0, "### forgot button entry?!" );
break; break;
...@@ -703,7 +746,7 @@ void DialogImpl::TreeListBoxImpl::RequestingChilds( SvLBoxEntry * pParent ) ...@@ -703,7 +746,7 @@ void DialogImpl::TreeListBoxImpl::RequestingChilds( SvLBoxEntry * pParent )
NodeImpl * parentNode = NodeImpl::get(pParent); NodeImpl * parentNode = NodeImpl::get(pParent);
const Reference<XCommandEnvironment> xCmdEnv( const Reference<XCommandEnvironment> xCmdEnv(
new ProgressCommandEnv( m_dialog, String(), OUString() ) ); new ProgressCommandEnv(m_context, m_dialog, String()) );
if (parentNode->m_xPackage.is()) { if (parentNode->m_xPackage.is()) {
packages = parentNode->m_xPackage->getBundle( packages = parentNode->m_xPackage->getBundle(
Reference<task::XAbortChannel>(), xCmdEnv ); Reference<task::XAbortChannel>(), xCmdEnv );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment