e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
622 lines
24 KiB
C#
622 lines
24 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="TemplatingOptionsDialog.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.UI.Design.MobileControls
|
|
{
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.Collections;
|
|
using System.Collections.Specialized;
|
|
using System.Globalization;
|
|
// using System.Web.UI.Design.Util;
|
|
using System.Web.UI.Design.MobileControls.Util;
|
|
using System.Web.UI.MobileControls;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Forms.Design;
|
|
|
|
using Panel = System.Windows.Forms.Panel;
|
|
using Button = System.Windows.Forms.Button;
|
|
using Label = System.Windows.Forms.Label;
|
|
using ComboBox = System.Windows.Forms.ComboBox;
|
|
using Form = System.Windows.Forms.Form;
|
|
using UnsettableComboBox = System.Web.UI.Design.MobileControls.Util.UnsettableComboBox;
|
|
|
|
[
|
|
System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand,
|
|
Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)
|
|
]
|
|
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
|
|
internal class TemplatingOptionsDialog : DesignerForm, IRefreshableDeviceSpecificEditor, IDeviceSpecificDesigner
|
|
{
|
|
private System.Windows.Forms.Control _header;
|
|
private MobileTemplatedControlDesigner _designer;
|
|
private IDeviceSpecificDesigner _dsd;
|
|
private DeviceSpecific _ds;
|
|
private ISite _site;
|
|
private ComboBox _cmbChoices;
|
|
private UnsettableComboBox _cmbSchemas;
|
|
private Button _btnEditChoices;
|
|
private Button _btnClose;
|
|
private int _mergingContext;
|
|
private StringCollection _strCollSchemas;
|
|
private Label _lblChoices = new Label();
|
|
private Label _lblSchemas = new Label();
|
|
private Panel _pnlMain = new Panel();
|
|
private String[] _schemasFriendly;
|
|
private String[] _schemasUrl;
|
|
|
|
private const int _standardSchemaNumber = 2;
|
|
|
|
internal TemplatingOptionsDialog(MobileTemplatedControlDesigner designer,
|
|
ISite site,
|
|
int mergingContext) : base(site)
|
|
{
|
|
_strCollSchemas = new StringCollection();
|
|
_mergingContext = mergingContext;
|
|
_designer = designer;
|
|
_site = site;
|
|
_dsd = (IDeviceSpecificDesigner) designer;
|
|
_dsd.SetDeviceSpecificEditor(this);
|
|
|
|
InitializeComponent();
|
|
|
|
this.Text = SR.GetString(SR.TemplatingOptionsDialog_Title);
|
|
_btnClose.Text = SR.GetString(SR.GenericDialog_CloseBtnCaption);
|
|
_lblSchemas.Text = SR.GetString(SR.TemplatingOptionsDialog_SchemaCaption);
|
|
_btnEditChoices.Text = SR.GetString(SR.TemplatingOptionsDialog_EditBtnCaption);
|
|
_lblChoices.Text = SR.GetString(SR.TemplatingOptionsDialog_FilterCaption);
|
|
_schemasFriendly = new String[] { SR.GetString(SR.TemplatingOptionsDialog_HTMLSchemaFriendly),
|
|
SR.GetString(SR.TemplatingOptionsDialog_CHTMLSchemaFriendly) };
|
|
_schemasUrl = new String[] { SR.GetString(SR.MarkupSchema_HTML32),
|
|
SR.GetString(SR.MarkupSchema_cHTML10) };
|
|
|
|
int tabOffset = GenericUI.InitDialog(
|
|
this,
|
|
_dsd,
|
|
_mergingContext
|
|
);
|
|
|
|
SetTabIndexes(tabOffset);
|
|
_dsd.RefreshHeader(_mergingContext);
|
|
String currentDeviceSpecificID = _dsd.CurrentDeviceSpecificID;
|
|
if (null != currentDeviceSpecificID && currentDeviceSpecificID.Length > 0)
|
|
{
|
|
DeviceSpecific ds;
|
|
_dsd.GetDeviceSpecific(currentDeviceSpecificID, out ds);
|
|
((IRefreshableDeviceSpecificEditor) this).Refresh(currentDeviceSpecificID, ds);
|
|
}
|
|
UpdateControlEnabling();
|
|
}
|
|
|
|
protected override string HelpTopic {
|
|
get {
|
|
return "net.Mobile.TemplatingOptionsDialog";
|
|
}
|
|
}
|
|
|
|
private void SetTabIndexes(int tabIndexOffset)
|
|
{
|
|
_pnlMain.TabIndex = ++tabIndexOffset;
|
|
_lblChoices.TabIndex = ++tabIndexOffset;
|
|
_cmbChoices.TabIndex = ++tabIndexOffset;
|
|
_btnEditChoices.TabIndex = ++tabIndexOffset;
|
|
_lblSchemas.TabIndex = ++tabIndexOffset;
|
|
_cmbSchemas.TabIndex = ++tabIndexOffset;
|
|
_btnClose.TabIndex = ++tabIndexOffset;
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
_cmbChoices = new ComboBox();
|
|
_cmbSchemas = new UnsettableComboBox();
|
|
|
|
_btnEditChoices = new Button();
|
|
_btnClose = new Button();
|
|
|
|
_lblChoices.Location = new System.Drawing.Point(0, 0);
|
|
_lblChoices.Size = new System.Drawing.Size(276, 16);
|
|
_lblChoices.TabStop = false;
|
|
|
|
_cmbChoices.Location = new System.Drawing.Point(0, 16);
|
|
_cmbChoices.Size = new System.Drawing.Size(195, 21);
|
|
_cmbChoices.TabStop = true;
|
|
_cmbChoices.Enabled = false;
|
|
_cmbChoices.Sorted = true;
|
|
_cmbChoices.DropDownStyle = ComboBoxStyle.DropDownList;
|
|
_cmbChoices.SelectedIndexChanged += new EventHandler(this.OnSelectedIndexChangedChoicesComboBox);
|
|
|
|
_btnEditChoices.Location = new System.Drawing.Point(201, 15);
|
|
_btnEditChoices.Size = new System.Drawing.Size(75, 23);
|
|
_btnEditChoices.TabStop = true;
|
|
_btnEditChoices.Click += new EventHandler(this.OnClickEditChoicesButton);
|
|
|
|
_lblSchemas.Location = new System.Drawing.Point(0, 48);
|
|
_lblSchemas.Size = new System.Drawing.Size(276, 16);
|
|
_lblSchemas.TabStop = false;
|
|
|
|
_cmbSchemas.Location = new System.Drawing.Point(0, 64);
|
|
_cmbSchemas.Size = new System.Drawing.Size(276, 21);
|
|
_cmbSchemas.TabStop = true;
|
|
_cmbSchemas.Sorted = true;
|
|
_cmbSchemas.DropDownStyle = ComboBoxStyle.DropDown;
|
|
_cmbSchemas.LostFocus += new EventHandler(this.OnLostFocusSchemasComboBox);
|
|
|
|
_btnClose.Location = new System.Drawing.Point(201, 104);
|
|
_btnClose.Size = new System.Drawing.Size(75, 23);
|
|
_btnClose.TabStop = true;
|
|
_btnClose.Click += new EventHandler(this.OnClickCloseButton);
|
|
|
|
this._pnlMain.Controls.AddRange(new System.Windows.Forms.Control[] {
|
|
this._btnClose,
|
|
this._cmbSchemas,
|
|
this._lblSchemas,
|
|
this._btnEditChoices,
|
|
this._lblChoices,
|
|
this._cmbChoices
|
|
});
|
|
this._pnlMain.Location = new System.Drawing.Point(6, 5);
|
|
this._pnlMain.Size = new System.Drawing.Size(276, 128);
|
|
this._pnlMain.TabIndex = 0;
|
|
this._pnlMain.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left);
|
|
|
|
this.ClientSize = new Size(285, 139);
|
|
this.AcceptButton = _btnClose;
|
|
this.CancelButton = _btnClose;
|
|
this.Controls.Add(_pnlMain);
|
|
}
|
|
|
|
private void FillChoicesComboBox()
|
|
{
|
|
Debug.Assert(_dsd != null);
|
|
|
|
_cmbChoices.Items.Clear();
|
|
|
|
if (null != _ds || null != _dsd.UnderlyingObject)
|
|
{
|
|
_cmbChoices.Items.Add(SR.GetString(SR.DeviceFilter_NoChoice));
|
|
}
|
|
|
|
if (null == _ds)
|
|
{
|
|
if (_cmbChoices.Items.Count > 0)
|
|
{
|
|
_cmbChoices.SelectedIndex = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bool addedDefault = false;
|
|
foreach (DeviceSpecificChoice choice in _ds.Choices)
|
|
{
|
|
if (choice.Filter.Length == 0)
|
|
{
|
|
if (!addedDefault)
|
|
{
|
|
_cmbChoices.Items.Add(SR.GetString(SR.DeviceFilter_DefaultChoice));
|
|
addedDefault = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!choice.Filter.Equals(SR.GetString(SR.DeviceFilter_NoChoice)))
|
|
{
|
|
_cmbChoices.Items.Add(DesignerUtility.ChoiceToUniqueIdentifier(choice));
|
|
}
|
|
}
|
|
}
|
|
if (null != _designer.CurrentChoice && _designer.CurrentDeviceSpecific == _ds)
|
|
{
|
|
if (_designer.CurrentChoice.Filter.Length == 0)
|
|
{
|
|
_cmbChoices.SelectedItem = SR.GetString(SR.DeviceFilter_DefaultChoice);
|
|
}
|
|
else
|
|
{
|
|
_cmbChoices.SelectedItem = DesignerUtility.ChoiceToUniqueIdentifier(_designer.CurrentChoice);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Debug.Assert(_cmbChoices.Items.Count > 0);
|
|
_cmbChoices.SelectedItem = SR.GetString(SR.DeviceFilter_NoChoice);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void FillSchemasComboBox()
|
|
{
|
|
String friendlySchema;
|
|
|
|
_cmbSchemas.Items.Clear();
|
|
_cmbSchemas.Text = String.Empty;
|
|
|
|
if (null != _ds)
|
|
{
|
|
// Add the standard HTML 3.2 and cHTML1.0 schemas
|
|
for (int i = 0; i < _standardSchemaNumber; i++)
|
|
{
|
|
_cmbSchemas.AddItem(_schemasFriendly[i]);
|
|
}
|
|
|
|
// Add the Xmlns entries existing in the applied device filters of the page
|
|
IContainer container = _site.Container;
|
|
Debug.Assert(null != container, "container is null");
|
|
ComponentCollection allComponents = container.Components;
|
|
_strCollSchemas.Clear();
|
|
|
|
foreach (IComponent component in allComponents)
|
|
{
|
|
ExtractDeviceFilterSchemas(component as System.Web.UI.Control);
|
|
}
|
|
|
|
foreach (String strSchema in _strCollSchemas)
|
|
{
|
|
friendlySchema = UrlToFriendlySchema(strSchema);
|
|
if (!CaseSensitiveComboSearch(_cmbSchemas, friendlySchema))
|
|
{
|
|
_cmbSchemas.AddItem(friendlySchema);
|
|
}
|
|
}
|
|
|
|
// Add the Xmlns entries existing in the currently selected device filter
|
|
foreach (DeviceSpecificChoice choice in _ds.Choices)
|
|
{
|
|
friendlySchema = UrlToFriendlySchema(choice.Xmlns);
|
|
if (friendlySchema != null && friendlySchema.Length > 0 &&
|
|
!CaseSensitiveComboSearch(_cmbSchemas, friendlySchema))
|
|
{
|
|
_cmbSchemas.AddItem(friendlySchema);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private String FriendlyToUrlSchema(String friendlySchema)
|
|
{
|
|
for (int i = 0; i < _standardSchemaNumber; i++)
|
|
{
|
|
if (0 == String.Compare(_schemasFriendly[i], friendlySchema, StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
return _schemasUrl[i];
|
|
}
|
|
}
|
|
return friendlySchema;
|
|
}
|
|
|
|
private String UrlToFriendlySchema(String urlSchema)
|
|
{
|
|
for (int i = 0; i < _standardSchemaNumber; i++)
|
|
{
|
|
if (0 == String.Compare(_schemasUrl[i], urlSchema, StringComparison.Ordinal))
|
|
{
|
|
return _schemasFriendly[i];
|
|
}
|
|
}
|
|
return urlSchema;
|
|
}
|
|
|
|
private void SetSchemaValue()
|
|
{
|
|
if (_ds != null &&
|
|
_cmbChoices.SelectedIndex >= 0)
|
|
{
|
|
String currentChoiceIdentifier = _cmbChoices.SelectedItem as String;
|
|
if (currentChoiceIdentifier != null && !currentChoiceIdentifier.Equals(SR.GetString(SR.DeviceFilter_NoChoice)))
|
|
{
|
|
DeviceSpecificChoice dsc = GetChoiceFromIdentifier((String) currentChoiceIdentifier, _ds);
|
|
_cmbSchemas.Text = UrlToFriendlySchema(dsc.Xmlns);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void ExtractDeviceFilterSchemas(System.Web.UI.Control control)
|
|
{
|
|
if (null == control)
|
|
{
|
|
return;
|
|
}
|
|
|
|
MobileControl mobileControl = control as MobileControl;
|
|
if (null != mobileControl)
|
|
{
|
|
DeviceSpecific deviceSpecific;
|
|
DeviceSpecificChoiceCollection choices;
|
|
if (mobileControl is StyleSheet)
|
|
{
|
|
StyleSheet styleSheet = (StyleSheet) mobileControl;
|
|
ICollection styleKeys = styleSheet.Styles;
|
|
foreach (String key in styleKeys)
|
|
{
|
|
Style style = styleSheet[key];
|
|
deviceSpecific = style.DeviceSpecific;
|
|
if (null != deviceSpecific && _ds != deviceSpecific)
|
|
{
|
|
choices = deviceSpecific.Choices;
|
|
|
|
foreach (DeviceSpecificChoice choice in choices)
|
|
{
|
|
if (choice.Xmlns != null && choice.Xmlns.Length > 0 &&
|
|
!_strCollSchemas.Contains(choice.Xmlns))
|
|
{
|
|
_strCollSchemas.Add(choice.Xmlns);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
deviceSpecific = mobileControl.DeviceSpecific;
|
|
if (null != deviceSpecific && _ds != deviceSpecific)
|
|
{
|
|
choices = deviceSpecific.Choices;
|
|
|
|
foreach (DeviceSpecificChoice choice in choices)
|
|
{
|
|
if (choice.Xmlns != null && choice.Xmlns.Length > 0 &&
|
|
!_strCollSchemas.Contains(choice.Xmlns))
|
|
{
|
|
_strCollSchemas.Add(choice.Xmlns);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (control.HasControls())
|
|
{
|
|
foreach (System.Web.UI.Control child in control.Controls)
|
|
{
|
|
ExtractDeviceFilterSchemas(child);
|
|
}
|
|
}
|
|
}
|
|
|
|
private bool CaseSensitiveComboSearch(ComboBox cmb, String str)
|
|
{
|
|
foreach (Object obj in cmb.Items)
|
|
{
|
|
if (String.Compare(str, (String) obj, StringComparison.Ordinal) == 0)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private void UpdateControlEnabling()
|
|
{
|
|
_btnEditChoices.Enabled = (_dsd.UnderlyingObject != null);
|
|
_cmbChoices.Enabled = (_cmbChoices.Items.Count > 0);
|
|
_cmbSchemas.Enabled = (_cmbChoices.Items.Count > 1) &&
|
|
(!((String)_cmbChoices.SelectedItem).Equals(SR.GetString(SR.DeviceFilter_NoChoice)));
|
|
}
|
|
|
|
private DeviceSpecificChoice GetChoiceFromIdentifier(String choiceIdentifier, DeviceSpecific ds)
|
|
{
|
|
if (null == ds)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
Debug.Assert(ds.Choices != null);
|
|
|
|
foreach (DeviceSpecificChoice choice in ds.Choices)
|
|
{
|
|
if (DesignerUtility.ChoiceToUniqueIdentifier(choice).Equals(choiceIdentifier) ||
|
|
(choice.Filter.Length == 0 &&
|
|
choiceIdentifier.Equals(SR.GetString(SR.DeviceFilter_DefaultChoice))))
|
|
{
|
|
return choice;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
bool IRefreshableDeviceSpecificEditor.RequestRefresh()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
void IRefreshableDeviceSpecificEditor.Refresh(String deviceSpecificID, DeviceSpecific ds)
|
|
{
|
|
_ds = ds;
|
|
FillChoicesComboBox();
|
|
FillSchemasComboBox();
|
|
SetSchemaValue();
|
|
UpdateControlEnabling();
|
|
}
|
|
|
|
void IRefreshableDeviceSpecificEditor.UnderlyingObjectsChanged()
|
|
{
|
|
}
|
|
|
|
void IRefreshableDeviceSpecificEditor.BeginExternalDeviceSpecificEdit() {}
|
|
void IRefreshableDeviceSpecificEditor.EndExternalDeviceSpecificEdit(
|
|
bool commitChanges) {}
|
|
void IRefreshableDeviceSpecificEditor.DeviceSpecificRenamed(
|
|
String oldDeviceSpecificID, String newDeviceSpecificID) {}
|
|
void IRefreshableDeviceSpecificEditor.DeviceSpecificDeleted(
|
|
String deviceSpecificID) {}
|
|
|
|
private void OnClickCloseButton(Object sender, EventArgs e)
|
|
{
|
|
_dsd.UseCurrentDeviceSpecificID();
|
|
|
|
if (0 <= _cmbChoices.SelectedIndex &&
|
|
!_cmbChoices.Text.Equals(SR.GetString(SR.DeviceFilter_NoChoice)))
|
|
{
|
|
_designer.CurrentChoice = GetChoiceFromIdentifier((String) _cmbChoices.SelectedItem, _ds);
|
|
}
|
|
else
|
|
{
|
|
_designer.CurrentChoice = null;
|
|
}
|
|
|
|
Close();
|
|
DialogResult = DialogResult.OK;
|
|
}
|
|
|
|
private void OnSelectedIndexChangedChoicesComboBox(Object sender, EventArgs e)
|
|
{
|
|
if (_cmbChoices.Text.Equals(SR.GetString(SR.DeviceFilter_NoChoice)))
|
|
{
|
|
_cmbSchemas.Enabled = false;
|
|
_cmbSchemas.Text = String.Empty;
|
|
}
|
|
else
|
|
{
|
|
_cmbSchemas.Enabled = true;
|
|
SetSchemaValue();
|
|
}
|
|
|
|
_designer.SetTemplateVerbsDirty();
|
|
}
|
|
|
|
private void OnLostFocusSchemasComboBox(Object sender, EventArgs e)
|
|
{
|
|
Debug.Assert(_ds != null);
|
|
Debug.Assert(_cmbChoices.SelectedIndex >= 0);
|
|
DeviceSpecificChoice choice = GetChoiceFromIdentifier((String) _cmbChoices.SelectedItem, _ds);
|
|
String urlSchema = FriendlyToUrlSchema(_cmbSchemas.Text);
|
|
if (0 != String.Compare(choice.Xmlns, urlSchema, StringComparison.Ordinal))
|
|
{
|
|
String previousUrlSchema = choice.Xmlns;
|
|
if (!_strCollSchemas.Contains(previousUrlSchema))
|
|
{
|
|
int previousSchemaOccurrences = 0;
|
|
foreach (DeviceSpecificChoice choiceTmp in _ds.Choices)
|
|
{
|
|
if (0 == String.Compare(choiceTmp.Xmlns, previousUrlSchema, StringComparison.Ordinal))
|
|
{
|
|
previousSchemaOccurrences++;
|
|
}
|
|
}
|
|
Debug.Assert(previousSchemaOccurrences > 0);
|
|
if (previousSchemaOccurrences == 1)
|
|
{
|
|
bool standardSchema = false;
|
|
for (int i = 0; i < _standardSchemaNumber; i++)
|
|
{
|
|
if (0 == String.Compare(_schemasUrl[i], previousUrlSchema, StringComparison.Ordinal))
|
|
{
|
|
standardSchema = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!standardSchema)
|
|
{
|
|
_cmbSchemas.Items.Remove(UrlToFriendlySchema(previousUrlSchema));
|
|
}
|
|
}
|
|
}
|
|
choice.Xmlns = urlSchema;
|
|
String friendlySchema = UrlToFriendlySchema(urlSchema);
|
|
if (friendlySchema == null || friendlySchema.Length > 0 &&
|
|
!CaseSensitiveComboSearch(_cmbSchemas, friendlySchema))
|
|
{
|
|
_cmbSchemas.AddItem(friendlySchema);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnClickEditChoicesButton(Object source, EventArgs e)
|
|
{
|
|
AppliedDeviceFiltersDialog dialog = new AppliedDeviceFiltersDialog(this, _mergingContext);
|
|
if (dialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
_designer.UpdateRendering();
|
|
FillChoicesComboBox();
|
|
FillSchemasComboBox();
|
|
SetSchemaValue();
|
|
UpdateControlEnabling();
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
// Begin IDeviceSpecificDesigner Implementation
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
void IDeviceSpecificDesigner.SetDeviceSpecificEditor
|
|
(IRefreshableDeviceSpecificEditor editor)
|
|
{
|
|
}
|
|
|
|
String IDeviceSpecificDesigner.CurrentDeviceSpecificID
|
|
{
|
|
get
|
|
{
|
|
return _dsd.CurrentDeviceSpecificID;
|
|
}
|
|
}
|
|
|
|
System.Windows.Forms.Control IDeviceSpecificDesigner.Header
|
|
{
|
|
get
|
|
{
|
|
return _header;
|
|
}
|
|
}
|
|
|
|
System.Web.UI.Control IDeviceSpecificDesigner.UnderlyingControl
|
|
{
|
|
get
|
|
{
|
|
return _dsd.UnderlyingControl;
|
|
}
|
|
}
|
|
|
|
Object IDeviceSpecificDesigner.UnderlyingObject
|
|
{
|
|
get
|
|
{
|
|
return _dsd.UnderlyingObject;
|
|
}
|
|
}
|
|
|
|
bool IDeviceSpecificDesigner.GetDeviceSpecific(String deviceSpecificParentID, out DeviceSpecific ds)
|
|
{
|
|
return _dsd.GetDeviceSpecific(deviceSpecificParentID, out ds);
|
|
}
|
|
|
|
void IDeviceSpecificDesigner.SetDeviceSpecific(String deviceSpecificParentID, DeviceSpecific ds)
|
|
{
|
|
_ds = ds;
|
|
_dsd.SetDeviceSpecific(deviceSpecificParentID, ds);
|
|
}
|
|
|
|
void IDeviceSpecificDesigner.InitHeader(int mergingContext)
|
|
{
|
|
HeaderPanel panel = new HeaderPanel();
|
|
HeaderLabel lblDescription = new HeaderLabel();
|
|
|
|
lblDescription.TabIndex = 0;
|
|
lblDescription.Text = SR.GetString(SR.MobileControl_SettingGenericChoiceDescription);
|
|
|
|
panel.Height = lblDescription.Height;
|
|
panel.Width = lblDescription.Width;
|
|
panel.Controls.Add(lblDescription);
|
|
_header = panel;
|
|
}
|
|
|
|
void IDeviceSpecificDesigner.RefreshHeader(int mergingContext)
|
|
{
|
|
}
|
|
|
|
void IDeviceSpecificDesigner.UseCurrentDeviceSpecificID()
|
|
{
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// End IDeviceSpecificDesigner Implementation
|
|
/////////////////////////////////////////////////////////////////////////
|
|
}
|
|
}
|