Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebControls / SqlDataSourceCustomCommandPanel.cs / 2 / SqlDataSourceCustomCommandPanel.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design.WebControls { using System; using System.Collections; using System.ComponentModel; using System.Data; using System.ComponentModel.Design.Data; using System.Design; using System.Diagnostics; using System.Drawing; using System.Web.UI.Design.Util; using System.Web.UI.WebControls; using System.Windows.Forms; ////// Wizard panel for editing commands and parameters for a SqlDataSource. /// internal class SqlDataSourceCustomCommandPanel : WizardPanel { private System.Windows.Forms.TabPage _selectTabPage; private System.Windows.Forms.TabPage _updateTabPage; private System.Windows.Forms.TabPage _insertTabPage; private System.Windows.Forms.TabPage _deleteTabPage; private SqlDataSourceCustomCommandEditor _selectCommandEditor; private SqlDataSourceCustomCommandEditor _insertCommandEditor; private SqlDataSourceCustomCommandEditor _updateCommandEditor; private SqlDataSourceCustomCommandEditor _deleteCommandEditor; private System.Windows.Forms.TabControl _commandsTabControl; private System.Windows.Forms.Label _helpLabel; private SqlDataSourceDesigner _sqlDataSourceDesigner; private DesignerDataConnection _dataConnection; ////// Creates a new SqlDataSourceCustomCommandPanel. /// public SqlDataSourceCustomCommandPanel(SqlDataSourceDesigner sqlDataSourceDesigner) { Debug.Assert(sqlDataSourceDesigner != null); _sqlDataSourceDesigner = sqlDataSourceDesigner; InitializeComponent(); InitializeUI(); _selectCommandEditor.SetCommandData(_sqlDataSourceDesigner, QueryBuilderMode.Select); _insertCommandEditor.SetCommandData(_sqlDataSourceDesigner, QueryBuilderMode.Insert); _updateCommandEditor.SetCommandData(_sqlDataSourceDesigner, QueryBuilderMode.Update); _deleteCommandEditor.SetCommandData(_sqlDataSourceDesigner, QueryBuilderMode.Delete); } #region Designer generated code private void InitializeComponent() { this._commandsTabControl = new System.Windows.Forms.TabControl(); this._selectTabPage = new System.Windows.Forms.TabPage(); this._selectCommandEditor = new SqlDataSourceCustomCommandEditor(); this._updateTabPage = new System.Windows.Forms.TabPage(); this._updateCommandEditor = new SqlDataSourceCustomCommandEditor(); this._insertTabPage = new System.Windows.Forms.TabPage(); this._insertCommandEditor = new SqlDataSourceCustomCommandEditor(); this._deleteTabPage = new System.Windows.Forms.TabPage(); this._deleteCommandEditor = new SqlDataSourceCustomCommandEditor(); this._helpLabel = new System.Windows.Forms.Label(); this._commandsTabControl.SuspendLayout(); this._selectTabPage.SuspendLayout(); this._updateTabPage.SuspendLayout(); this._insertTabPage.SuspendLayout(); this._deleteTabPage.SuspendLayout(); this.SuspendLayout(); // // _helpLabel // this._helpLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this._helpLabel.Location = new System.Drawing.Point(0, 0); this._helpLabel.Name = "_helpLabel"; this._helpLabel.Size = new System.Drawing.Size(544, 16); this._helpLabel.TabIndex = 10; // // _commandsTabControl // this._commandsTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this._commandsTabControl.Controls.Add(this._selectTabPage); this._commandsTabControl.Controls.Add(this._updateTabPage); this._commandsTabControl.Controls.Add(this._insertTabPage); this._commandsTabControl.Controls.Add(this._deleteTabPage); this._commandsTabControl.Location = new System.Drawing.Point(0, 22); this._commandsTabControl.Name = "_commandsTabControl"; this._commandsTabControl.SelectedIndex = 0; this._commandsTabControl.ShowToolTips = true; this._commandsTabControl.Size = new System.Drawing.Size(544, 252); this._commandsTabControl.TabIndex = 20; // // _selectTabPage // this._selectTabPage.Controls.Add(this._selectCommandEditor); this._selectTabPage.Location = new System.Drawing.Point(4, 22); this._selectTabPage.Name = "_selectTabPage"; this._selectTabPage.Size = new System.Drawing.Size(536, 226); this._selectTabPage.TabIndex = 10; this._selectTabPage.Text = "SELECT"; // // _selectCommandEditor // this._selectCommandEditor.Dock = System.Windows.Forms.DockStyle.Fill; this._selectCommandEditor.Location = new System.Drawing.Point(0, 0); this._selectCommandEditor.Name = "_selectCommandEditor"; this._selectCommandEditor.TabIndex = 10; this._selectCommandEditor.CommandChanged += new System.EventHandler(this.OnSelectCommandChanged); // // _updateTabPage // this._updateTabPage.Controls.Add(this._updateCommandEditor); this._updateTabPage.Location = new System.Drawing.Point(4, 22); this._updateTabPage.Name = "_updateTabPage"; this._updateTabPage.Size = new System.Drawing.Size(536, 226); this._updateTabPage.TabIndex = 20; this._updateTabPage.Text = "UPDATE"; // // _updateCommandEditor // this._updateCommandEditor.Dock = System.Windows.Forms.DockStyle.Fill; this._updateCommandEditor.Location = new System.Drawing.Point(0, 0); this._updateCommandEditor.Name = "_updateCommandEditor"; this._updateCommandEditor.TabIndex = 10; // // _insertTabPage // this._insertTabPage.Controls.Add(this._insertCommandEditor); this._insertTabPage.Location = new System.Drawing.Point(4, 22); this._insertTabPage.Name = "_insertTabPage"; this._insertTabPage.Size = new System.Drawing.Size(536, 226); this._insertTabPage.TabIndex = 30; this._insertTabPage.Text = "INSERT"; // // _insertCommandEditor // this._insertCommandEditor.Dock = System.Windows.Forms.DockStyle.Fill; this._insertCommandEditor.Location = new System.Drawing.Point(0, 0); this._insertCommandEditor.Name = "_insertCommandEditor"; this._insertCommandEditor.TabIndex = 10; // // _deleteTabPage // this._deleteTabPage.Controls.Add(this._deleteCommandEditor); this._deleteTabPage.Location = new System.Drawing.Point(4, 22); this._deleteTabPage.Name = "_deleteTabPage"; this._deleteTabPage.Size = new System.Drawing.Size(522, 226); this._deleteTabPage.TabIndex = 40; this._deleteTabPage.Text = "DELETE"; // // _deleteCommandEditor // this._deleteCommandEditor.Dock = System.Windows.Forms.DockStyle.Fill; this._deleteCommandEditor.Location = new System.Drawing.Point(0, 0); this._deleteCommandEditor.Name = "_deleteCommandEditor"; this._deleteCommandEditor.TabIndex = 10; // // SqlDataSourceCustomCommandPanel // this.Controls.Add(this._helpLabel); this.Controls.Add(this._commandsTabControl); this.Name = "SqlDataSourceCustomCommandPanel"; this.Size = new System.Drawing.Size(544, 274); this._commandsTabControl.ResumeLayout(false); this._selectTabPage.ResumeLayout(false); this._updateTabPage.ResumeLayout(false); this._insertTabPage.ResumeLayout(false); this._deleteTabPage.ResumeLayout(false); this.ResumeLayout(false); } #endregion ////// Called after InitializeComponent to perform additional actions that /// are not supported by the designer. /// private void InitializeUI() { _helpLabel.Text = SR.GetString(SR.SqlDataSourceCustomCommandPanel_HelpLabel); Caption = SR.GetString(SR.SqlDataSourceCustomCommandPanel_PanelCaption); } ////// public override bool OnNext() { // Test for parameters in select query, choose between Parameters panel and Summary panel SqlDataSourceQuery selectQuery = _selectCommandEditor.GetQuery(); SqlDataSourceQuery insertQuery = _insertCommandEditor.GetQuery(); SqlDataSourceQuery updateQuery = _updateCommandEditor.GetQuery(); SqlDataSourceQuery deleteQuery = _deleteCommandEditor.GetQuery(); if ((selectQuery == null) || (insertQuery == null) || (updateQuery == null) || (deleteQuery == null)) { // Problem getting command or parameter information, abort // An error message would have been already displayed, so we just fail out return false; } int inputParameterCount = 0; foreach (Parameter p in selectQuery.Parameters) { if ((p.Direction == ParameterDirection.Input) || (p.Direction == ParameterDirection.InputOutput)) { inputParameterCount++; } } // Show parameters panel if there are parameters, otherwise go to the summary if (inputParameterCount == 0) { SqlDataSourceSummaryPanel nextPanel = NextPanel as SqlDataSourceSummaryPanel; if (nextPanel == null) { nextPanel = ((SqlDataSourceWizardForm)ParentWizard).GetSummaryPanel(); NextPanel = nextPanel; } nextPanel.SetQueries( _dataConnection, selectQuery, insertQuery, updateQuery, deleteQuery); return true; } else { SqlDataSourceConfigureParametersPanel nextPanel = NextPanel as SqlDataSourceConfigureParametersPanel; if (nextPanel == null) { nextPanel = ((SqlDataSourceWizardForm)ParentWizard).GetConfigureParametersPanel(); NextPanel = nextPanel; SqlDataSource sqlDataSource = (SqlDataSource)_sqlDataSourceDesigner.Component; Parameter[] selectParameters = new Parameter[sqlDataSource.SelectParameters.Count]; for (int i = 0; i < sqlDataSource.SelectParameters.Count; i++) { Parameter originalParameter = sqlDataSource.SelectParameters[i]; Parameter clonedParameter = (Parameter)(((ICloneable)originalParameter).Clone()); _sqlDataSourceDesigner.RegisterClone(originalParameter, clonedParameter); selectParameters[i] = clonedParameter; } nextPanel.InitializeParameters(selectParameters); } nextPanel.SetQueries( _dataConnection, selectQuery, insertQuery, updateQuery, deleteQuery); return true; } } ////// public override void OnPrevious() { } private void OnSelectCommandChanged(object sender, EventArgs e) { UpdateEnabledState(); } ////// protected override void OnVisibleChanged(EventArgs e) { base.OnVisibleChanged(e); if (Visible) { UpdateEnabledState(); } } public void ResetUI() { } ////// Sets all the queries for the data source. /// If this panel is used, there should always be at least one parameter. /// public void SetQueries( DesignerDataConnection dataConnection, SqlDataSourceQuery selectQuery, SqlDataSourceQuery insertQuery, SqlDataSourceQuery updateQuery, SqlDataSourceQuery deleteQuery) { // If the data connection has changed, force a refresh of the database metadata DesignerDataConnection newConnection = dataConnection; if (!SqlDataSourceDesigner.ConnectionsEqual(_dataConnection, newConnection)) { _dataConnection = newConnection; // If the connection has changed, refresh the list of stored procedures Cursor originalCursor = Cursor.Current; ArrayList filteredStoredProcedures = null; try { Cursor.Current = Cursors.WaitCursor; IDataEnvironment dataEnvironment = (IDataEnvironment)_sqlDataSourceDesigner.Component.Site.GetService(typeof(IDataEnvironment)); Debug.Assert(dataEnvironment != null, "Could not find IDataEnvironment service"); if (dataEnvironment != null) { IDesignerDataSchema designerDataSchema = dataEnvironment.GetConnectionSchema(_dataConnection); if (designerDataSchema != null) { if (designerDataSchema.SupportsSchemaClass(DesignerDataSchemaClass.StoredProcedures)) { ICollection databaseSprocs = designerDataSchema.GetSchemaItems(DesignerDataSchemaClass.StoredProcedures); if (databaseSprocs != null && databaseSprocs.Count > 0) { filteredStoredProcedures = new ArrayList(); foreach (DesignerDataStoredProcedure sproc in databaseSprocs) { // Hide special ASP.net stored procedures used for cache invalidation if (!sproc.Name.ToLowerInvariant().StartsWith(SqlDataSourceDesigner.AspNetDatabaseObjectPrefix.ToLowerInvariant(), StringComparison.Ordinal)) { filteredStoredProcedures.Add(sproc); } } } } } } } catch (Exception ex) { UIServiceHelper.ShowError( ServiceProvider, ex, SR.GetString(SR.SqlDataSourceConnectionPanel_CouldNotGetConnectionSchema)); } finally { Cursor.Current = originalCursor; } // Initialize stored procedure list _selectCommandEditor.SetConnection(_dataConnection); _selectCommandEditor.SetStoredProcedures(filteredStoredProcedures); _insertCommandEditor.SetConnection(_dataConnection); _insertCommandEditor.SetStoredProcedures(filteredStoredProcedures); _updateCommandEditor.SetConnection(_dataConnection); _updateCommandEditor.SetStoredProcedures(filteredStoredProcedures); _deleteCommandEditor.SetConnection(_dataConnection); _deleteCommandEditor.SetStoredProcedures(filteredStoredProcedures); // Initialize query data _selectCommandEditor.SetQuery(selectQuery); _insertCommandEditor.SetQuery(insertQuery); _updateCommandEditor.SetQuery(updateQuery); _deleteCommandEditor.SetQuery(deleteQuery); } } ////// private void UpdateEnabledState() { Debug.Assert(ParentWizard != null, "Panel must be parented to update UI state"); bool hasSelectQuery = _selectCommandEditor.HasQuery; // Only enable Next button if a query has been entered ParentWizard.NextButton.Enabled = hasSelectQuery; ParentWizard.FinishButton.Enabled = false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpConfigurationSystem.cs
- LayoutInformation.cs
- MsmqHostedTransportConfiguration.cs
- DataGridViewColumnTypeEditor.cs
- UniqueIdentifierService.cs
- httpserverutility.cs
- TableParagraph.cs
- MenuStrip.cs
- NativeMethods.cs
- CodeCatchClauseCollection.cs
- SerializationAttributes.cs
- LinkedResourceCollection.cs
- WebBrowserNavigatedEventHandler.cs
- BindUriHelper.cs
- RectKeyFrameCollection.cs
- TransactionFilter.cs
- DropDownList.cs
- ConfigErrorGlyph.cs
- WebSysDescriptionAttribute.cs
- EntityDataReader.cs
- CatalogZone.cs
- BulletedList.cs
- ChannelDispatcher.cs
- ConfigXmlElement.cs
- ResolveNameEventArgs.cs
- WebRequestModulesSection.cs
- XmlSchemaChoice.cs
- TextContainerChangedEventArgs.cs
- MergeFailedEvent.cs
- _NtlmClient.cs
- ObjectParameterCollection.cs
- FontTypeConverter.cs
- CreateCardRequest.cs
- HtmlTable.cs
- LOSFormatter.cs
- ResXBuildProvider.cs
- ImageField.cs
- X509CertificateValidator.cs
- EventsTab.cs
- Keywords.cs
- ListViewHitTestInfo.cs
- DefaultProxySection.cs
- LoadMessageLogger.cs
- TextTrailingWordEllipsis.cs
- ReadOnlyDictionary.cs
- ValidateNames.cs
- SqlEnums.cs
- TreeNodeStyleCollection.cs
- Stylus.cs
- SymLanguageType.cs
- Delay.cs
- SingleStorage.cs
- NativeRecognizer.cs
- basevalidator.cs
- HelpHtmlBuilder.cs
- SignedInfo.cs
- ConstrainedDataObject.cs
- SiteMapProvider.cs
- AnimatedTypeHelpers.cs
- XmlNavigatorFilter.cs
- LockedHandleGlyph.cs
- FlowDocumentPage.cs
- TripleDES.cs
- Attachment.cs
- SessionStateUtil.cs
- XslCompiledTransform.cs
- designeractionbehavior.cs
- TemplateBaseAction.cs
- BamlRecordWriter.cs
- SiblingIterators.cs
- InternalConfigEventArgs.cs
- HtmlButton.cs
- HotSpot.cs
- cache.cs
- CombinedGeometry.cs
- ControlValuePropertyAttribute.cs
- Stroke2.cs
- SafeMILHandleMemoryPressure.cs
- TagPrefixCollection.cs
- SecureEnvironment.cs
- ToolboxComponentsCreatedEventArgs.cs
- TransformCollection.cs
- HwndSubclass.cs
- MessageHeaderInfoTraceRecord.cs
- ContractComponent.cs
- Rectangle.cs
- Screen.cs
- FixedStringLookup.cs
- SelectionUIService.cs
- GridLengthConverter.cs
- DiscoveryClient.cs
- CloseCryptoHandleRequest.cs
- SqlDataSourceView.cs
- SqlFunctions.cs
- IDispatchConstantAttribute.cs
- DocumentOrderQuery.cs
- PKCS1MaskGenerationMethod.cs
- AssemblyBuilder.cs
- CorrelationTokenTypeConvertor.cs
- WS2007HttpBindingCollectionElement.cs