Example #1
0
        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();*/
        }
Example #2
0
        /// <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)
 {
 }