private void SelectActionType(MacroActionType actionType) { if (_macroActionItem != null) { _macroActionItem.MacroActionItemChanged -= MacroActionItem_MacroActionItemChanged; _macroActionItem.Dispose(); panelAction.Controls.Remove((Control)_macroActionItem); _macroActionItem = null; } linkLabelActionType.Text = actionType.ToString(); switch (actionType) { case MacroActionType.Start: case MacroActionType.Stop: case MacroActionType.Restart: ProcessActionBundle?.ChangeActionType(actionType); ActionBundle = ProcessActionBundle ?? new MacroActionBundle(actionType); _macroActionItem = new MacroProcessActionItem(ProcessActionBundle); break; case MacroActionType.Distribute: ActionBundle = DistributionActionBundle ?? new MacroActionBundle(actionType); _macroActionItem = new MacroDistributionActionItem(DistributionActionBundle); break; case MacroActionType.Wait: ActionBundle = WaitActionBundle ?? new MacroActionBundle(actionType); _macroActionItem = new MacroWaitActionItem(WaitActionBundle); break; } if (_macroActionItem != null) { labelSeparator.Visible = true; _macroActionItem.MacroActionItemChanged += MacroActionItem_MacroActionItemChanged; _macroActionItem.SetWidth(panelAction.Width); panelAction.Controls.Add((Control)_macroActionItem); } }
public void SetWidth(int width) { Width = width; _macroActionItem?.SetWidth(panelAction.Width); }