diff -r 000000000000 -r 818e61de6cd1 crashanalysercmd/UI/Plugins/CAPluginCrashAnalyserUi/Tabs/Base/CATabCrashContainerBase.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crashanalysercmd/UI/Plugins/CAPluginCrashAnalyserUi/Tabs/Base/CATabCrashContainerBase.cs Thu Feb 11 15:50:58 2010 +0200 @@ -0,0 +1,106 @@ +/* +* Copyright (c) 2004-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using CrashItemLib.Crash.Container; +using CrashItemLib.Sink; +using CrashAnalyserEngine.Interfaces; +using CAPCrashAnalysis.Plugin; + +namespace CAPluginCrashAnalysisUi.Tabs +{ + internal partial class CATabCrashContainerBase : CATabCrashBase + { + #region Constructors + protected CATabCrashContainerBase() + { + // For IDE designer only + InitializeComponent(); + } + + protected CATabCrashContainerBase( CAPluginCrashAnalysis aSubEngine, CIContainer aContainer ) + : base( aSubEngine ) + { + iContainer = aContainer; + // + InitializeComponent(); + // + RegisterMenuItems(); + } + #endregion + + #region API + #endregion + + #region Properties + [Browsable( false )] + [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] + protected CIContainer CIContainer + { + get { return iContainer; } + set { iContainer = value; } + } + #endregion + + #region From CATab + protected override void RegisterMenuItems() + { + base.RegisterMenuItems(); + // + CISinkManager sinkManager = base.CrashItemEngine.SinkManager; + foreach ( CISink sink in sinkManager ) + { + base.UIManager.UIManagerMenuItemAdd( CrashAnalyserEngine.Interfaces.TEngineUIMenuPane.EFileSaveAs, sink.Name, new UIMenuItemClickHandler( Menu_File_SaveAs_SinkFormat_Click ), sink, this ); + } + } + #endregion + + #region Event handlers + private void Menu_File_SaveAs_SinkFormat_Click( object aTag, string aCaption ) + { + if ( aTag is CISink ) + { + CISink sink = (CISink) aTag; + // + CISinkSerializationParameters parameters = new CISinkSerializationParameters( CIContainer, base.UIManager.UIVersion, base.UIManager.UICommandLineArguments ); + FolderBrowserDialog dialog = new FolderBrowserDialog(); + dialog.Description = "Save Location"; + // + if ( dialog.ShowDialog() == DialogResult.OK ) + { + parameters.OutputDirectory = new System.IO.DirectoryInfo( dialog.SelectedPath ); + // + sink.Serialize( parameters ); + } + } + } + #endregion + + #region Internal methods + #endregion + + #region Data members + private CIContainer iContainer; + #endregion + } +}