LCOV - code coverage report
Current view: top level - cui/source/options - optjava.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 562 0.0 %
Date: 2012-08-25 Functions: 0 62 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 1276 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #include "optjava.hxx"
      30                 :            : #include <dialmgr.hxx>
      31                 :            : 
      32                 :            : #include "optjava.hrc"
      33                 :            : #include <cuires.hrc>
      34                 :            : #include "helpid.hrc"
      35                 :            : #include <vcl/svapp.hxx>
      36                 :            : #include <vcl/help.hxx>
      37                 :            : #include <tools/urlobj.hxx>
      38                 :            : #include <vcl/msgbox.hxx>
      39                 :            : #include <vcl/waitobj.hxx>
      40                 :            : #include <unotools/pathoptions.hxx>
      41                 :            : #include <svtools/imagemgr.hxx>
      42                 :            : #include <sfx2/filedlghelper.hxx>
      43                 :            : #include <comphelper/processfactory.hxx>
      44                 :            : #include <comphelper/string.hxx>
      45                 :            : #include <ucbhelper/contentbroker.hxx>
      46                 :            : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
      47                 :            : #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
      48                 :            : #include <com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp>
      49                 :            : #include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
      50                 :            : #include <com/sun/star/ucb/XContentProvider.hpp>
      51                 :            : #include <jvmfwk/framework.h>
      52                 :            : 
      53                 :            : // define ----------------------------------------------------------------
      54                 :            : 
      55                 :            : #define CLASSPATH_DELIMITER SAL_PATHSEPARATOR
      56                 :            : #define BUTTON_BORDER       2
      57                 :            : #define RESET_TIMEOUT       300
      58                 :            : 
      59                 :            : using namespace ::com::sun::star::lang;
      60                 :            : using namespace ::com::sun::star::ucb;
      61                 :            : using namespace ::com::sun::star::ui::dialogs;
      62                 :            : using namespace ::com::sun::star::uno;
      63                 :            : 
      64                 :            : // -----------------------------------------------------------------------
      65                 :            : 
      66                 :          0 : bool areListsEqual( const Sequence< ::rtl::OUString >& rListA, const Sequence< ::rtl::OUString >& rListB )
      67                 :            : {
      68                 :          0 :     bool bRet = true;
      69                 :          0 :     const sal_Int32 nLen = rListA.getLength();
      70                 :            : 
      71         [ #  # ]:          0 :     if (  rListB.getLength() != nLen )
      72                 :          0 :         bRet = false;
      73                 :            :     else
      74                 :            :     {
      75                 :          0 :         const ::rtl::OUString* pStringA = rListA.getConstArray();
      76                 :          0 :         const ::rtl::OUString* pStringB = rListB.getConstArray();
      77                 :            : 
      78         [ #  # ]:          0 :         for ( sal_Int32 i = 0; i < nLen; ++i )
      79                 :            :         {
      80         [ #  # ]:          0 :             if ( *pStringA++ != *pStringB++ )
      81                 :            :             {
      82                 :          0 :                 bRet = false;
      83                 :          0 :                 break;
      84                 :            :             }
      85                 :            :         }
      86                 :            :     }
      87                 :            : 
      88                 :          0 :     return bRet;
      89                 :            : }
      90                 :            : 
      91                 :            : // class SvxJavaOptionsPage ----------------------------------------------
      92                 :            : 
      93                 :          0 : SvxJavaOptionsPage::SvxJavaOptionsPage( Window* pParent, const SfxItemSet& rSet ) :
      94                 :            : 
      95                 :          0 :     SfxTabPage( pParent, CUI_RES( RID_SVXPAGE_OPTIONS_JAVA ), rSet ),
      96                 :            : 
      97         [ #  # ]:          0 :     m_aJavaLine         ( this, CUI_RES( FL_JAVA ) ),
      98         [ #  # ]:          0 :     m_aJavaEnableCB     ( this, CUI_RES( CB_JAVA_ENABLE ) ),
      99         [ #  # ]:          0 :     m_aJavaFoundLabel   ( this, CUI_RES( FT_JAVA_FOUND ) ),
     100         [ #  # ]:          0 :     m_aJavaListContainer(this, CUI_RES(LB_JAVA)),
     101                 :            :     m_aJavaList(m_aJavaListContainer),
     102         [ #  # ]:          0 :     m_aJavaPathText     ( this, CUI_RES( FT_JAVA_PATH ) ),
     103         [ #  # ]:          0 :     m_aAddBtn           ( this, CUI_RES( PB_ADD ) ),
     104         [ #  # ]:          0 :     m_aParameterBtn     ( this, CUI_RES( PB_PARAMETER ) ),
     105         [ #  # ]:          0 :     m_aClassPathBtn     ( this, CUI_RES( PB_CLASSPATH ) ),
     106                 :            : 
     107                 :            :     m_pParamDlg         ( NULL ),
     108                 :            :     m_pPathDlg          ( NULL ),
     109                 :            :     m_parJavaInfo       ( NULL ),
     110                 :            :     m_parParameters     ( NULL ),
     111                 :            :     m_pClassPath        ( NULL ),
     112                 :            :     m_nInfoSize         ( 0 ),
     113                 :            :     m_nParamSize        ( 0 ),
     114         [ #  # ]:          0 :     m_sInstallText      (       CUI_RES( STR_INSTALLED_IN ) ),
     115         [ #  # ]:          0 :     m_sAccessibilityText(       CUI_RES( STR_ACCESSIBILITY ) ),
     116         [ #  # ]:          0 :     m_sAddDialogText    (       CUI_RES( STR_ADDDLGTEXT ) ),
     117                 :            : 
     118 [ #  # ][ #  # ]:          0 :     xDialogListener     ( new ::svt::DialogClosedListener() )
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     119                 :            : 
     120                 :            : {
     121         [ #  # ]:          0 :     m_aJavaEnableCB.SetClickHdl( LINK( this, SvxJavaOptionsPage, EnableHdl_Impl ) );
     122         [ #  # ]:          0 :     m_aJavaList.SetCheckButtonHdl( LINK( this, SvxJavaOptionsPage, CheckHdl_Impl ) );
     123         [ #  # ]:          0 :     m_aJavaList.SetSelectHdl( LINK( this, SvxJavaOptionsPage, SelectHdl_Impl ) );
     124         [ #  # ]:          0 :     m_aAddBtn.SetClickHdl( LINK( this, SvxJavaOptionsPage, AddHdl_Impl ) );
     125         [ #  # ]:          0 :     m_aParameterBtn.SetClickHdl( LINK( this, SvxJavaOptionsPage, ParameterHdl_Impl ) );
     126         [ #  # ]:          0 :     m_aClassPathBtn.SetClickHdl( LINK( this, SvxJavaOptionsPage, ClassPathHdl_Impl ) );
     127         [ #  # ]:          0 :     m_aResetTimer.SetTimeoutHdl( LINK( this, SvxJavaOptionsPage, ResetHdl_Impl ) );
     128         [ #  # ]:          0 :     m_aResetTimer.SetTimeout( RESET_TIMEOUT );
     129                 :            : 
     130                 :            :     static long aStaticTabs[]=
     131                 :            :     {
     132                 :            :         5, 0, 15, 90, 130, 300
     133                 :            :     };
     134                 :            : 
     135         [ #  # ]:          0 :     m_aJavaList.SvxSimpleTable::SetTabs( aStaticTabs );
     136                 :          0 :     rtl::OUStringBuffer sHeader;
     137         [ #  # ]:          0 :     sHeader.append('\t');
     138 [ #  # ][ #  # ]:          0 :     sHeader.append(CUI_RESSTR(STR_HEADER_VENDOR));
                 [ #  # ]
     139         [ #  # ]:          0 :     sHeader.append('\t');
     140 [ #  # ][ #  # ]:          0 :     sHeader.append(CUI_RESSTR(STR_HEADER_VERSION));
                 [ #  # ]
     141         [ #  # ]:          0 :     sHeader.append('\t');
     142 [ #  # ][ #  # ]:          0 :     sHeader.append(CUI_RESSTR(STR_HEADER_FEATURES));
                 [ #  # ]
     143         [ #  # ]:          0 :     sHeader.append('\t');
     144 [ #  # ][ #  # ]:          0 :     m_aJavaList.InsertHeaderEntry( sHeader.makeStringAndClear(), HEADERBAR_APPEND, HIB_LEFT );
     145                 :            : 
     146         [ #  # ]:          0 :     m_aJavaList.SetHelpId( HID_OPTIONS_JAVA_LIST );
     147                 :            : 
     148         [ #  # ]:          0 :     FreeResource();
     149                 :            : 
     150 [ #  # ][ #  # ]:          0 :     xDialogListener->SetDialogClosedLink( LINK( this, SvxJavaOptionsPage, DialogClosedHdl ) );
     151                 :            : 
     152         [ #  # ]:          0 :     EnableHdl_Impl( &m_aJavaEnableCB );
     153         [ #  # ]:          0 :     jfw_lock();
     154                 :            : 
     155                 :            :     //check if the text fits into the class path button
     156                 :          0 :     Size aButtonSize = m_aClassPathBtn.GetOutputSizePixel();
     157 [ #  # ][ #  # ]:          0 :     sal_Int32 nTextWidth = m_aClassPathBtn.GetTextWidth(m_aClassPathBtn.GetText());
                 [ #  # ]
     158                 :            :     //add some additional space
     159                 :          0 :     sal_Int32 nDiff = nTextWidth + 4 - aButtonSize.Width();
     160         [ #  # ]:          0 :     if( nDiff > 0)
     161                 :            :     {
     162         [ #  # ]:          0 :         Point aPos(m_aClassPathBtn.GetPosPixel());
     163                 :          0 :         aPos.X() -= nDiff;
     164                 :          0 :         aButtonSize.Width() += nDiff;
     165         [ #  # ]:          0 :         m_aClassPathBtn.SetPosSizePixel(aPos, aButtonSize);
     166         [ #  # ]:          0 :         aPos = m_aAddBtn.GetPosPixel();
     167                 :          0 :         aPos.X() -= nDiff;
     168         [ #  # ]:          0 :         m_aAddBtn.SetPosSizePixel(aPos, aButtonSize);
     169         [ #  # ]:          0 :         aPos = m_aParameterBtn.GetPosPixel();
     170                 :          0 :         aPos.X() -= nDiff;
     171         [ #  # ]:          0 :         m_aParameterBtn.SetPosSizePixel(aPos, aButtonSize);
     172         [ #  # ]:          0 :         Size aSize = m_aJavaListContainer.GetSizePixel();
     173                 :          0 :         aSize.Width() -= nDiff;
     174         [ #  # ]:          0 :         m_aJavaListContainer.SetSizePixel(aSize);
     175                 :          0 :     }
     176                 :          0 : }
     177                 :            : 
     178                 :            : // -----------------------------------------------------------------------
     179                 :            : 
     180 [ #  # ][ #  # ]:          0 : SvxJavaOptionsPage::~SvxJavaOptionsPage()
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     181                 :            : {
     182 [ #  # ][ #  # ]:          0 :     delete m_pParamDlg;
     183 [ #  # ][ #  # ]:          0 :     delete m_pPathDlg;
     184         [ #  # ]:          0 :     ClearJavaInfo();
     185                 :          0 :     std::vector< JavaInfo* >::iterator pIter;
     186 [ #  # ][ #  # ]:          0 :     for ( pIter = m_aAddedInfos.begin(); pIter != m_aAddedInfos.end(); ++pIter )
     187                 :            :     {
     188                 :          0 :         JavaInfo* pInfo = *pIter;
     189         [ #  # ]:          0 :         jfw_freeJavaInfo( pInfo );
     190                 :            :     }
     191                 :            : 
     192         [ #  # ]:          0 :     jfw_unlock();
     193         [ #  # ]:          0 : }
     194                 :            : 
     195                 :            : // -----------------------------------------------------------------------
     196                 :            : 
     197                 :          0 : IMPL_LINK_NOARG(SvxJavaOptionsPage, EnableHdl_Impl)
     198                 :            : {
     199                 :          0 :     sal_Bool bEnable = m_aJavaEnableCB.IsChecked();
     200                 :          0 :     m_aJavaFoundLabel.Enable( bEnable );
     201                 :          0 :     m_aJavaPathText.Enable( bEnable );
     202                 :          0 :     m_aAddBtn.Enable( bEnable );
     203                 :          0 :     m_aParameterBtn.Enable( bEnable );
     204                 :          0 :     m_aClassPathBtn.Enable( bEnable );
     205                 :            : 
     206         [ #  # ]:          0 :     bEnable ? m_aJavaList.EnableTable() : m_aJavaList.DisableTable();
     207                 :            : 
     208                 :          0 :     return 0;
     209                 :            : }
     210                 :            : 
     211                 :            : // -----------------------------------------------------------------------
     212                 :            : 
     213                 :          0 : IMPL_LINK( SvxJavaOptionsPage, CheckHdl_Impl, SvxSimpleTable *, pList )
     214                 :            : {
     215                 :          0 :     SvLBoxEntry* pEntry = pList ? m_aJavaList.GetEntry( m_aJavaList.GetCurMousePoint() )
     216         [ #  # ]:          0 :                                 : m_aJavaList.FirstSelected();
     217         [ #  # ]:          0 :     if ( pEntry )
     218                 :          0 :         m_aJavaList.HandleEntryChecked( pEntry );
     219                 :          0 :     return 0;
     220                 :            : }
     221                 :            : 
     222                 :            : // -----------------------------------------------------------------------
     223                 :            : 
     224                 :          0 : IMPL_LINK_NOARG(SvxJavaOptionsPage, SelectHdl_Impl)
     225                 :            : {
     226                 :            :     // set installation directory info
     227         [ #  # ]:          0 :     SvLBoxEntry* pEntry = m_aJavaList.FirstSelected();
     228                 :            :     DBG_ASSERT( pEntry, "SvxJavaOptionsPage::SelectHdl_Impl(): no entry" );
     229                 :          0 :     String* pLocation = static_cast< String* >( pEntry->GetUserData() );
     230                 :            :     DBG_ASSERT( pLocation, "invalid location string" );
     231         [ #  # ]:          0 :     String sInfo = m_sInstallText;
     232         [ #  # ]:          0 :     if ( pLocation )
     233         [ #  # ]:          0 :         sInfo += *pLocation;
     234         [ #  # ]:          0 :     m_aJavaPathText.SetText( sInfo );
     235         [ #  # ]:          0 :     return 0;
     236                 :            : }
     237                 :            : 
     238                 :            : // -----------------------------------------------------------------------
     239                 :            : 
     240                 :          0 : IMPL_LINK_NOARG(SvxJavaOptionsPage, AddHdl_Impl)
     241                 :            : {
     242                 :            :     try
     243                 :            :     {
     244         [ #  # ]:          0 :         Reference < XMultiServiceFactory > xMgr( ::comphelper::getProcessServiceFactory() );
     245                 :            :         xFolderPicker = Reference< XFolderPicker >(
     246 [ #  # ][ #  # ]:          0 :             xMgr->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ui.dialogs.FolderPicker") ) ), UNO_QUERY );
         [ #  # ][ #  # ]
                 [ #  # ]
     247                 :            : 
     248 [ #  # ][ #  # ]:          0 :         String sWorkFolder = SvtPathOptions().GetWorkPath();
         [ #  # ][ #  # ]
     249 [ #  # ][ #  # ]:          0 :         xFolderPicker->setDisplayDirectory( sWorkFolder );
                 [ #  # ]
     250 [ #  # ][ #  # ]:          0 :         xFolderPicker->setDescription( m_sAddDialogText );
                 [ #  # ]
     251                 :            : 
     252         [ #  # ]:          0 :         Reference< XAsynchronousExecutableDialog > xAsyncDlg( xFolderPicker, UNO_QUERY );
     253         [ #  # ]:          0 :         if ( xAsyncDlg.is() )
     254 [ #  # ][ #  # ]:          0 :             xAsyncDlg->startExecuteModal( xDialogListener.get() );
         [ #  # ][ #  # ]
                 [ #  # ]
     255 [ #  # ][ #  # ]:          0 :         else if ( xFolderPicker.is() && xFolderPicker->execute() == ExecutableDialogResults::OK )
         [ #  # ][ #  # ]
                 [ #  # ]
     256 [ #  # ][ #  # ]:          0 :             AddFolder( xFolderPicker->getDirectory() );
         [ #  # ][ #  # ]
                 [ #  # ]
     257                 :            :     }
     258                 :          0 :     catch (const Exception&)
     259                 :            :     {
     260                 :            :         SAL_WARN( "cui.options", "SvxJavaOptionsPage::AddHdl_Impl(): caught exception" );
     261                 :            :     }
     262                 :            : 
     263                 :          0 :     return 0;
     264                 :            : }
     265                 :            : 
     266                 :            : // -----------------------------------------------------------------------
     267                 :            : 
     268                 :          0 : IMPL_LINK_NOARG(SvxJavaOptionsPage, ParameterHdl_Impl)
     269                 :            : {
     270         [ #  # ]:          0 :     Sequence< ::rtl::OUString > aParameterList;
     271         [ #  # ]:          0 :     if ( !m_pParamDlg )
     272                 :            :     {
     273 [ #  # ][ #  # ]:          0 :         m_pParamDlg = new SvxJavaParameterDlg( this );
     274         [ #  # ]:          0 :         javaFrameworkError eErr = jfw_getVMParameters( &m_parParameters, &m_nParamSize );
     275 [ #  # ][ #  # ]:          0 :         if ( JFW_E_NONE == eErr && m_parParameters && m_nParamSize > 0 )
                 [ #  # ]
     276                 :            :         {
     277                 :          0 :             rtl_uString** pParamArr = m_parParameters;
     278         [ #  # ]:          0 :             aParameterList.realloc( m_nParamSize );
     279         [ #  # ]:          0 :             ::rtl::OUString* pParams = aParameterList.getArray();
     280         [ #  # ]:          0 :             for ( sal_Int32 i = 0; i < m_nParamSize; ++i )
     281                 :            :             {
     282                 :          0 :                 rtl_uString* pParam = *pParamArr++;
     283                 :          0 :                 pParams[i] = ::rtl::OUString( pParam );
     284                 :            :             }
     285         [ #  # ]:          0 :             m_pParamDlg->SetParameters( aParameterList );
     286                 :            :         }
     287                 :            :     }
     288                 :            :     else
     289 [ #  # ][ #  # ]:          0 :         aParameterList = m_pParamDlg->GetParameters();
                 [ #  # ]
     290                 :            : 
     291 [ #  # ][ #  # ]:          0 :     if ( m_pParamDlg->Execute() == RET_OK )
     292                 :            :     {
     293 [ #  # ][ #  # ]:          0 :         if ( !areListsEqual( aParameterList, m_pParamDlg->GetParameters() ) )
         [ #  # ][ #  # ]
     294                 :            :         {
     295 [ #  # ][ #  # ]:          0 :             aParameterList = m_pParamDlg->GetParameters();
                 [ #  # ]
     296                 :          0 :             sal_Bool bRunning = sal_False;
     297         [ #  # ]:          0 :             javaFrameworkError eErr = jfw_isVMRunning( &bRunning );
     298                 :            :             DBG_ASSERT( JFW_E_NONE == eErr,
     299                 :            :                         "SvxJavaOptionsPage::ParameterHdl_Impl(): error in jfw_isVMRunning" );
     300                 :            :             (void)eErr;
     301         [ #  # ]:          0 :             if ( bRunning )
     302                 :            :             {
     303 [ #  # ][ #  # ]:          0 :                 WarningBox aWarnBox( this, CUI_RES( RID_SVX_MSGBOX_OPTIONS_RESTART ) );
     304 [ #  # ][ #  # ]:          0 :                 aWarnBox.Execute();
     305                 :            :             }
     306                 :            :         }
     307                 :            :     }
     308                 :            :     else
     309         [ #  # ]:          0 :         m_pParamDlg->SetParameters( aParameterList );
     310                 :            : 
     311         [ #  # ]:          0 :     return 0;
     312                 :            : }
     313                 :            : 
     314                 :            : // -----------------------------------------------------------------------
     315                 :            : 
     316                 :          0 : IMPL_LINK_NOARG(SvxJavaOptionsPage, ClassPathHdl_Impl)
     317                 :            : {
     318         [ #  # ]:          0 :     String sClassPath;
     319                 :            : 
     320         [ #  # ]:          0 :     if ( !m_pPathDlg )
     321                 :            :     {
     322 [ #  # ][ #  # ]:          0 :           m_pPathDlg = new SvxJavaClassPathDlg( this );
     323         [ #  # ]:          0 :         javaFrameworkError eErr = jfw_getUserClassPath( &m_pClassPath );
     324 [ #  # ][ #  # ]:          0 :         if ( JFW_E_NONE == eErr && m_pClassPath )
     325                 :            :         {
     326 [ #  # ][ #  # ]:          0 :             sClassPath = String( ::rtl::OUString( m_pClassPath ) );
                 [ #  # ]
     327         [ #  # ]:          0 :             m_pPathDlg->SetClassPath( sClassPath );
     328                 :            :         }
     329                 :            :     }
     330                 :            :     else
     331 [ #  # ][ #  # ]:          0 :         sClassPath = m_pPathDlg->GetClassPath();
                 [ #  # ]
     332                 :            : 
     333         [ #  # ]:          0 :     m_pPathDlg->SetFocus();
     334 [ #  # ][ #  # ]:          0 :     if ( m_pPathDlg->Execute() == RET_OK )
     335                 :            :     {
     336                 :            : 
     337 [ #  # ][ #  # ]:          0 :         if ( m_pPathDlg->GetClassPath() != sClassPath )
         [ #  # ][ #  # ]
     338                 :            :         {
     339 [ #  # ][ #  # ]:          0 :             sClassPath = m_pPathDlg->GetClassPath();
                 [ #  # ]
     340                 :          0 :             sal_Bool bRunning = sal_False;
     341         [ #  # ]:          0 :             javaFrameworkError eErr = jfw_isVMRunning( &bRunning );
     342                 :            :             DBG_ASSERT( JFW_E_NONE == eErr,
     343                 :            :                         "SvxJavaOptionsPage::ParameterHdl_Impl(): error in jfw_isVMRunning" );
     344                 :            :             (void)eErr;
     345         [ #  # ]:          0 :             if ( bRunning )
     346                 :            :             {
     347 [ #  # ][ #  # ]:          0 :                 WarningBox aWarnBox( this, CUI_RES( RID_SVX_MSGBOX_OPTIONS_RESTART ) );
     348 [ #  # ][ #  # ]:          0 :                 aWarnBox.Execute();
     349                 :            :             }
     350                 :            :         }
     351                 :            :     }
     352                 :            :     else
     353         [ #  # ]:          0 :         m_pPathDlg->SetClassPath( sClassPath );
     354                 :            : 
     355         [ #  # ]:          0 :     return 0;
     356                 :            : }
     357                 :            : 
     358                 :            : // -----------------------------------------------------------------------
     359                 :            : 
     360                 :          0 : IMPL_LINK_NOARG(SvxJavaOptionsPage, ResetHdl_Impl)
     361                 :            : {
     362                 :          0 :     LoadJREs();
     363                 :          0 :     return 0;
     364                 :            : }
     365                 :            : 
     366                 :            : // -----------------------------------------------------------------------
     367                 :            : 
     368                 :          0 : IMPL_LINK_NOARG(SvxJavaOptionsPage, StartFolderPickerHdl)
     369                 :            : {
     370                 :            :     try
     371                 :            :     {
     372         [ #  # ]:          0 :         Reference< XAsynchronousExecutableDialog > xAsyncDlg( xFolderPicker, UNO_QUERY );
     373         [ #  # ]:          0 :         if ( xAsyncDlg.is() )
     374 [ #  # ][ #  # ]:          0 :             xAsyncDlg->startExecuteModal( xDialogListener.get() );
         [ #  # ][ #  # ]
                 [ #  # ]
     375 [ #  # ][ #  # ]:          0 :         else if ( xFolderPicker.is() && xFolderPicker->execute() == ExecutableDialogResults::OK )
         [ #  # ][ #  # ]
                 [ #  # ]
     376 [ #  # ][ #  # ]:          0 :             AddFolder( xFolderPicker->getDirectory() );
         [ #  # ][ #  # ]
     377                 :            :     }
     378                 :          0 :     catch ( Exception& )
     379                 :            :     {
     380                 :            :         SAL_WARN( "cui.options", "SvxJavaOptionsPage::StartFolderPickerHdl(): caught exception" );
     381                 :            :     }
     382                 :            : 
     383                 :          0 :     return 0L;
     384                 :            : }
     385                 :            : 
     386                 :            : // -----------------------------------------------------------------------
     387                 :            : 
     388                 :          0 : IMPL_LINK( SvxJavaOptionsPage, DialogClosedHdl, DialogClosedEvent*, pEvt )
     389                 :            : {
     390         [ #  # ]:          0 :     if ( RET_OK == pEvt->DialogResult )
     391                 :            :     {
     392                 :            :         DBG_ASSERT( xFolderPicker.is() == sal_True, "SvxJavaOptionsPage::DialogClosedHdl(): no folder picker" );
     393                 :            : 
     394         [ #  # ]:          0 :         AddFolder( xFolderPicker->getDirectory() );
     395                 :            :     }
     396                 :          0 :     return 0L;
     397                 :            : }
     398                 :            : 
     399                 :            : // -----------------------------------------------------------------------
     400                 :            : 
     401                 :          0 : void SvxJavaOptionsPage::ClearJavaInfo()
     402                 :            : {
     403         [ #  # ]:          0 :     if ( m_parJavaInfo )
     404                 :            :     {
     405                 :          0 :         JavaInfo** parInfo = m_parJavaInfo;
     406         [ #  # ]:          0 :         for ( sal_Int32 i = 0; i < m_nInfoSize; ++i )
     407                 :            :         {
     408                 :          0 :             JavaInfo* pInfo = *parInfo++;
     409                 :          0 :             jfw_freeJavaInfo( pInfo );
     410                 :            :         }
     411                 :            : 
     412                 :          0 :         rtl_freeMemory( m_parJavaInfo );
     413                 :          0 :         m_parJavaInfo = NULL;
     414                 :          0 :         m_nInfoSize = 0;
     415                 :            :     }
     416                 :          0 : }
     417                 :            : 
     418                 :            : // -----------------------------------------------------------------------
     419                 :            : 
     420                 :          0 : void SvxJavaOptionsPage::ClearJavaList()
     421                 :            : {
     422                 :          0 :     SvLBoxEntry* pEntry = m_aJavaList.First();
     423         [ #  # ]:          0 :     while ( pEntry )
     424                 :            :     {
     425                 :          0 :         String* pLocation = static_cast< String* >( pEntry->GetUserData() );
     426         [ #  # ]:          0 :         delete pLocation;
     427                 :          0 :         pEntry = m_aJavaList.Next( pEntry );
     428                 :            :     }
     429                 :          0 :     m_aJavaList.Clear();
     430                 :          0 : }
     431                 :            : 
     432                 :            : // -----------------------------------------------------------------------
     433                 :            : 
     434                 :          0 : void SvxJavaOptionsPage::LoadJREs()
     435                 :            : {
     436         [ #  # ]:          0 :     WaitObject aWaitObj( &m_aJavaList );
     437         [ #  # ]:          0 :     javaFrameworkError eErr = jfw_findAllJREs( &m_parJavaInfo, &m_nInfoSize );
     438 [ #  # ][ #  # ]:          0 :     if ( JFW_E_NONE == eErr && m_parJavaInfo )
     439                 :            :     {
     440                 :          0 :         JavaInfo** parInfo = m_parJavaInfo;
     441         [ #  # ]:          0 :         for ( sal_Int32 i = 0; i < m_nInfoSize; ++i )
     442                 :            :         {
     443                 :          0 :             JavaInfo* pInfo = *parInfo++;
     444         [ #  # ]:          0 :             AddJRE( pInfo );
     445                 :            :         }
     446                 :            :     }
     447                 :            : 
     448                 :          0 :     std::vector< JavaInfo* >::iterator pIter;
     449 [ #  # ][ #  # ]:          0 :     for ( pIter = m_aAddedInfos.begin(); pIter != m_aAddedInfos.end(); ++pIter )
     450                 :            :     {
     451                 :          0 :         JavaInfo* pInfo = *pIter;
     452         [ #  # ]:          0 :         AddJRE( pInfo );
     453                 :            :     }
     454                 :            : 
     455                 :          0 :     JavaInfo* pSelectedJava = NULL;
     456         [ #  # ]:          0 :     eErr = jfw_getSelectedJRE( &pSelectedJava );
     457 [ #  # ][ #  # ]:          0 :     if ( JFW_E_NONE == eErr && pSelectedJava )
     458                 :            :     {
     459                 :          0 :         JavaInfo** parInfo = m_parJavaInfo;
     460         [ #  # ]:          0 :         for ( sal_Int32 i = 0; i < m_nInfoSize; ++i )
     461                 :            :         {
     462                 :          0 :             JavaInfo* pCmpInfo = *parInfo++;
     463 [ #  # ][ #  # ]:          0 :             if ( jfw_areEqualJavaInfo( pCmpInfo, pSelectedJava ) )
     464                 :            :             {
     465         [ #  # ]:          0 :                 SvLBoxEntry* pEntry = m_aJavaList.GetEntry(i);
     466         [ #  # ]:          0 :                 if ( pEntry )
     467         [ #  # ]:          0 :                     m_aJavaList.HandleEntryChecked( pEntry );
     468                 :          0 :                 break;
     469                 :            :             }
     470                 :            :         }
     471                 :            :     }
     472                 :            : 
     473 [ #  # ][ #  # ]:          0 :     jfw_freeJavaInfo( pSelectedJava );
     474                 :          0 : }
     475                 :            : 
     476                 :            : // -----------------------------------------------------------------------
     477                 :            : 
     478                 :          0 : void SvxJavaOptionsPage::AddJRE( JavaInfo* _pInfo )
     479                 :            : {
     480                 :          0 :     rtl::OUStringBuffer sEntry;
     481         [ #  # ]:          0 :     sEntry.append('\t');
     482         [ #  # ]:          0 :     sEntry.append(_pInfo->sVendor);
     483         [ #  # ]:          0 :     sEntry.append('\t');
     484         [ #  # ]:          0 :     sEntry.append(_pInfo->sVersion);
     485         [ #  # ]:          0 :     sEntry.append('\t');
     486         [ #  # ]:          0 :     if ( ( _pInfo->nFeatures & JFW_FEATURE_ACCESSBRIDGE ) == JFW_FEATURE_ACCESSBRIDGE )
     487 [ #  # ][ #  # ]:          0 :         sEntry.append(m_sAccessibilityText);
     488 [ #  # ][ #  # ]:          0 :     SvLBoxEntry* pEntry = m_aJavaList.InsertEntry(sEntry.makeStringAndClear());
         [ #  # ][ #  # ]
     489         [ #  # ]:          0 :     INetURLObject aLocObj( ::rtl::OUString( _pInfo->sLocation ) );
     490 [ #  # ][ #  # ]:          0 :     String* pLocation = new String( aLocObj.getFSysPath( INetURLObject::FSYS_DETECT ) );
                 [ #  # ]
     491         [ #  # ]:          0 :     pEntry->SetUserData( pLocation );
     492                 :          0 : }
     493                 :            : 
     494                 :            : // -----------------------------------------------------------------------
     495                 :            : 
     496                 :          0 : void SvxJavaOptionsPage::HandleCheckEntry( SvLBoxEntry* _pEntry )
     497                 :            : {
     498                 :          0 :     m_aJavaList.Select( _pEntry, sal_True );
     499                 :          0 :     SvButtonState eState = m_aJavaList.GetCheckButtonState( _pEntry );
     500                 :            : 
     501         [ #  # ]:          0 :     if ( SV_BUTTON_CHECKED == eState )
     502                 :            :     {
     503                 :            :         // we have radio button behavior -> so uncheck the other entries
     504                 :          0 :         SvLBoxEntry* pEntry = m_aJavaList.First();
     505         [ #  # ]:          0 :         while ( pEntry )
     506                 :            :         {
     507         [ #  # ]:          0 :             if ( pEntry != _pEntry )
     508                 :          0 :                 m_aJavaList.SetCheckButtonState( pEntry, SV_BUTTON_UNCHECKED );
     509                 :          0 :             pEntry = m_aJavaList.Next( pEntry );
     510                 :            :         }
     511                 :            :     }
     512                 :            :     else
     513                 :          0 :         m_aJavaList.SetCheckButtonState( _pEntry, SV_BUTTON_CHECKED );
     514                 :          0 : }
     515                 :            : 
     516                 :            : // -----------------------------------------------------------------------
     517                 :            : 
     518                 :          0 : void SvxJavaOptionsPage::AddFolder( const ::rtl::OUString& _rFolder )
     519                 :            : {
     520                 :          0 :     bool bStartAgain = true;
     521                 :          0 :     JavaInfo* pInfo = NULL;
     522         [ #  # ]:          0 :     javaFrameworkError eErr = jfw_getJavaInfoByPath( _rFolder.pData, &pInfo );
     523 [ #  # ][ #  # ]:          0 :     if ( JFW_E_NONE == eErr && pInfo )
     524                 :            :     {
     525                 :          0 :         sal_Int32 nPos = 0;
     526                 :          0 :         bool bFound = false;
     527                 :          0 :         JavaInfo** parInfo = m_parJavaInfo;
     528         [ #  # ]:          0 :         for ( sal_Int32 i = 0; i < m_nInfoSize; ++i )
     529                 :            :         {
     530                 :          0 :             JavaInfo* pCmpInfo = *parInfo++;
     531 [ #  # ][ #  # ]:          0 :             if ( jfw_areEqualJavaInfo( pCmpInfo, pInfo ) )
     532                 :            :             {
     533                 :          0 :                 bFound = true;
     534                 :          0 :                 nPos = i;
     535                 :          0 :                 break;
     536                 :            :             }
     537                 :            :         }
     538                 :            : 
     539         [ #  # ]:          0 :         if ( !bFound )
     540                 :            :         {
     541                 :          0 :             std::vector< JavaInfo* >::iterator pIter;
     542 [ #  # ][ #  # ]:          0 :             for ( pIter = m_aAddedInfos.begin(); pIter != m_aAddedInfos.end(); ++pIter )
     543                 :            :             {
     544                 :          0 :                 JavaInfo* pCmpInfo = *pIter;
     545 [ #  # ][ #  # ]:          0 :                 if ( jfw_areEqualJavaInfo( pCmpInfo, pInfo ) )
     546                 :            :                 {
     547                 :          0 :                     bFound = true;
     548                 :          0 :                     break;
     549                 :            :                 }
     550                 :            :             }
     551                 :            :         }
     552                 :            : 
     553         [ #  # ]:          0 :         if ( !bFound )
     554                 :            :         {
     555         [ #  # ]:          0 :             jfw_addJRELocation( pInfo->sLocation );
     556         [ #  # ]:          0 :             AddJRE( pInfo );
     557         [ #  # ]:          0 :             m_aAddedInfos.push_back( pInfo );
     558                 :          0 :             nPos = m_aJavaList.GetEntryCount() - 1;
     559                 :            :         }
     560                 :            :         else
     561         [ #  # ]:          0 :             jfw_freeJavaInfo( pInfo );
     562                 :            : 
     563         [ #  # ]:          0 :         SvLBoxEntry* pEntry = m_aJavaList.GetEntry( nPos );
     564         [ #  # ]:          0 :         m_aJavaList.Select( pEntry );
     565         [ #  # ]:          0 :         m_aJavaList.SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
     566         [ #  # ]:          0 :         HandleCheckEntry( pEntry );
     567                 :          0 :         bStartAgain = false;
     568                 :            :     }
     569         [ #  # ]:          0 :     else if ( JFW_E_NOT_RECOGNIZED == eErr )
     570                 :            :     {
     571 [ #  # ][ #  # ]:          0 :         ErrorBox aErrBox( this, CUI_RES( RID_SVXERR_JRE_NOT_RECOGNIZED ) );
     572 [ #  # ][ #  # ]:          0 :         aErrBox.Execute();
     573                 :            :     }
     574         [ #  # ]:          0 :     else if ( JFW_E_FAILED_VERSION == eErr )
     575                 :            :     {
     576 [ #  # ][ #  # ]:          0 :         ErrorBox aErrBox( this, CUI_RES( RID_SVXERR_JRE_FAILED_VERSION ) );
     577 [ #  # ][ #  # ]:          0 :         aErrBox.Execute();
     578                 :            :     }
     579                 :            : 
     580         [ #  # ]:          0 :     if ( bStartAgain )
     581                 :            :     {
     582 [ #  # ][ #  # ]:          0 :         xFolderPicker->setDisplayDirectory( _rFolder );
     583 [ #  # ][ #  # ]:          0 :         Application::PostUserEvent( LINK( this, SvxJavaOptionsPage, StartFolderPickerHdl ) );
     584                 :            :     }
     585                 :          0 : }
     586                 :            : 
     587                 :            : // -----------------------------------------------------------------------
     588                 :            : 
     589                 :          0 : SfxTabPage* SvxJavaOptionsPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
     590                 :            : {
     591         [ #  # ]:          0 :     return ( new SvxJavaOptionsPage( pParent, rAttrSet ) );
     592                 :            : }
     593                 :            : 
     594                 :            : // -----------------------------------------------------------------------
     595                 :            : 
     596                 :          0 : sal_Bool SvxJavaOptionsPage::FillItemSet( SfxItemSet& /*rCoreSet*/ )
     597                 :            : {
     598                 :          0 :     sal_Bool bModified = sal_False;
     599                 :          0 :     javaFrameworkError eErr = JFW_E_NONE;
     600         [ #  # ]:          0 :     if ( m_pParamDlg )
     601                 :            :     {
     602         [ #  # ]:          0 :         Sequence< ::rtl::OUString > aParamList = m_pParamDlg->GetParameters();
     603                 :          0 :         sal_Int32 i, nSize = aParamList.getLength();
     604                 :          0 :         rtl_uString** pParamArr = (rtl_uString**)rtl_allocateMemory( sizeof(rtl_uString*) * nSize );
     605                 :          0 :         rtl_uString** pParamArrIter = pParamArr;
     606                 :          0 :         const ::rtl::OUString* pList = aParamList.getConstArray();
     607         [ #  # ]:          0 :         for ( i = 0; i < nSize; ++i )
     608                 :          0 :             pParamArr[i] = pList[i].pData;
     609         [ #  # ]:          0 :         eErr = jfw_setVMParameters( pParamArrIter, nSize );
     610                 :            :         DBG_ASSERT( JFW_E_NONE == eErr,
     611                 :            :                     "SvxJavaOptionsPage::FillItemSet(): error in jfw_setVMParameters" );
     612                 :          0 :         pParamArrIter = pParamArr;
     613                 :          0 :         rtl_freeMemory( pParamArr );
     614         [ #  # ]:          0 :         bModified = sal_True;
     615                 :            :     }
     616                 :            : 
     617         [ #  # ]:          0 :     if ( m_pPathDlg )
     618                 :            :     {
     619 [ #  # ][ #  # ]:          0 :         ::rtl::OUString sPath( m_pPathDlg->GetClassPath() );
                 [ #  # ]
     620 [ #  # ][ #  # ]:          0 :         if ( m_pPathDlg->GetOldPath() != String( sPath ) )
         [ #  # ][ #  # ]
     621                 :            :         {
     622         [ #  # ]:          0 :             eErr = jfw_setUserClassPath( sPath.pData );
     623                 :            :             DBG_ASSERT( JFW_E_NONE == eErr,
     624                 :            :                         "SvxJavaOptionsPage::FillItemSet(): error in jfw_setUserClassPath" );
     625                 :          0 :             bModified = sal_True;
     626                 :          0 :         }
     627                 :            :     }
     628                 :            : 
     629                 :          0 :     sal_uLong nCount = m_aJavaList.GetEntryCount();
     630         [ #  # ]:          0 :     for ( sal_uLong i = 0; i < nCount; ++i )
     631                 :            :     {
     632 [ #  # ][ #  # ]:          0 :         if ( m_aJavaList.GetCheckButtonState( m_aJavaList.GetEntry(i) ) == SV_BUTTON_CHECKED )
                 [ #  # ]
     633                 :            :         {
     634                 :          0 :             JavaInfo* pInfo = NULL;
     635         [ #  # ]:          0 :             if ( i < static_cast< sal_uLong >( m_nInfoSize ) )
     636                 :          0 :                 pInfo = m_parJavaInfo[i];
     637                 :            :             else
     638                 :          0 :                 pInfo = m_aAddedInfos[ i - m_nInfoSize ];
     639                 :            : 
     640                 :          0 :             JavaInfo* pSelectedJava = NULL;
     641         [ #  # ]:          0 :             eErr = jfw_getSelectedJRE( &pSelectedJava );
     642 [ #  # ][ #  # ]:          0 :             if ( JFW_E_NONE == eErr || JFW_E_INVALID_SETTINGS == eErr )
     643                 :            :             {
     644 [ #  # ][ #  # ]:          0 :                 if (pSelectedJava == NULL || !jfw_areEqualJavaInfo( pInfo, pSelectedJava ) )
         [ #  # ][ #  # ]
     645                 :            :                 {
     646                 :          0 :                     sal_Bool bRunning = sal_False;
     647         [ #  # ]:          0 :                     eErr = jfw_isVMRunning( &bRunning );
     648                 :            :                     DBG_ASSERT( JFW_E_NONE == eErr,
     649                 :            :                                 "SvxJavaOptionsPage::FillItemSet(): error in jfw_isVMRunning" );
     650 [ #  # ][ #  # ]:          0 :                     if ( bRunning ||
     651                 :            :                         ( ( pInfo->nRequirements & JFW_REQUIRE_NEEDRESTART ) == JFW_REQUIRE_NEEDRESTART ) )
     652                 :            :                     {
     653 [ #  # ][ #  # ]:          0 :                         WarningBox aWarnBox( this, CUI_RES( RID_SVX_MSGBOX_JAVA_RESTART ) );
     654 [ #  # ][ #  # ]:          0 :                         aWarnBox.Execute();
     655                 :            :                     }
     656                 :            : 
     657         [ #  # ]:          0 :                     eErr = jfw_setSelectedJRE( pInfo );
     658                 :            :                     DBG_ASSERT( JFW_E_NONE == eErr,
     659                 :            :                                 "SvxJavaOptionsPage::FillItemSet(): error in jfw_setSelectedJRE" );
     660                 :          0 :                     bModified = sal_True;
     661                 :            :                 }
     662                 :            :             }
     663         [ #  # ]:          0 :             jfw_freeJavaInfo( pSelectedJava );
     664                 :            :             break;
     665                 :            :         }
     666                 :            :     }
     667                 :            : 
     668                 :          0 :     sal_Bool bEnabled = sal_False;
     669         [ #  # ]:          0 :     eErr = jfw_getEnabled( &bEnabled );
     670                 :            :     DBG_ASSERT( JFW_E_NONE == eErr,
     671                 :            :                 "SvxJavaOptionsPage::FillItemSet(): error in jfw_getEnabled" );
     672 [ #  # ][ #  # ]:          0 :     if ( bEnabled != m_aJavaEnableCB.IsChecked() )
     673                 :            :     {
     674 [ #  # ][ #  # ]:          0 :         eErr = jfw_setEnabled( m_aJavaEnableCB.IsChecked() );
     675                 :            :         DBG_ASSERT( JFW_E_NONE == eErr,
     676                 :            :                     "SvxJavaOptionsPage::FillItemSet(): error in jfw_setEnabled" );
     677                 :          0 :         bModified = sal_True;
     678                 :            :     }
     679                 :            : 
     680                 :          0 :     return bModified;
     681                 :            : }
     682                 :            : 
     683                 :            : // -----------------------------------------------------------------------
     684                 :            : 
     685                 :          0 : void SvxJavaOptionsPage::Reset( const SfxItemSet& /*rSet*/ )
     686                 :            : {
     687         [ #  # ]:          0 :     ClearJavaInfo();
     688         [ #  # ]:          0 :     ClearJavaList();
     689                 :            : 
     690                 :          0 :     sal_Bool bEnabled = sal_False;
     691         [ #  # ]:          0 :     javaFrameworkError eErr = jfw_getEnabled( &bEnabled );
     692         [ #  # ]:          0 :     if ( eErr != JFW_E_NONE )
     693                 :          0 :         bEnabled = sal_False;
     694         [ #  # ]:          0 :     m_aJavaEnableCB.Check( bEnabled );
     695         [ #  # ]:          0 :     EnableHdl_Impl( &m_aJavaEnableCB );
     696                 :            : 
     697         [ #  # ]:          0 :     m_aResetTimer.Start();
     698                 :          0 : }
     699                 :            : 
     700                 :            : // -----------------------------------------------------------------------
     701                 :            : 
     702                 :          0 : void SvxJavaOptionsPage::FillUserData()
     703                 :            : {
     704         [ #  # ]:          0 :     String aUserData;
     705 [ #  # ][ #  # ]:          0 :     SetUserData( aUserData );
     706                 :          0 : }
     707                 :            : 
     708                 :            : // class SvxJavaParameterDlg ---------------------------------------------
     709                 :            : 
     710                 :          0 : SvxJavaParameterDlg::SvxJavaParameterDlg( Window* pParent ) :
     711                 :            : 
     712                 :          0 :     ModalDialog( pParent, CUI_RES( RID_SVXDLG_JAVA_PARAMETER ) ),
     713                 :            : 
     714         [ #  # ]:          0 :     m_aParameterLabel   ( this, CUI_RES( FT_PARAMETER ) ),
     715         [ #  # ]:          0 :     m_aParameterEdit    ( this, CUI_RES( ED_PARAMETER ) ),
     716         [ #  # ]:          0 :     m_aAssignBtn        ( this, CUI_RES( PB_ASSIGN ) ),
     717         [ #  # ]:          0 :     m_aAssignedLabel    ( this, CUI_RES( FT_ASSIGNED ) ),
     718         [ #  # ]:          0 :     m_aAssignedList     ( this, CUI_RES( LB_ASSIGNED ) ),
     719         [ #  # ]:          0 :     m_aExampleText      ( this, CUI_RES( FT_EXAMPLE ) ),
     720         [ #  # ]:          0 :     m_aRemoveBtn        ( this, CUI_RES( PB_REMOVE ) ),
     721         [ #  # ]:          0 :     m_aButtonsLine      ( this, CUI_RES( FL_BUTTONS ) ),
     722         [ #  # ]:          0 :     m_aOKBtn            ( this, CUI_RES( PB_PARAMETER_OK ) ),
     723         [ #  # ]:          0 :     m_aCancelBtn        ( this, CUI_RES( PB_PARAMETER_ESC ) ),
     724 [ #  # ][ #  # ]:          0 :     m_aHelpBtn          ( this, CUI_RES( PB_PARAMETER_HLP ) )
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     725                 :            : 
     726                 :            : {
     727         [ #  # ]:          0 :     FreeResource();
     728                 :            : 
     729         [ #  # ]:          0 :     m_aParameterEdit.SetModifyHdl( LINK( this, SvxJavaParameterDlg, ModifyHdl_Impl ) );
     730         [ #  # ]:          0 :     m_aAssignBtn.SetClickHdl( LINK( this, SvxJavaParameterDlg, AssignHdl_Impl ) );
     731         [ #  # ]:          0 :     m_aRemoveBtn.SetClickHdl( LINK( this, SvxJavaParameterDlg, RemoveHdl_Impl ) );
     732         [ #  # ]:          0 :     m_aAssignedList.SetSelectHdl( LINK( this, SvxJavaParameterDlg, SelectHdl_Impl ) );
     733         [ #  # ]:          0 :     m_aAssignedList.SetDoubleClickHdl( LINK( this, SvxJavaParameterDlg, DblClickHdl_Impl ) );
     734                 :            : 
     735         [ #  # ]:          0 :     ModifyHdl_Impl( &m_aParameterEdit );
     736         [ #  # ]:          0 :     EnableRemoveButton();
     737                 :          0 : }
     738                 :            : 
     739                 :            : // -----------------------------------------------------------------------
     740                 :            : 
     741 [ #  # ][ #  # ]:          0 : SvxJavaParameterDlg::~SvxJavaParameterDlg()
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     742                 :            : {
     743         [ #  # ]:          0 : }
     744                 :            : 
     745                 :            : // -----------------------------------------------------------------------
     746                 :            : 
     747                 :          0 : IMPL_LINK_NOARG(SvxJavaParameterDlg, ModifyHdl_Impl)
     748                 :            : {
     749 [ #  # ][ #  # ]:          0 :     rtl::OUString sParam = comphelper::string::strip(m_aParameterEdit.GetText(), ' ');
         [ #  # ][ #  # ]
     750         [ #  # ]:          0 :     m_aAssignBtn.Enable(!sParam.isEmpty());
     751                 :            : 
     752                 :          0 :     return 0;
     753                 :            : }
     754                 :            : 
     755                 :            : // -----------------------------------------------------------------------
     756                 :            : 
     757                 :          0 : IMPL_LINK_NOARG(SvxJavaParameterDlg, AssignHdl_Impl)
     758                 :            : {
     759 [ #  # ][ #  # ]:          0 :     rtl::OUString sParam = comphelper::string::strip(m_aParameterEdit.GetText(), ' ');
         [ #  # ][ #  # ]
     760         [ #  # ]:          0 :     if (!sParam.isEmpty())
     761                 :            :     {
     762 [ #  # ][ #  # ]:          0 :         sal_uInt16 nPos = m_aAssignedList.GetEntryPos( sParam );
                 [ #  # ]
     763         [ #  # ]:          0 :         if ( LISTBOX_ENTRY_NOTFOUND == nPos )
     764 [ #  # ][ #  # ]:          0 :             nPos = m_aAssignedList.InsertEntry( sParam );
                 [ #  # ]
     765         [ #  # ]:          0 :         m_aAssignedList.SelectEntryPos( nPos );
     766 [ #  # ][ #  # ]:          0 :         m_aParameterEdit.SetText( String() );
                 [ #  # ]
     767         [ #  # ]:          0 :         ModifyHdl_Impl( &m_aParameterEdit );
     768         [ #  # ]:          0 :         EnableRemoveButton();
     769                 :            :     }
     770                 :            : 
     771                 :          0 :     return 0;
     772                 :            : }
     773                 :            : 
     774                 :            : // -----------------------------------------------------------------------
     775                 :            : 
     776                 :          0 : IMPL_LINK_NOARG(SvxJavaParameterDlg, SelectHdl_Impl)
     777                 :            : {
     778                 :          0 :     EnableRemoveButton();
     779                 :          0 :     return 0;
     780                 :            : }
     781                 :            : 
     782                 :            : // -----------------------------------------------------------------------
     783                 :            : 
     784                 :          0 : IMPL_LINK_NOARG(SvxJavaParameterDlg, DblClickHdl_Impl)
     785                 :            : {
     786                 :          0 :     sal_uInt16 nPos = m_aAssignedList.GetSelectEntryPos();
     787         [ #  # ]:          0 :     if ( nPos != LISTBOX_ENTRY_NOTFOUND )
     788         [ #  # ]:          0 :         m_aParameterEdit.SetText( m_aAssignedList.GetEntry( nPos ) );
     789                 :          0 :     return 0;
     790                 :            : }
     791                 :            : 
     792                 :            : // -----------------------------------------------------------------------
     793                 :            : 
     794                 :          0 : IMPL_LINK_NOARG(SvxJavaParameterDlg, RemoveHdl_Impl)
     795                 :            : {
     796                 :          0 :     sal_uInt16 nPos = m_aAssignedList.GetSelectEntryPos();
     797         [ #  # ]:          0 :     if ( nPos != LISTBOX_ENTRY_NOTFOUND )
     798                 :            :     {
     799                 :          0 :         m_aAssignedList.RemoveEntry( nPos );
     800                 :          0 :         sal_uInt16 nCount = m_aAssignedList.GetEntryCount();
     801         [ #  # ]:          0 :         if ( nCount )
     802                 :            :         {
     803         [ #  # ]:          0 :             if ( nPos >= nCount )
     804                 :          0 :                 nPos = ( nCount - 1 );
     805                 :          0 :             m_aAssignedList.SelectEntryPos( nPos );
     806                 :            :         }
     807                 :            :     }
     808                 :          0 :     EnableRemoveButton();
     809                 :            : 
     810                 :          0 :     return 0;
     811                 :            : }
     812                 :            : 
     813                 :            : // -----------------------------------------------------------------------
     814                 :            : 
     815                 :          0 : short SvxJavaParameterDlg::Execute()
     816                 :            : {
     817                 :          0 :     m_aParameterEdit.GrabFocus();
     818                 :          0 :     m_aAssignedList.SetNoSelection();
     819                 :          0 :     return ModalDialog::Execute();
     820                 :            : }
     821                 :            : 
     822                 :            : // -----------------------------------------------------------------------
     823                 :            : 
     824                 :          0 : Sequence< ::rtl::OUString > SvxJavaParameterDlg::GetParameters() const
     825                 :            : {
     826                 :          0 :     sal_uInt16 nCount = m_aAssignedList.GetEntryCount();
     827                 :          0 :     Sequence< ::rtl::OUString > aParamList( nCount );
     828         [ #  # ]:          0 :     ::rtl::OUString* pArray = aParamList.getArray();
     829         [ #  # ]:          0 :      for ( sal_uInt16 i = 0; i < nCount; ++i )
     830 [ #  # ][ #  # ]:          0 :          pArray[i] = ::rtl::OUString( m_aAssignedList.GetEntry(i) );
                 [ #  # ]
     831                 :          0 :     return aParamList;
     832                 :            : }
     833                 :            : 
     834                 :            : // -----------------------------------------------------------------------
     835                 :            : 
     836                 :          0 : void SvxJavaParameterDlg::SetParameters( Sequence< ::rtl::OUString >& rParams )
     837                 :            : {
     838                 :          0 :     m_aAssignedList.Clear();
     839                 :          0 :     sal_uLong i, nCount = rParams.getLength();
     840                 :          0 :     const ::rtl::OUString* pArray = rParams.getConstArray();
     841         [ #  # ]:          0 :     for ( i = 0; i < nCount; ++i )
     842                 :            :     {
     843         [ #  # ]:          0 :         String sParam = String( *pArray++ );
     844         [ #  # ]:          0 :         m_aAssignedList.InsertEntry( sParam );
     845         [ #  # ]:          0 :     }
     846                 :          0 : }
     847                 :            : 
     848                 :            : // class SvxJavaClassPathDlg ---------------------------------------------
     849                 :            : 
     850                 :          0 : SvxJavaClassPathDlg::SvxJavaClassPathDlg( Window* pParent ) :
     851                 :            : 
     852                 :          0 :     ModalDialog( pParent, CUI_RES( RID_SVXDLG_JAVA_CLASSPATH ) ),
     853                 :            : 
     854         [ #  # ]:          0 :     m_aPathLabel        ( this, CUI_RES( FT_PATH ) ),
     855         [ #  # ]:          0 :     m_aPathList         ( this, CUI_RES( LB_PATH ) ),
     856         [ #  # ]:          0 :     m_aAddArchiveBtn    ( this, CUI_RES( PB_ADDARCHIVE ) ),
     857         [ #  # ]:          0 :     m_aAddPathBtn       ( this, CUI_RES( PB_ADDPATH ) ),
     858         [ #  # ]:          0 :     m_aRemoveBtn        ( this, CUI_RES( PB_REMOVE_PATH ) ),
     859         [ #  # ]:          0 :     m_aButtonsLine      ( this, CUI_RES( FL_PATH_BUTTONS ) ),
     860         [ #  # ]:          0 :     m_aOKBtn            ( this, CUI_RES( PB_PATH_OK ) ),
     861         [ #  # ]:          0 :     m_aCancelBtn        ( this, CUI_RES( PB_PATH_ESC ) ),
     862 [ #  # ][ #  # ]:          0 :     m_aHelpBtn          ( this, CUI_RES( PB_PATH_HLP ) )
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
     863                 :            : 
     864                 :            : {
     865         [ #  # ]:          0 :     FreeResource();
     866                 :            : 
     867         [ #  # ]:          0 :     m_aAddArchiveBtn.SetClickHdl( LINK( this, SvxJavaClassPathDlg, AddArchiveHdl_Impl ) );
     868         [ #  # ]:          0 :     m_aAddPathBtn.SetClickHdl( LINK( this, SvxJavaClassPathDlg, AddPathHdl_Impl ) );
     869         [ #  # ]:          0 :     m_aRemoveBtn.SetClickHdl( LINK( this, SvxJavaClassPathDlg, RemoveHdl_Impl ) );
     870         [ #  # ]:          0 :     m_aPathList.SetSelectHdl( LINK( this, SvxJavaClassPathDlg, SelectHdl_Impl ) );
     871                 :            : 
     872                 :            :     // check if the buttons text are not too wide otherwise we have to stretch the buttons
     873                 :            :     // and shrink the listbox
     874 [ #  # ][ #  # ]:          0 :     long nTxtWidth1 = m_aAddArchiveBtn.GetTextWidth( m_aAddArchiveBtn.GetText() );
                 [ #  # ]
     875 [ #  # ][ #  # ]:          0 :     long nTxtWidth2 = m_aAddPathBtn.GetTextWidth( m_aAddPathBtn.GetText() );
                 [ #  # ]
     876         [ #  # ]:          0 :     Size aBtnSz = m_aAddArchiveBtn.GetSizePixel();
     877 [ #  # ][ #  # ]:          0 :     if ( nTxtWidth1 > aBtnSz.Width() || nTxtWidth2 > aBtnSz.Width() )
                 [ #  # ]
     878                 :            :     {
     879         [ #  # ]:          0 :         long nW = ( nTxtWidth1 > aBtnSz.Width() ) ? nTxtWidth1 : nTxtWidth2;
     880                 :          0 :         long nDelta = nW - aBtnSz.Width() + 2 * BUTTON_BORDER;
     881                 :          0 :         aBtnSz.Width() += nDelta;
     882         [ #  # ]:          0 :         Point aBtnPnt = m_aAddArchiveBtn.GetPosPixel();
     883                 :          0 :         aBtnPnt.X() -= nDelta;
     884         [ #  # ]:          0 :         m_aAddArchiveBtn.SetPosSizePixel( aBtnPnt, aBtnSz );
     885         [ #  # ]:          0 :         aBtnPnt = m_aAddPathBtn.GetPosPixel();
     886                 :          0 :         aBtnPnt.X() -= nDelta;
     887         [ #  # ]:          0 :         m_aAddPathBtn.SetPosSizePixel( aBtnPnt, aBtnSz );
     888         [ #  # ]:          0 :         aBtnPnt = m_aRemoveBtn.GetPosPixel();
     889                 :          0 :         aBtnPnt.X() -= nDelta;
     890         [ #  # ]:          0 :         m_aRemoveBtn.SetPosSizePixel( aBtnPnt, aBtnSz );
     891         [ #  # ]:          0 :         Size aBoxSz = m_aPathList.GetSizePixel();
     892                 :          0 :         aBoxSz.Width() -= nDelta;
     893         [ #  # ]:          0 :         m_aPathList.SetSizePixel( aBoxSz );
     894                 :            :     }
     895                 :            : 
     896                 :            :     // set initial focus to path list
     897         [ #  # ]:          0 :     m_aPathList.GrabFocus();
     898                 :          0 : }
     899                 :            : 
     900                 :            : // -----------------------------------------------------------------------
     901                 :            : 
     902 [ #  # ][ #  # ]:          0 : SvxJavaClassPathDlg::~SvxJavaClassPathDlg()
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
     903                 :            : {
     904         [ #  # ]:          0 :     sal_uInt16 i, nCount = m_aPathList.GetEntryCount();
     905         [ #  # ]:          0 :     for ( i = 0; i < nCount; ++i )
     906 [ #  # ][ #  # ]:          0 :         delete static_cast< String* >( m_aPathList.GetEntryData(i) );
                 [ #  # ]
     907         [ #  # ]:          0 : }
     908                 :            : 
     909                 :            : // -----------------------------------------------------------------------
     910                 :            : 
     911                 :          0 : IMPL_LINK_NOARG(SvxJavaClassPathDlg, AddArchiveHdl_Impl)
     912                 :            : {
     913         [ #  # ]:          0 :     sfx2::FileDialogHelper aDlg( TemplateDescription::FILEOPEN_SIMPLE, 0 );
     914 [ #  # ][ #  # ]:          0 :     aDlg.SetTitle( CUI_RES( RID_SVXSTR_ARCHIVE_TITLE ) );
         [ #  # ][ #  # ]
     915 [ #  # ][ #  # ]:          0 :     aDlg.AddFilter( CUI_RES( RID_SVXSTR_ARCHIVE_HEADLINE ), rtl::OUString("*.jar;*.zip") );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
     916         [ #  # ]:          0 :     String sFolder;
     917 [ #  # ][ #  # ]:          0 :     if ( m_aPathList.GetSelectEntryCount() > 0 )
     918                 :            :     {
     919 [ #  # ][ #  # ]:          0 :         INetURLObject aObj( m_aPathList.GetSelectEntry(), INetURLObject::FSYS_DETECT );
         [ #  # ][ #  # ]
     920 [ #  # ][ #  # ]:          0 :         sFolder = aObj.GetMainURL( INetURLObject::NO_DECODE );
                 [ #  # ]
     921                 :            :     }
     922                 :            :     else
     923 [ #  # ][ #  # ]:          0 :          sFolder = SvtPathOptions().GetWorkPath();
         [ #  # ][ #  # ]
     924         [ #  # ]:          0 :     aDlg.SetDisplayDirectory( sFolder );
     925 [ #  # ][ #  # ]:          0 :     if ( aDlg.Execute() == ERRCODE_NONE )
     926                 :            :     {
     927         [ #  # ]:          0 :         String sURL = aDlg.GetPath();
     928 [ #  # ][ #  # ]:          0 :         INetURLObject aURL( sURL );
     929 [ #  # ][ #  # ]:          0 :         String sFile = aURL.getFSysPath( INetURLObject::FSYS_DETECT );
     930 [ #  # ][ #  # ]:          0 :         if ( !IsPathDuplicate( sURL ) )
     931                 :            :         {
     932 [ #  # ][ #  # ]:          0 :             sal_uInt16 nPos = m_aPathList.InsertEntry( sFile, SvFileInformationManager::GetImage( aURL, false ) );
                 [ #  # ]
     933         [ #  # ]:          0 :             m_aPathList.SelectEntryPos( nPos );
     934                 :            :         }
     935                 :            :         else
     936                 :            :         {
     937 [ #  # ][ #  # ]:          0 :             String sMsg( CUI_RES( RID_SVXSTR_MULTIFILE_DBL_ERR ) );
     938         [ #  # ]:          0 :             sMsg.SearchAndReplaceAscii( "%1", sFile );
     939 [ #  # ][ #  # ]:          0 :             ErrorBox( this, WB_OK, sMsg ).Execute();
         [ #  # ][ #  # ]
     940 [ #  # ][ #  # ]:          0 :         }
                 [ #  # ]
     941                 :            :     }
     942         [ #  # ]:          0 :     EnableRemoveButton();
     943 [ #  # ][ #  # ]:          0 :     return 0;
     944                 :            : }
     945                 :            : 
     946                 :            : // -----------------------------------------------------------------------
     947                 :            : 
     948                 :          0 : IMPL_LINK_NOARG(SvxJavaClassPathDlg, AddPathHdl_Impl)
     949                 :            : {
     950         [ #  # ]:          0 :     rtl::OUString sService( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FolderPicker" ) );
     951         [ #  # ]:          0 :     Reference < XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
     952 [ #  # ][ #  # ]:          0 :     Reference < XFolderPicker > xFolderPicker( xFactory->createInstance( sService ), UNO_QUERY );
                 [ #  # ]
     953                 :            : 
     954         [ #  # ]:          0 :     String sOldFolder;
     955 [ #  # ][ #  # ]:          0 :     if ( m_aPathList.GetSelectEntryCount() > 0 )
     956                 :            :     {
     957 [ #  # ][ #  # ]:          0 :         INetURLObject aObj( m_aPathList.GetSelectEntry(), INetURLObject::FSYS_DETECT );
         [ #  # ][ #  # ]
     958 [ #  # ][ #  # ]:          0 :         sOldFolder = aObj.GetMainURL( INetURLObject::NO_DECODE );
                 [ #  # ]
     959                 :            :     }
     960                 :            :     else
     961 [ #  # ][ #  # ]:          0 :         sOldFolder = SvtPathOptions().GetWorkPath();
         [ #  # ][ #  # ]
     962 [ #  # ][ #  # ]:          0 :     xFolderPicker->setDisplayDirectory( sOldFolder );
                 [ #  # ]
     963 [ #  # ][ #  # ]:          0 :     if ( xFolderPicker->execute() == ExecutableDialogResults::OK )
                 [ #  # ]
     964                 :            :     {
     965 [ #  # ][ #  # ]:          0 :         String sFolderURL( xFolderPicker->getDirectory() );
                 [ #  # ]
     966 [ #  # ][ #  # ]:          0 :         INetURLObject aURL( sFolderURL );
     967 [ #  # ][ #  # ]:          0 :         String sNewFolder = aURL.getFSysPath( INetURLObject::FSYS_DETECT );
     968 [ #  # ][ #  # ]:          0 :         if ( !IsPathDuplicate( sFolderURL ) )
     969                 :            :         {
     970 [ #  # ][ #  # ]:          0 :             sal_uInt16 nPos = m_aPathList.InsertEntry( sNewFolder, SvFileInformationManager::GetImage( aURL, false ) );
                 [ #  # ]
     971         [ #  # ]:          0 :             m_aPathList.SelectEntryPos( nPos );
     972                 :            :         }
     973                 :            :         else
     974                 :            :         {
     975 [ #  # ][ #  # ]:          0 :             String sMsg( CUI_RES( RID_SVXSTR_MULTIFILE_DBL_ERR ) );
     976         [ #  # ]:          0 :             sMsg.SearchAndReplaceAscii( "%1", sNewFolder );
     977 [ #  # ][ #  # ]:          0 :             ErrorBox( this, WB_OK, sMsg ).Execute();
         [ #  # ][ #  # ]
     978 [ #  # ][ #  # ]:          0 :         }
                 [ #  # ]
     979                 :            :     }
     980         [ #  # ]:          0 :     EnableRemoveButton();
     981         [ #  # ]:          0 :     return 0;
     982                 :            : }
     983                 :            : 
     984                 :            : // -----------------------------------------------------------------------
     985                 :            : 
     986                 :          0 : IMPL_LINK_NOARG(SvxJavaClassPathDlg, RemoveHdl_Impl)
     987                 :            : {
     988                 :          0 :     sal_uInt16 nPos = m_aPathList.GetSelectEntryPos();
     989         [ #  # ]:          0 :     if ( nPos != LISTBOX_ENTRY_NOTFOUND )
     990                 :            :     {
     991                 :          0 :         m_aPathList.RemoveEntry( nPos );
     992                 :          0 :         sal_uInt16 nCount = m_aPathList.GetEntryCount();
     993         [ #  # ]:          0 :         if ( nCount )
     994                 :            :         {
     995         [ #  # ]:          0 :             if ( nPos >= nCount )
     996                 :          0 :                 nPos = ( nCount - 1 );
     997                 :          0 :             m_aPathList.SelectEntryPos( nPos );
     998                 :            :         }
     999                 :            :     }
    1000                 :            : 
    1001                 :          0 :     EnableRemoveButton();
    1002                 :          0 :     return 0;
    1003                 :            : }
    1004                 :            : 
    1005                 :            : // -----------------------------------------------------------------------
    1006                 :            : 
    1007                 :          0 : IMPL_LINK_NOARG(SvxJavaClassPathDlg, SelectHdl_Impl)
    1008                 :            : {
    1009                 :          0 :     EnableRemoveButton();
    1010                 :          0 :     return 0;
    1011                 :            : }
    1012                 :            : 
    1013                 :            : // -----------------------------------------------------------------------
    1014                 :            : 
    1015                 :          0 : bool SvxJavaClassPathDlg::IsPathDuplicate( const String& _rPath )
    1016                 :            : {
    1017                 :          0 :     bool bRet = false;
    1018 [ #  # ][ #  # ]:          0 :     INetURLObject aFileObj( _rPath );
    1019         [ #  # ]:          0 :     sal_uInt16 nCount = m_aPathList.GetEntryCount();
    1020         [ #  # ]:          0 :     for ( sal_uInt16 i = 0; i < nCount; ++i )
    1021                 :            :     {
    1022 [ #  # ][ #  # ]:          0 :         INetURLObject aOtherObj( m_aPathList.GetEntry(i), INetURLObject::FSYS_DETECT );
         [ #  # ][ #  # ]
    1023 [ #  # ][ #  # ]:          0 :         if ( aOtherObj == aFileObj )
    1024                 :            :         {
    1025                 :          0 :             bRet = true;
    1026                 :            :             break;
    1027                 :            :         }
    1028 [ #  # ][ #  # ]:          0 :     }
    1029                 :            : 
    1030         [ #  # ]:          0 :     return bRet;
    1031                 :            : }
    1032                 :            : 
    1033                 :            : // -----------------------------------------------------------------------
    1034                 :            : 
    1035                 :          0 : String SvxJavaClassPathDlg::GetClassPath() const
    1036                 :            : {
    1037                 :          0 :     String sPath;
    1038         [ #  # ]:          0 :     sal_uInt16 nCount = m_aPathList.GetEntryCount();
    1039         [ #  # ]:          0 :     for ( sal_uInt16 i = 0; i < nCount; ++i )
    1040                 :            :     {
    1041         [ #  # ]:          0 :         if ( sPath.Len() > 0 )
    1042         [ #  # ]:          0 :             sPath += CLASSPATH_DELIMITER;
    1043         [ #  # ]:          0 :         String* pFullPath = static_cast< String* >( m_aPathList.GetEntryData(i) );
    1044         [ #  # ]:          0 :         if ( pFullPath )
    1045         [ #  # ]:          0 :             sPath += *pFullPath;
    1046                 :            :         else
    1047 [ #  # ][ #  # ]:          0 :             sPath += m_aPathList.GetEntry(i);
                 [ #  # ]
    1048                 :            :     }
    1049                 :          0 :     return sPath;
    1050                 :            : }
    1051                 :            : 
    1052                 :            : // -----------------------------------------------------------------------
    1053                 :            : 
    1054                 :          0 : void SvxJavaClassPathDlg::SetClassPath( const String& _rPath )
    1055                 :            : {
    1056         [ #  # ]:          0 :     if ( m_sOldPath.Len() == 0 )
    1057         [ #  # ]:          0 :         m_sOldPath = _rPath;
    1058         [ #  # ]:          0 :     m_aPathList.Clear();
    1059                 :          0 :     xub_StrLen i, nIdx = 0;
    1060 [ #  # ][ #  # ]:          0 :     xub_StrLen nCount = comphelper::string::getTokenCount(_rPath, CLASSPATH_DELIMITER);
    1061         [ #  # ]:          0 :     for ( i = 0; i < nCount; ++i )
    1062                 :            :     {
    1063         [ #  # ]:          0 :         String sToken = _rPath.GetToken( 0, CLASSPATH_DELIMITER, nIdx );
    1064 [ #  # ][ #  # ]:          0 :         INetURLObject aURL( sToken, INetURLObject::FSYS_DETECT );
    1065 [ #  # ][ #  # ]:          0 :         String sPath = aURL.getFSysPath( INetURLObject::FSYS_DETECT );
    1066 [ #  # ][ #  # ]:          0 :         m_aPathList.InsertEntry( sPath, SvFileInformationManager::GetImage( aURL, false ) );
                 [ #  # ]
    1067 [ #  # ][ #  # ]:          0 :     }
                 [ #  # ]
    1068                 :            :     // select first entry
    1069         [ #  # ]:          0 :     m_aPathList.SelectEntryPos(0);
    1070         [ #  # ]:          0 :     SelectHdl_Impl( NULL );
    1071                 :          0 : }
    1072                 :            : 
    1073                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10