Forex_Strategy_Builder.Strategy_Layout.RebuildStrategyControls C# (CSharp) Method

RebuildStrategyControls() public method

Rebuilds all the controls in panel Strategy
public RebuildStrategyControls ( Strategy strategy ) : void
strategy Strategy
return void
        public void RebuildStrategyControls(Strategy strategy)
        {
            this.strategy = strategy;
            slots = strategy.Slots;
            flowLayoutStrategy.SuspendLayout();
            flowLayoutStrategy.Controls.Clear();
            InitializeStrategySlots();
            ArrangeStrategyControls();
            if (showAddSlotButtons) SetAddSlotButtons();
            flowLayoutStrategy.ResumeLayout();
        }

Usage Example

        /// <summary>
        /// Creates a new strategy layout using Data.Strategy
        /// </summary>
        protected void RebuildStrategyLayout()
        {
            strategyLayout.RebuildStrategyControls(Data.Strategy.Clone());
            strategyLayout.pnlProperties.Click += new EventHandler(PnlAveraging_Click);
            for (int iSlot = 0; iSlot < Data.Strategy.Slots; iSlot++)
            {
                ToolStripMenuItem miEdit = new ToolStripMenuItem();
                miEdit.Text   = Language.T("Edit") + "...";
                miEdit.Image  = Properties.Resources.edit;
                miEdit.Name   = "Edit";
                miEdit.Tag    = iSlot;
                miEdit.Click += new EventHandler(SlotContextMenu_Click);

                ToolStripMenuItem miUpwards = new ToolStripMenuItem();
                miUpwards.Text    = Language.T("Move Up");
                miUpwards.Image   = Properties.Resources.up_arrow;
                miUpwards.Name    = "Upwards";
                miUpwards.Tag     = iSlot;
                miUpwards.Click  += new EventHandler(SlotContextMenu_Click);
                miUpwards.Enabled = (iSlot > 1 && Data.Strategy.Slot[iSlot].SlotType == Data.Strategy.Slot[iSlot - 1].SlotType);

                ToolStripMenuItem miDownwards = new ToolStripMenuItem();
                miDownwards.Text    = Language.T("Move Down");
                miDownwards.Image   = Properties.Resources.down_arrow;
                miDownwards.Name    = "Downwards";
                miDownwards.Tag     = iSlot;
                miDownwards.Click  += new EventHandler(SlotContextMenu_Click);
                miDownwards.Enabled = (iSlot < Data.Strategy.Slots - 1 && Data.Strategy.Slot[iSlot].SlotType == Data.Strategy.Slot[iSlot + 1].SlotType);

                ToolStripMenuItem miDuplicate = new ToolStripMenuItem();
                miDuplicate.Text    = Language.T("Duplicate");
                miDuplicate.Image   = Properties.Resources.duplicate;
                miDuplicate.Name    = "Duplicate";
                miDuplicate.Tag     = iSlot;
                miDuplicate.Click  += new EventHandler(SlotContextMenu_Click);
                miDuplicate.Enabled = (Data.Strategy.Slot[iSlot].SlotType == SlotTypes.OpenFilter && Data.Strategy.OpenFilters < Strategy.MaxOpenFilters ||
                                       Data.Strategy.Slot[iSlot].SlotType == SlotTypes.CloseFilter && Data.Strategy.CloseFilters < Strategy.MaxCloseFilters);

                ToolStripMenuItem miDelete = new ToolStripMenuItem();
                miDelete.Text    = Language.T("Delete");
                miDelete.Image   = Properties.Resources.close_button;
                miDelete.Name    = "Delete";
                miDelete.Tag     = iSlot;
                miDelete.Click  += new EventHandler(SlotContextMenu_Click);
                miDelete.Enabled = (Data.Strategy.Slot[iSlot].SlotType == SlotTypes.OpenFilter || Data.Strategy.Slot[iSlot].SlotType == SlotTypes.CloseFilter);

                strategyLayout.apnlSlot[iSlot].ContextMenuStrip = new ContextMenuStrip();
                strategyLayout.apnlSlot[iSlot].ContextMenuStrip.Items.AddRange(new ToolStripMenuItem[] { miEdit, miUpwards, miDownwards, miDuplicate, miDelete });

                strategyLayout.apnlSlot[iSlot].MouseClick += new MouseEventHandler(PnlSlot_MouseUp);
                if (iSlot != Data.Strategy.OpenSlot && iSlot != Data.Strategy.CloseSlot)
                {
                    strategyLayout.abtnRemoveSlot[iSlot].Click += new EventHandler(BtnRemoveSlot_Click);
                }
            }

            SetSrategyDescriptionButton();
        }