/// <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();
}