1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_dbaccess.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "dbaccess_helpid.hrc"
28*b1cdbd2cSJim Jagielski #include "dbmm_module.hxx"
29*b1cdbd2cSJim Jagielski #include "dbmm_global.hrc"
30*b1cdbd2cSJim Jagielski #include "macromigration.hrc"
31*b1cdbd2cSJim Jagielski #include "macromigrationpages.hxx"
32*b1cdbd2cSJim Jagielski #include "macromigrationdialog.hxx"
33*b1cdbd2cSJim Jagielski 
34*b1cdbd2cSJim Jagielski /** === begin UNO includes === **/
35*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XModel.hpp>
36*b1cdbd2cSJim Jagielski /** === end UNO includes === **/
37*b1cdbd2cSJim Jagielski 
38*b1cdbd2cSJim Jagielski #include <tools/urlobj.hxx>
39*b1cdbd2cSJim Jagielski #include <tools/diagnose_ex.h>
40*b1cdbd2cSJim Jagielski #include <vcl/metric.hxx>
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski //........................................................................
43*b1cdbd2cSJim Jagielski namespace dbmm
44*b1cdbd2cSJim Jagielski {
45*b1cdbd2cSJim Jagielski //........................................................................
46*b1cdbd2cSJim Jagielski 
47*b1cdbd2cSJim Jagielski 	/** === begin UNO using === **/
48*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::Reference;
49*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::XInterface;
50*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::UNO_QUERY;
51*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::UNO_QUERY_THROW;
52*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::UNO_SET_THROW;
53*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::Exception;
54*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::RuntimeException;
55*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::Any;
56*b1cdbd2cSJim Jagielski 	using ::com::sun::star::uno::makeAny;
57*b1cdbd2cSJim Jagielski     using ::com::sun::star::uno::Sequence;
58*b1cdbd2cSJim Jagielski     using ::com::sun::star::frame::XModel;
59*b1cdbd2cSJim Jagielski 	/** === end UNO using === **/
60*b1cdbd2cSJim Jagielski 
61*b1cdbd2cSJim Jagielski 	//====================================================================
62*b1cdbd2cSJim Jagielski 	//= MacroMigrationPage
63*b1cdbd2cSJim Jagielski 	//====================================================================
64*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
MacroMigrationPage(MacroMigrationDialog & _rParentDialog,const ResId & _rRes)65*b1cdbd2cSJim Jagielski     MacroMigrationPage::MacroMigrationPage( MacroMigrationDialog& _rParentDialog, const ResId& _rRes )
66*b1cdbd2cSJim Jagielski         :MacroMigrationPage_Base( &_rParentDialog, _rRes )
67*b1cdbd2cSJim Jagielski         ,m_aHeader( this, MacroMigrationResId( FT_HEADER ) )
68*b1cdbd2cSJim Jagielski     {
69*b1cdbd2cSJim Jagielski         Font aFont( m_aHeader.GetFont() );
70*b1cdbd2cSJim Jagielski         aFont.SetWeight( WEIGHT_BOLD );
71*b1cdbd2cSJim Jagielski         m_aHeader.SetFont( aFont );
72*b1cdbd2cSJim Jagielski     }
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski     //--------------------------------------------------------------------
~MacroMigrationPage()75*b1cdbd2cSJim Jagielski     MacroMigrationPage::~MacroMigrationPage()
76*b1cdbd2cSJim Jagielski     {
77*b1cdbd2cSJim Jagielski     }
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski     //--------------------------------------------------------------------
getDialog() const80*b1cdbd2cSJim Jagielski     const MacroMigrationDialog& MacroMigrationPage::getDialog() const
81*b1cdbd2cSJim Jagielski     {
82*b1cdbd2cSJim Jagielski         return *dynamic_cast< const MacroMigrationDialog* >( GetParent() );
83*b1cdbd2cSJim Jagielski     }
84*b1cdbd2cSJim Jagielski 
85*b1cdbd2cSJim Jagielski     //--------------------------------------------------------------------
getDialog()86*b1cdbd2cSJim Jagielski     MacroMigrationDialog& MacroMigrationPage::getDialog()
87*b1cdbd2cSJim Jagielski     {
88*b1cdbd2cSJim Jagielski         return *dynamic_cast< MacroMigrationDialog* >( GetParent() );
89*b1cdbd2cSJim Jagielski     }
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski 	//====================================================================
92*b1cdbd2cSJim Jagielski 	//= PreparationPage
93*b1cdbd2cSJim Jagielski 	//====================================================================
94*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
PreparationPage(MacroMigrationDialog & _rParentDialog)95*b1cdbd2cSJim Jagielski     PreparationPage::PreparationPage( MacroMigrationDialog& _rParentDialog )
96*b1cdbd2cSJim Jagielski         :MacroMigrationPage( _rParentDialog, MacroMigrationResId( TP_PREPARE ) )
97*b1cdbd2cSJim Jagielski         ,m_aIntroduction ( this, MacroMigrationResId( FT_INTRODUCTION    ) )
98*b1cdbd2cSJim Jagielski         ,m_aCloseDocError( this, MacroMigrationResId( FT_CLOSE_DOC_ERROR ) )
99*b1cdbd2cSJim Jagielski     {
100*b1cdbd2cSJim Jagielski         FreeResource();
101*b1cdbd2cSJim Jagielski     }
102*b1cdbd2cSJim Jagielski 
103*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
showCloseDocsError(bool _bShow)104*b1cdbd2cSJim Jagielski     void PreparationPage::showCloseDocsError( bool _bShow )
105*b1cdbd2cSJim Jagielski     {
106*b1cdbd2cSJim Jagielski         m_aCloseDocError.Show( _bShow );
107*b1cdbd2cSJim Jagielski     }
108*b1cdbd2cSJim Jagielski 
109*b1cdbd2cSJim Jagielski     //--------------------------------------------------------------------
Create(::svt::RoadmapWizard & _rParentDialog)110*b1cdbd2cSJim Jagielski     TabPage* PreparationPage::Create( ::svt::RoadmapWizard& _rParentDialog )
111*b1cdbd2cSJim Jagielski     {
112*b1cdbd2cSJim Jagielski         return new PreparationPage( dynamic_cast< MacroMigrationDialog& >( _rParentDialog ) );
113*b1cdbd2cSJim Jagielski     }
114*b1cdbd2cSJim Jagielski 
115*b1cdbd2cSJim Jagielski 	//====================================================================
116*b1cdbd2cSJim Jagielski 	//= SaveDBDocPage
117*b1cdbd2cSJim Jagielski 	//====================================================================
118*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
SaveDBDocPage(MacroMigrationDialog & _rParentDialog)119*b1cdbd2cSJim Jagielski     SaveDBDocPage::SaveDBDocPage( MacroMigrationDialog& _rParentDialog )
120*b1cdbd2cSJim Jagielski         :MacroMigrationPage( _rParentDialog, MacroMigrationResId( TP_SAVE_DBDOC_AS ) )
121*b1cdbd2cSJim Jagielski         ,m_aExplanation         ( this, MacroMigrationResId( FT_EXPLANATION             ) )
122*b1cdbd2cSJim Jagielski         ,m_aSaveAsLabel         ( this, MacroMigrationResId( FT_SAVE_AS_LABEL           ) )
123*b1cdbd2cSJim Jagielski         ,m_aSaveAsLocation      ( this, MacroMigrationResId( ED_SAVE_AS_LOCATION        ) )
124*b1cdbd2cSJim Jagielski         ,m_aBrowseSaveAsLocation( this, MacroMigrationResId( PB_BROWSE_SAVE_AS_LOCATION ) )
125*b1cdbd2cSJim Jagielski         ,m_aStartMigration      ( this, MacroMigrationResId( FT_START_MIGRATION         ) )
126*b1cdbd2cSJim Jagielski         ,m_aLocationController( _rParentDialog.getComponentContext(), m_aSaveAsLocation, m_aBrowseSaveAsLocation )
127*b1cdbd2cSJim Jagielski     {
128*b1cdbd2cSJim Jagielski         FreeResource();
129*b1cdbd2cSJim Jagielski 
130*b1cdbd2cSJim Jagielski         m_aSaveAsLocation.SetModifyHdl( LINK( this, SaveDBDocPage, OnLocationModified ) );
131*b1cdbd2cSJim Jagielski         m_aSaveAsLocation.SetDropDownLineCount( 20 );
132*b1cdbd2cSJim Jagielski 
133*b1cdbd2cSJim Jagielski         m_aSaveAsLocation.SetHelpId( HID_MACRO_MIGRATION_BACKUP_LOCATION );
134*b1cdbd2cSJim Jagielski 
135*b1cdbd2cSJim Jagielski         impl_updateLocationDependentItems();
136*b1cdbd2cSJim Jagielski     }
137*b1cdbd2cSJim Jagielski 
138*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
impl_updateLocationDependentItems()139*b1cdbd2cSJim Jagielski     void SaveDBDocPage::impl_updateLocationDependentItems()
140*b1cdbd2cSJim Jagielski     {
141*b1cdbd2cSJim Jagielski         updateDialogTravelUI();
142*b1cdbd2cSJim Jagielski         m_aStartMigration.Show( m_aSaveAsLocation.GetText().Len() > 0 );
143*b1cdbd2cSJim Jagielski     }
144*b1cdbd2cSJim Jagielski 
145*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
146*b1cdbd2cSJim Jagielski     IMPL_LINK( SaveDBDocPage, OnLocationModified, Edit*, /**/ )
147*b1cdbd2cSJim Jagielski     {
148*b1cdbd2cSJim Jagielski         impl_updateLocationDependentItems();
149*b1cdbd2cSJim Jagielski         return 0L;
150*b1cdbd2cSJim Jagielski     }
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
initializePage()153*b1cdbd2cSJim Jagielski     void SaveDBDocPage::initializePage()
154*b1cdbd2cSJim Jagielski     {
155*b1cdbd2cSJim Jagielski         OWizardPage::initializePage();
156*b1cdbd2cSJim Jagielski 
157*b1cdbd2cSJim Jagielski         try
158*b1cdbd2cSJim Jagielski         {
159*b1cdbd2cSJim Jagielski             // get the document's current URL
160*b1cdbd2cSJim Jagielski             Reference< XModel > xDocument( getDialog().getDocument(), UNO_QUERY_THROW );
161*b1cdbd2cSJim Jagielski             INetURLObject aURLParser( xDocument->getURL() );
162*b1cdbd2cSJim Jagielski             OSL_ENSURE( aURLParser.GetProtocol() != INET_PROT_NOT_VALID, "SaveDBDocPage::initializePage: illegal document URL!" );
163*b1cdbd2cSJim Jagielski 
164*b1cdbd2cSJim Jagielski             ::rtl::OUStringBuffer aBaseName( aURLParser.getBase() );
165*b1cdbd2cSJim Jagielski             aBaseName.appendAscii( ".backup" );
166*b1cdbd2cSJim Jagielski             aURLParser.setBase( aBaseName.makeStringAndClear() );
167*b1cdbd2cSJim Jagielski 
168*b1cdbd2cSJim Jagielski             m_aLocationController.setURL( aURLParser.GetMainURL( INetURLObject::NO_DECODE ) );
169*b1cdbd2cSJim Jagielski             impl_updateLocationDependentItems();
170*b1cdbd2cSJim Jagielski         }
171*b1cdbd2cSJim Jagielski         catch( const Exception& )
172*b1cdbd2cSJim Jagielski         {
173*b1cdbd2cSJim Jagielski         	DBG_UNHANDLED_EXCEPTION();
174*b1cdbd2cSJim Jagielski         }
175*b1cdbd2cSJim Jagielski     }
176*b1cdbd2cSJim Jagielski 
177*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
canAdvance() const178*b1cdbd2cSJim Jagielski     bool SaveDBDocPage::canAdvance() const
179*b1cdbd2cSJim Jagielski     {
180*b1cdbd2cSJim Jagielski         if ( !MacroMigrationPage::canAdvance() )
181*b1cdbd2cSJim Jagielski             return false;
182*b1cdbd2cSJim Jagielski 
183*b1cdbd2cSJim Jagielski         return m_aSaveAsLocation.GetText().Len() > 0;
184*b1cdbd2cSJim Jagielski     }
185*b1cdbd2cSJim Jagielski 
186*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
commitPage(::svt::WizardTypes::CommitPageReason _eReason)187*b1cdbd2cSJim Jagielski     sal_Bool SaveDBDocPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason )
188*b1cdbd2cSJim Jagielski     {
189*b1cdbd2cSJim Jagielski         if ( !MacroMigrationPage::commitPage( _eReason ) )
190*b1cdbd2cSJim Jagielski             return sal_False;
191*b1cdbd2cSJim Jagielski 
192*b1cdbd2cSJim Jagielski         if ( ::svt::WizardTypes::eTravelBackward == _eReason )
193*b1cdbd2cSJim Jagielski             return sal_True;
194*b1cdbd2cSJim Jagielski 
195*b1cdbd2cSJim Jagielski         if ( !m_aLocationController.prepareCommit() )
196*b1cdbd2cSJim Jagielski             return sal_False;
197*b1cdbd2cSJim Jagielski 
198*b1cdbd2cSJim Jagielski         return sal_True;
199*b1cdbd2cSJim Jagielski     }
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
Create(::svt::RoadmapWizard & _rParentDialog)202*b1cdbd2cSJim Jagielski     TabPage* SaveDBDocPage::Create( ::svt::RoadmapWizard& _rParentDialog )
203*b1cdbd2cSJim Jagielski     {
204*b1cdbd2cSJim Jagielski         return new SaveDBDocPage( dynamic_cast< MacroMigrationDialog& >( _rParentDialog ) );
205*b1cdbd2cSJim Jagielski     }
206*b1cdbd2cSJim Jagielski 
207*b1cdbd2cSJim Jagielski 	//====================================================================
208*b1cdbd2cSJim Jagielski 	//= ProgressPage
209*b1cdbd2cSJim Jagielski 	//====================================================================
210*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
ProgressPage(MacroMigrationDialog & _rParentDialog)211*b1cdbd2cSJim Jagielski     ProgressPage::ProgressPage( MacroMigrationDialog& _rParentDialog )
212*b1cdbd2cSJim Jagielski         :MacroMigrationPage( _rParentDialog, MacroMigrationResId( TP_MIGRATE ) )
213*b1cdbd2cSJim Jagielski         ,m_aObjectCount             ( this, MacroMigrationResId( FT_OBJECT_COUNT            ) )
214*b1cdbd2cSJim Jagielski         ,m_aCurrentObjectLabel      ( this, MacroMigrationResId( FT_CURRENT_OBJECT_LABEL    ) )
215*b1cdbd2cSJim Jagielski         ,m_aCurrentObject           ( this, MacroMigrationResId( FT_CURRENT_OBJECT          ) )
216*b1cdbd2cSJim Jagielski         ,m_aCurrentActionLabel      ( this, MacroMigrationResId( FT_CURRENT_PROGRESS_LABEL  ) )
217*b1cdbd2cSJim Jagielski         ,m_aCurrentAction           ( this, MacroMigrationResId( FT_CURRENT_PROGRESS        ) )
218*b1cdbd2cSJim Jagielski         ,m_aCurrentProgress         ( this, MacroMigrationResId( WND_CURRENT_PROGRESS       ) )
219*b1cdbd2cSJim Jagielski         ,m_aAllProgressLabel        ( this, MacroMigrationResId( FT_ALL_PROGRESS_LABEL      ) )
220*b1cdbd2cSJim Jagielski         ,m_aAllProgressText         ( this, MacroMigrationResId( FT_OBJECT_COUNT_PROGRESS   ) )
221*b1cdbd2cSJim Jagielski         ,m_aAllProgress             ( this, MacroMigrationResId( WND_ALL_PROGRESS           ) )
222*b1cdbd2cSJim Jagielski         ,m_aMigrationDone           ( this, MacroMigrationResId( FT_MIGRATION_DONE          ) )
223*b1cdbd2cSJim Jagielski     {
224*b1cdbd2cSJim Jagielski         FreeResource();
225*b1cdbd2cSJim Jagielski     }
226*b1cdbd2cSJim Jagielski 
227*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
Create(::svt::RoadmapWizard & _rParentDialog)228*b1cdbd2cSJim Jagielski     TabPage* ProgressPage::Create( ::svt::RoadmapWizard& _rParentDialog )
229*b1cdbd2cSJim Jagielski     {
230*b1cdbd2cSJim Jagielski         return new ProgressPage( dynamic_cast< MacroMigrationDialog& >( _rParentDialog ) );
231*b1cdbd2cSJim Jagielski     }
232*b1cdbd2cSJim Jagielski 
233*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
setDocumentCounts(const sal_Int32 _nForms,const sal_Int32 _nReports)234*b1cdbd2cSJim Jagielski     void ProgressPage::setDocumentCounts( const sal_Int32 _nForms, const sal_Int32 _nReports )
235*b1cdbd2cSJim Jagielski     {
236*b1cdbd2cSJim Jagielski         String sText( m_aObjectCount.GetText() );
237*b1cdbd2cSJim Jagielski         sText.SearchAndReplaceAscii( "$forms$", String::CreateFromInt32( _nForms ) );
238*b1cdbd2cSJim Jagielski         sText.SearchAndReplaceAscii( "$reports$", String::CreateFromInt32( _nReports ) );
239*b1cdbd2cSJim Jagielski         m_aObjectCount.SetText( sText );
240*b1cdbd2cSJim Jagielski     }
241*b1cdbd2cSJim Jagielski 
242*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
onFinishedSuccessfully()243*b1cdbd2cSJim Jagielski     void ProgressPage::onFinishedSuccessfully()
244*b1cdbd2cSJim Jagielski     {
245*b1cdbd2cSJim Jagielski         m_aMigrationDone.Show();
246*b1cdbd2cSJim Jagielski     }
247*b1cdbd2cSJim Jagielski 
248*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
startObject(const::rtl::OUString & _rObjectName,const::rtl::OUString & _rCurrentAction,const sal_uInt32 _nRange)249*b1cdbd2cSJim Jagielski     void ProgressPage::startObject( const ::rtl::OUString& _rObjectName, const ::rtl::OUString& _rCurrentAction, const sal_uInt32 _nRange )
250*b1cdbd2cSJim Jagielski     {
251*b1cdbd2cSJim Jagielski         m_aCurrentObject.SetText( _rObjectName );
252*b1cdbd2cSJim Jagielski         m_aCurrentAction.SetText( _rCurrentAction );
253*b1cdbd2cSJim Jagielski         m_aCurrentProgress.SetRange( _nRange );
254*b1cdbd2cSJim Jagielski         m_aCurrentProgress.SetValue( (sal_uInt32)0 );
255*b1cdbd2cSJim Jagielski 
256*b1cdbd2cSJim Jagielski         // since this is currently called from the main thread, which does not have the chance
257*b1cdbd2cSJim Jagielski         // to re-schedule, we need to explicitly update the display
258*b1cdbd2cSJim Jagielski         m_aCurrentObject.Update();
259*b1cdbd2cSJim Jagielski         m_aCurrentAction.Update();
260*b1cdbd2cSJim Jagielski         Update();
261*b1cdbd2cSJim Jagielski     }
262*b1cdbd2cSJim Jagielski 
263*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
setObjectProgressText(const::rtl::OUString & _rText)264*b1cdbd2cSJim Jagielski     void ProgressPage::setObjectProgressText( const ::rtl::OUString& _rText )
265*b1cdbd2cSJim Jagielski     {
266*b1cdbd2cSJim Jagielski         m_aCurrentAction.SetText( _rText );
267*b1cdbd2cSJim Jagielski         m_aCurrentAction.Update();
268*b1cdbd2cSJim Jagielski         Update();
269*b1cdbd2cSJim Jagielski     }
270*b1cdbd2cSJim Jagielski 
271*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
setObjectProgressValue(const sal_uInt32 _nValue)272*b1cdbd2cSJim Jagielski     void ProgressPage::setObjectProgressValue( const sal_uInt32 _nValue )
273*b1cdbd2cSJim Jagielski     {
274*b1cdbd2cSJim Jagielski         m_aCurrentProgress.SetValue( _nValue );
275*b1cdbd2cSJim Jagielski         Update();
276*b1cdbd2cSJim Jagielski     }
277*b1cdbd2cSJim Jagielski 
278*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
endObject()279*b1cdbd2cSJim Jagielski     void ProgressPage::endObject()
280*b1cdbd2cSJim Jagielski     {
281*b1cdbd2cSJim Jagielski         m_aCurrentAction.SetText( String() );
282*b1cdbd2cSJim Jagielski         m_aCurrentProgress.SetValue( m_aCurrentProgress.GetRange() );
283*b1cdbd2cSJim Jagielski         m_aCurrentAction.Update();
284*b1cdbd2cSJim Jagielski         Update();
285*b1cdbd2cSJim Jagielski     }
286*b1cdbd2cSJim Jagielski 
287*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
start(const sal_uInt32 _nOverallRange)288*b1cdbd2cSJim Jagielski     void ProgressPage::start( const sal_uInt32 _nOverallRange )
289*b1cdbd2cSJim Jagielski     {
290*b1cdbd2cSJim Jagielski         m_aAllProgress.SetRange( _nOverallRange );
291*b1cdbd2cSJim Jagielski         Update();
292*b1cdbd2cSJim Jagielski     }
293*b1cdbd2cSJim Jagielski 
294*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
setOverallProgressText(const::rtl::OUString & _rText)295*b1cdbd2cSJim Jagielski     void ProgressPage::setOverallProgressText( const ::rtl::OUString& _rText )
296*b1cdbd2cSJim Jagielski     {
297*b1cdbd2cSJim Jagielski         m_aAllProgressText.SetText( _rText );
298*b1cdbd2cSJim Jagielski         Update();
299*b1cdbd2cSJim Jagielski     }
300*b1cdbd2cSJim Jagielski 
301*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
setOverallProgressValue(const sal_uInt32 _nValue)302*b1cdbd2cSJim Jagielski     void ProgressPage::setOverallProgressValue( const sal_uInt32 _nValue )
303*b1cdbd2cSJim Jagielski     {
304*b1cdbd2cSJim Jagielski         m_aAllProgress.SetValue( _nValue );
305*b1cdbd2cSJim Jagielski         Update();
306*b1cdbd2cSJim Jagielski     }
307*b1cdbd2cSJim Jagielski 
308*b1cdbd2cSJim Jagielski 	//====================================================================
309*b1cdbd2cSJim Jagielski 	//= ResultPage
310*b1cdbd2cSJim Jagielski 	//====================================================================
311*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
ResultPage(MacroMigrationDialog & _rParentDialog)312*b1cdbd2cSJim Jagielski     ResultPage::ResultPage( MacroMigrationDialog& _rParentDialog )
313*b1cdbd2cSJim Jagielski         :MacroMigrationPage( _rParentDialog, MacroMigrationResId( TP_SUMMARY ) )
314*b1cdbd2cSJim Jagielski         ,m_aChangesLabel( this, MacroMigrationResId( FT_CHANGES_LABEL ) )
315*b1cdbd2cSJim Jagielski         ,m_aChanges     ( this, MacroMigrationResId( ED_CHANGES       ) )
316*b1cdbd2cSJim Jagielski         ,m_aSuccessful  (       MacroMigrationResId( STR_SUCCESSFUL   ) )
317*b1cdbd2cSJim Jagielski         ,m_aUnsuccessful(       MacroMigrationResId( STR_UNSUCCESSFUL ) )
318*b1cdbd2cSJim Jagielski     {
319*b1cdbd2cSJim Jagielski         FreeResource();
320*b1cdbd2cSJim Jagielski     }
321*b1cdbd2cSJim Jagielski 
322*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
Create(::svt::RoadmapWizard & _rParentDialog)323*b1cdbd2cSJim Jagielski     TabPage* ResultPage::Create( ::svt::RoadmapWizard& _rParentDialog )
324*b1cdbd2cSJim Jagielski     {
325*b1cdbd2cSJim Jagielski         return new ResultPage( dynamic_cast< MacroMigrationDialog& >( _rParentDialog ) );
326*b1cdbd2cSJim Jagielski     }
327*b1cdbd2cSJim Jagielski 
328*b1cdbd2cSJim Jagielski 	//--------------------------------------------------------------------
displayMigrationLog(const bool _bSuccessful,const String & _rSummary)329*b1cdbd2cSJim Jagielski     void ResultPage::displayMigrationLog( const bool _bSuccessful, const String& _rSummary )
330*b1cdbd2cSJim Jagielski     {
331*b1cdbd2cSJim Jagielski         m_aChangesLabel.SetText( _bSuccessful ? m_aSuccessful : m_aUnsuccessful );
332*b1cdbd2cSJim Jagielski         m_aChanges.SetText( _rSummary );
333*b1cdbd2cSJim Jagielski 
334*b1cdbd2cSJim Jagielski         // resize m_aChangesLabel and m_aChances as needed for the label text to fit
335*b1cdbd2cSJim Jagielski         Rectangle aOriginalLabelSize( m_aChangesLabel.GetPosPixel(), m_aChangesLabel.GetSizePixel() );
336*b1cdbd2cSJim Jagielski         // assume 3 lines, at most
337*b1cdbd2cSJim Jagielski         Rectangle aNewLabelSize( aOriginalLabelSize );
338*b1cdbd2cSJim Jagielski         aNewLabelSize.Bottom() = aNewLabelSize.Top() + m_aChangesLabel.LogicToPixel( Size( 0, 3*8 ), MAP_APPFONT ).Height();
339*b1cdbd2cSJim Jagielski         TextRectInfo aInfo;
340*b1cdbd2cSJim Jagielski         aNewLabelSize = m_aChangesLabel.GetTextRect( aNewLabelSize, m_aChangesLabel.GetText(), TEXT_DRAW_MULTILINE | TEXT_DRAW_WORDBREAK, &aInfo );
341*b1cdbd2cSJim Jagielski         aNewLabelSize.Bottom() = aNewLabelSize.Top() + m_aChangesLabel.LogicToPixel( Size( 0, aInfo.GetLineCount() * 8 ), MAP_APPFONT ).Height();
342*b1cdbd2cSJim Jagielski 
343*b1cdbd2cSJim Jagielski         m_aChangesLabel.SetSizePixel( aNewLabelSize.GetSize() );
344*b1cdbd2cSJim Jagielski 
345*b1cdbd2cSJim Jagielski         long nChangesDiff = aNewLabelSize.GetHeight() - aOriginalLabelSize.GetHeight();
346*b1cdbd2cSJim Jagielski         Size aChangesSize( m_aChanges.GetSizePixel() );
347*b1cdbd2cSJim Jagielski         aChangesSize.Height() -= nChangesDiff;
348*b1cdbd2cSJim Jagielski         m_aChanges.SetSizePixel( aChangesSize );
349*b1cdbd2cSJim Jagielski 
350*b1cdbd2cSJim Jagielski         Point aChangesPos( m_aChanges.GetPosPixel() );
351*b1cdbd2cSJim Jagielski         aChangesPos.Y() += nChangesDiff;
352*b1cdbd2cSJim Jagielski         m_aChanges.SetPosPixel( aChangesPos );
353*b1cdbd2cSJim Jagielski     }
354*b1cdbd2cSJim Jagielski 
355*b1cdbd2cSJim Jagielski //........................................................................
356*b1cdbd2cSJim Jagielski } // namespace dbmm
357*b1cdbd2cSJim Jagielski //........................................................................
358