public static void Write(this FormMenuButtonControl menuItem, CSideWriter writer, int propertyIndentation) { var debt = 0; var fieldFormControl = menuItem as FormControl; var controlID = BuildControlPart(fieldFormControl.ID.ToString(), 4, ref debt); var controlType = BuildControlPart(fieldFormControl.Type.ToString(), 13, ref debt); var controlXPos = BuildControlPart(fieldFormControl.PosX.ToString(), 5, ref debt); var controlYPos = BuildControlPart(fieldFormControl.PosY.ToString(), 5, ref debt); var controlWidth = BuildControlPart(fieldFormControl.Width.ToString(), 5, ref debt); var controlHeight = BuildControlPart(fieldFormControl.Height.ToString(), 5, ref debt); var relevantProperties = fieldFormControl.Properties.Where(p => p.HasValue); var declaration = string.Format("{{ {0};{1};{2};{3};{4};{5}", controlID, controlType, controlXPos, controlYPos, controlWidth, controlHeight); writer.Write(declaration); writer.Write(relevantProperties.Any() ? ";" : " "); if ((writer.Column > propertyIndentation) && (relevantProperties.Any())) { writer.Indent(propertyIndentation); writer.WriteLine(""); } else { writer.Indent(writer.Column); } relevantProperties.Write(PropertiesStyle.Field, writer); //var lastProperty = relevantProperties.LastOrDefault(); //if (lastProperty != null) // if (lastProperty is TriggerProperty) // writer.Write(new string(' ', lastProperty.Name.Length + 2)); if (menuItem.MenuItems.Any()) { writer.Write("Menu=MENUITEMS"); writer.Write("{"); writer.Write("}"); } writer.WriteLine("}"); writer.Unindent(); /* * var debt = 0; * var controlID = BuildControlPart(containerPageControl.ID.ToString(), 4, ref debt); * var controlIndentation = BuildControlPart(containerPageControl.IndentationLevel.AsString(), 4, ref debt); * var controlType = BuildControlPart("Container", 10, ref debt); * var declaration = string.Format("{{ {0};{1};{2};", controlID, controlIndentation, controlType); * * writer.WriteLine(declaration); * * writer.Indent(propertyIndentation); * containerPageControl.Properties.Write(PropertiesStyle.Field, writer); * writer.WriteLine("}"); * writer.Unindent(); * writer.InnerWriter.WriteLine();*/ }
/// <summary> /// Run the process /// </summary> public override void run() { // Caption this.form.FormDesign.Caption = this.labelManager.createLabel(this.form.FormDesign.Caption); // Form controls foreach (FormControl control in this.form.FormDesign.FormControls) { switch (control.Type) { case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.String: FormStringControl stringControl = control as FormStringControl; stringControl.Label = this.labelManager.createLabel(stringControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.CheckBox: FormCheckBoxControl checkboxControl = control as FormCheckBoxControl; checkboxControl.Label = this.labelManager.createLabel(checkboxControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Group: FormGroupControl groupControl = control as FormGroupControl; groupControl.Caption = this.labelManager.createLabel(groupControl.Caption); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Button: FormButtonControl buttonControl = control as FormButtonControl; buttonControl.Text = this.labelManager.createLabel(buttonControl.Text); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Real: FormRealControl realControl = control as FormRealControl; realControl.Label = this.labelManager.createLabel(realControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Integer: FormIntegerControl integerControl = control as FormIntegerControl; integerControl.Label = this.labelManager.createLabel(integerControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.ComboBox: FormComboBoxControl comboboxControl = control as FormComboBoxControl; comboboxControl.Label = this.labelManager.createLabel(comboboxControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Image: FormImageControl imageControl = control as FormImageControl; imageControl.Label = this.labelManager.createLabel(imageControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Date: FormDateControl dateControl = control as FormDateControl; dateControl.Label = this.labelManager.createLabel(dateControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.RadioButton: FormRadioButtonControl radioControl = control as FormRadioButtonControl; radioControl.Caption = this.labelManager.createLabel(radioControl.Caption); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.ButtonGroup: FormButtonGroupControl buttonGroupCaption = control as FormButtonGroupControl; buttonGroupCaption.Caption = this.labelManager.createLabel(buttonGroupCaption.Caption); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.TabPage: FormTabPageControl tabpageControl = control as FormTabPageControl; tabpageControl.Caption = this.labelManager.createLabel(tabpageControl.Caption); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.CommandButton: FormCommandButtonControl commandbuttonControl = control as FormCommandButtonControl; commandbuttonControl.Text = this.labelManager.createLabel(commandbuttonControl.Text); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.MenuButton: FormMenuButtonControl menubuttonControl = control as FormMenuButtonControl; menubuttonControl.Text = this.labelManager.createLabel(menubuttonControl.Text); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.MenuFunctionButton: FormMenuFunctionButtonControl menufunctionControl = control as FormMenuFunctionButtonControl; menufunctionControl.Text = this.labelManager.createLabel(menufunctionControl.Text); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.ListBox: FormListBoxControl listboxControl = control as FormListBoxControl; listboxControl.Label = this.labelManager.createLabel(listboxControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Time: FormTimeControl timeControl = control as FormTimeControl; timeControl.Label = this.labelManager.createLabel(timeControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.ButtonSeparator: FormButtonSeparatorControl buttonseparatorControl = control as FormButtonSeparatorControl; buttonseparatorControl.Text = this.labelManager.createLabel(buttonseparatorControl.Text); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Guid: FormGuidControl guidControl = control as FormGuidControl; guidControl.Label = this.labelManager.createLabel(guidControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.Int64: FormInt64Control int64Control = control as FormInt64Control; int64Control.Label = this.labelManager.createLabel(int64Control.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.DateTime: FormDateTimeControl datetimeControl = control as FormDateTimeControl; datetimeControl.Label = this.labelManager.createLabel(datetimeControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.ActionPane: FormActionPaneControl actionpaneControl = control as FormActionPaneControl; actionpaneControl.Caption = this.labelManager.createLabel(actionpaneControl.Caption); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.ActionPaneTab: FormActionPaneTabControl actionpanetabControl = control as FormActionPaneTabControl; actionpanetabControl.Caption = this.labelManager.createLabel(actionpanetabControl.Caption); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.SegmentedEntry: FormSegmentedEntryControl segmentedEntryControl = control as FormSegmentedEntryControl; segmentedEntryControl.Label = this.labelManager.createLabel(segmentedEntryControl.Label); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.DropDialogButton: FormDropDialogButtonControl dropDialogButtonControl = control as FormDropDialogButtonControl; dropDialogButtonControl.Text = this.labelManager.createLabel(dropDialogButtonControl.Text); break; case Microsoft.Dynamics.AX.Metadata.Core.MetaModel.FormControlType.ReferenceGroup: FormReferenceGroupControl referenceGroupControl = control as FormReferenceGroupControl; referenceGroupControl.Label = this.labelManager.createLabel(referenceGroupControl.Label); break; default: throw new NotImplementedException($"Form control type {control.Type.ToString()} is not implemented."); } control.HelpText = this.labelManager.createLabel(control.HelpText); } }
public FormMenuItem(FormMenuButtonControl parent) : base(parent) { }
internal FormMenuItem(int id, int?menuLevel, FormMenuButtonControl parent) : base(id, menuLevel, parent) { }