Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWebControlsDesign / System / Data / WebControls / Design / EntityDataSourceDesigner.cs / 1305376 / EntityDataSourceDesigner.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //----------------------------------------------------------------------------- using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing.Design; using System.Web.UI.WebControls; using System.Web.UI.Design; using System.Windows.Forms; using System.Web.UI.Design.WebControls.Util; namespace System.Web.UI.Design.WebControls { public class EntityDataSourceDesigner : DataSourceDesigner { private EntityDataSourceDesignerHelper _helper; public override void Initialize(IComponent component) { base.Initialize(component); _helper = new EntityDataSourceDesignerHelper(component as EntityDataSource, true /*interactiveMode*/); _helper.AddSystemWebEntityReference(); } // Whether or not the EntityDataSource can be configured. Currently we have no conditions where you can't at least attempt to // configure it. If there is no metadata available, an error may occur, but you can still try to configure the control. public override bool CanConfigure { get { return true; } } public override bool CanRefreshSchema { get { // Minimum properties required for schema are ConnectionString and DefaultContainerName, plus EntitySetName or CommandText return (!String.IsNullOrEmpty(_helper.ConnectionString) && !String.IsNullOrEmpty(_helper.DefaultContainerName)) && (!String.IsNullOrEmpty(_helper.EntitySetName) || !String.IsNullOrEmpty(_helper.CommandText)); } } public override void Configure() { InvokeTransactedChange(Component, new TransactedChangeCallback(ConfigureDataSourceChangeCallback), null, Strings.WizardTransactionDescription); } private bool ConfigureDataSourceChangeCallback(object context) { try { SuppressDataSourceEvents(); IServiceProvider serviceProvider = Component.Site as IServiceProvider; EntityDataSourceWizardForm form = new EntityDataSourceWizardForm(serviceProvider, _helper.LoadEntityDataSourceState(), this); DialogResult result = UIHelper.ShowDialog(serviceProvider, form); if (result == DialogResult.OK) { _helper.SaveEntityDataSourceProperties(form.EntityDataSourceState); OnDataSourceChanged(EventArgs.Empty); RefreshSchema(true); return true; } else { return false; } } finally { ResumeDataSourceEvents(); } } #region Design-time Schema Support public override void RefreshSchema(bool preferSilent) { try { SuppressDataSourceEvents(); _helper.RefreshSchema(preferSilent); } finally { ResumeDataSourceEvents(); } } public override DesignerDataSourceView GetView(string viewName) { return _helper.GetView(viewName); } public override string[] GetViewNames() { return _helper.GetViewNames(); } internal void FireOnDataSourceChanged(EventArgs e) { // Clear metadata first because anything we have cached is now invalid since a property has changed _helper.ClearMetadata(); OnDataSourceChanged(e); } internal void FireOnSchemaRefreshed(EventArgs e) { OnSchemaRefreshed(e); } internal bool InternalViewSchemasEquivalent(IDataSourceViewSchema viewSchema1, IDataSourceViewSchema viewSchema2) { return ViewSchemasEquivalent(viewSchema1, viewSchema2); } internal virtual object LoadFromDesignerState(string key) { return DesignerState[key]; } internal void SaveDesignerState(string key, object value) { DesignerState[key] = value; } #endregion #region Overridden control properties for providing editors and dropdowns in property grid [ DefaultValue(""), Category("Data"), ResourceDescription(WebControlsRes.PropertyDescription_DefaultContainerName), TypeConverter(typeof(EntityDataSourceContainerNameConverter)), ] public string DefaultContainerName { get { return _helper.DefaultContainerName; } set { _helper.DefaultContainerName = value; } } [ DefaultValue(""), Category("Data"), ResourceDescription(WebControlsRes.PropertyDescription_EntitySetName), TypeConverter(typeof(EntityDataSourceEntitySetNameConverter)), ] public string EntitySetName { get { return _helper.EntitySetName; } set { _helper.EntitySetName = value; } } [ DefaultValue(""), Category("Data"), ResourceDescription(WebControlsRes.PropertyDescription_EntityTypeFilter), TypeConverter(typeof(EntityDataSourceEntityTypeFilterConverter)), ] public string EntityTypeFilter { get { return _helper.EntityTypeFilter; } set { _helper.EntityTypeFilter = value; } } [ Category("Data"), ResourceDescription(WebControlsRes.PropertyDescription_CommandText), DefaultValue(null), Editor(typeof(EntityDataSourceStatementEditor), typeof(UITypeEditor)), MergableProperty(false), ] public string CommandText { get { return _helper.CommandText; } set { _helper.CommandText = value; } } [ DefaultValue(""), Category("Data"), ResourceDescription(WebControlsRes.PropertyDescription_ConnectionString) ] public string ConnectionString { get { return _helper.ConnectionString; } set { _helper.ConnectionString = value; } } [ Category("Data"), ResourceDescription(WebControlsRes.PropertyDescription_OrderBy), DefaultValue(null), Editor(typeof(EntityDataSourceStatementEditor), typeof(UITypeEditor)), MergableProperty(false), ] public string OrderBy { get { return _helper.OrderBy; } set { _helper.OrderBy = value; } } [ Category("Data"), ResourceDescription(WebControlsRes.PropertyDescription_Select), DefaultValue(""), Editor(typeof(EntityDataSourceStatementEditor), typeof(UITypeEditor)), MergableProperty(false), ] public string Select { get { return _helper.Select; } set { _helper.Select = value; } } [ Category("Data"), ResourceDescription(WebControlsRes.PropertyDescription_Where), DefaultValue(null), Editor(typeof(EntityDataSourceStatementEditor), typeof(UITypeEditor)), MergableProperty(false), ] public string Where { get { return _helper.Where; } set { _helper.Where = value; } } #endregion #region Helper methods to manage properties and parameters in the statement editor internal bool AutoGenerateOrderByClause { get { return _helper.AutoGenerateOrderByClause; } } internal bool AutoGenerateWhereClause { get { return _helper.AutoGenerateWhereClause; } } internal ParameterCollection CloneCommandParameters() { return CloneParameterCollection(_helper.CommandParameters); } internal ParameterCollection CloneOrderByParameters() { return CloneParameterCollection(_helper.OrderByParameters); } internal ParameterCollection CloneSelectParameters() { return CloneParameterCollection(_helper.SelectParameters); } internal ParameterCollection CloneWhereParameters() { return CloneParameterCollection(_helper.WhereParameters); } private ParameterCollection CloneParameterCollection(ParameterCollection original) { ParameterCollection clones = new ParameterCollection(); CloneParameters(original, clones); return clones; } internal void CloneParameters(ParameterCollection originalParameters, ParameterCollection newParameters) { foreach (ICloneable parameter in originalParameters) { Parameter clone = (Parameter)parameter.Clone(); RegisterClone(parameter, clone); newParameters.Add(clone); } } internal void SetCommandParameterContents(ParameterCollection newParams) { SetParameters(_helper.CommandParameters, newParams); } internal void SetOrderByParameterContents(ParameterCollection newParams) { SetParameters(_helper.OrderByParameters, newParams); } internal void SetSelectParameterContents(ParameterCollection newParams) { SetParameters(_helper.SelectParameters, newParams); } internal void SetWhereParameterContents(ParameterCollection newParams) { SetParameters(_helper.WhereParameters, newParams); } private void SetParameters(ParameterCollection original, ParameterCollection newParams) { original.Clear(); foreach (Parameter parameter in newParams) { original.Add(parameter); } } #endregion protected override void PreFilterProperties(System.Collections.IDictionary properties) { base.PreFilterProperties(properties); // Properties that are overridden in the designer because they have custom editors or converters Type designerType = GetType(); properties["ConnectionString"] = TypeDescriptor.CreateProperty(designerType, "ConnectionString", typeof(string)); properties["DefaultContainerName"] = TypeDescriptor.CreateProperty(designerType, "DefaultContainerName", typeof(string)); properties["EntitySetName"] = TypeDescriptor.CreateProperty(designerType, "EntitySetName", typeof(string)); properties["EntityTypeFilter"] = TypeDescriptor.CreateProperty(designerType, "EntityTypeFilter", typeof(string)); properties["CommandText"] = TypeDescriptor.CreateProperty(designerType, "CommandText", typeof(string)); properties["OrderBy"] = TypeDescriptor.CreateProperty(designerType, "OrderBy", typeof(string)); properties["Select"] = TypeDescriptor.CreateProperty(designerType, "Select", typeof(string)); properties["Where"] = TypeDescriptor.CreateProperty(designerType, "Where", typeof(string)); // Properties that should be browsable in intellisense, but not visible in the designer property grid properties.Remove("ContextType"); } internal EntityDataSourceDesignerHelper Helper { get { return _helper; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KeyEvent.cs
- FlowDocument.cs
- MailAddressParser.cs
- InputLanguage.cs
- TemplateControl.cs
- DataGridViewColumnConverter.cs
- AnnotationAuthorChangedEventArgs.cs
- FtpWebResponse.cs
- SqlDataSourceStatusEventArgs.cs
- LocationUpdates.cs
- SerializationEventsCache.cs
- XpsImage.cs
- TypeProvider.cs
- ImmutableClientRuntime.cs
- XPathSelectionIterator.cs
- AsymmetricAlgorithm.cs
- CheckableControlBaseAdapter.cs
- PriorityItem.cs
- CheckoutException.cs
- ToolStripPanel.cs
- Part.cs
- DefaultExpression.cs
- TextFormatterContext.cs
- SyndicationLink.cs
- DependentList.cs
- ConfigurationConverterBase.cs
- GeneratedContractType.cs
- OleDbParameterCollection.cs
- SoapTypeAttribute.cs
- KnownIds.cs
- DataGridLength.cs
- PositiveTimeSpanValidatorAttribute.cs
- FileRecordSequence.cs
- NativeMethods.cs
- SelectionPattern.cs
- PopupRootAutomationPeer.cs
- ExtensibleClassFactory.cs
- PrtTicket_Editor.cs
- DoubleStorage.cs
- ProgressBarRenderer.cs
- GetImportFileNameRequest.cs
- VirtualDirectoryMapping.cs
- FieldAccessException.cs
- MessageUtil.cs
- FlowDocumentPageViewerAutomationPeer.cs
- CorrelationExtension.cs
- WsatAdminException.cs
- _ContextAwareResult.cs
- JapaneseCalendar.cs
- XmlDataSourceNodeDescriptor.cs
- GenericXmlSecurityToken.cs
- ImageConverter.cs
- SqlXmlStorage.cs
- followingquery.cs
- AttributeCollection.cs
- Exceptions.cs
- ExclusiveTcpTransportManager.cs
- RequestCacheValidator.cs
- Logging.cs
- ConsumerConnectionPoint.cs
- ProgressPage.cs
- LockedAssemblyCache.cs
- BitmapCodecInfoInternal.cs
- ReferenceConverter.cs
- SqlTypeConverter.cs
- DesignerForm.cs
- CompositeKey.cs
- CaretElement.cs
- SlotInfo.cs
- safex509handles.cs
- FindCriteriaApril2005.cs
- XmlAttributeCollection.cs
- RuleSettings.cs
- NavigationPropertySingletonExpression.cs
- DataGridCell.cs
- XPathNodeList.cs
- HttpResponseWrapper.cs
- TrackingMemoryStream.cs
- NameValuePair.cs
- SoapReflectionImporter.cs
- TextCompositionEventArgs.cs
- FileDialog_Vista_Interop.cs
- XmlUtil.cs
- CrossAppDomainChannel.cs
- PeerNameRecord.cs
- DateTimePicker.cs
- PersonalizableAttribute.cs
- SQLBoolean.cs
- EncodingInfo.cs
- StringDictionary.cs
- BitmapEffectDrawingContent.cs
- PageCodeDomTreeGenerator.cs
- GeometryDrawing.cs
- DataGridItemEventArgs.cs
- NgenServicingAttributes.cs
- ReadOnlyTernaryTree.cs
- ListViewItemEventArgs.cs
- RightNameExpirationInfoPair.cs
- ToolStripDropDownClosedEventArgs.cs
- ExpressionLink.cs