private void btnAddRectangle_Click(object sender, EventArgs e) { BorderItem item = new BorderItem(); SelectedTicket.Items.Insert(0, item); UpdateTicketLayout(); SelectedItem = item; isChanged = true; UpdateSaveButton(); }
public static Ticket Deserialize(IDictionary <string, object> dict) { string name = dict["name"].ToString(); IList <object> itemDicts = (IList <object>)dict["items"]; List <TicketItem> items = new List <TicketItem>(); foreach (IDictionary <string, object> itemDict in itemDicts) { TicketItem item = null; switch (itemDict["type"].ToString()) { case "date": item = DateItem.Deserialize(itemDict); break; case "text": item = TextItem.Deserialize(itemDict); break; case "ticket_number": item = TicketNumberItem.Deserialize(itemDict); break; case "line": item = LineItem.Deserialize(itemDict); break; case "border": item = BorderItem.Deserialize(itemDict); break; } if (item != null) { items.Add(item); } } return(new Ticket(name, items)); }
public void UpdateTicketLayout() { if (UpdatingTicketLayout) { return; } UpdatingTicketLayout = true; // Assumping no action removes a ticket and adds one too if (lbTickets.Items.Count != Project.Tickets.Count) { UpdateTicketList(); } Ticket selectedTicket = SelectedTicket; pnlTicketEditor.Visible = selectedTicket != null; btnEditTicket.Enabled = selectedTicket != null; btnDeleteTicket.Enabled = selectedTicket != null; pnlTicketItemButtons.Enabled = selectedTicket != null; pnlItemSettings.Enabled = selectedTicket != null; pnlTicketItems.Controls.Clear(); if (selectedTicket != null && this.pnlTicketEditor.Visible) { TicketItem previousItem = SelectedItem; // Assuming no action removes an item and adds one too if (lbItems.Items.Count != selectedTicket.Items.Count) { lbItems.Items.Clear(); foreach (TicketItem item in selectedTicket.Items) { lbItems.Items.Add(item); } if (selectedTicket.Items.Contains(previousItem)) { lbItems.SelectedItem = previousItem; } lbItems.Refresh(); } else { lbItems.Refresh(); } TicketItem selectedItem = SelectedItem; btnMoveItemDown.Enabled = selectedItem != null; btnDuplicateItem.Enabled = selectedItem != null; btnMoveItemUp.Enabled = selectedItem != null; btnRemoveItem.Enabled = selectedItem != null; if (selectedItem != null) { // Make sure selected index is good int index = SelectedTicket.Items.IndexOf(selectedItem); if (lbItems.SelectedIndex != index) { lbItems.SelectedIndex = index; } pnlGeneralItemSettings.Enabled = true; // Settings page visibility pnlSpecificItemSettings.Visible = true; pnlTextSettings.Visible = selectedItem is TextItem; pnlDateSettings.Visible = selectedItem is DateItem; pnlBorderSettings.Visible = selectedItem is BorderItem; pnlLineSettings.Visible = selectedItem is LineItem; pnlHorizontalScaling.Visible = false;// selectedItem is TextItem; // Field value depending on type if (selectedItem is TextItem) { TextItem text = (TextItem)selectedItem; cbTextFont.SelectedIndex = text.FontType == TextItem.TextFont.ArialBold ? 0 : 1; if (!text.CanEditText()) { tbTextString.Enabled = false; tbTextString.Text = "Automatic"; } else { tbTextString.Enabled = true; tbTextString.Text = text.Text; } nudTextSpacing.Value = text.TextSpacing; cbTextSize.Items.Clear(); if (text.FontType == TextItem.TextFont.ArialBold) { foreach (int i in new int[] { 8, 9, 10, 11, 12, 14, 16, 18 }) { cbTextSize.Items.Add(i); } } else { foreach (int i in new int[] { 8, 10, 12, 14 }) { cbTextSize.Items.Add(i); } } cbTextSize.SelectedItem = text.FontSize; if (cbTextSize.SelectedItem == null) { cbTextSize.SelectedIndex = 0; text.FontSize = (int)cbTextSize.SelectedItem; } if (selectedItem is DateItem) { tbDateFormat.Text = ((DateItem)selectedItem).DateFormat; } } else if (selectedItem is BorderItem) { BorderItem border = (BorderItem)selectedItem; nudBorderWidth.Value = border.Width; nudBorderHeight.Value = border.Height; nudBorderThickness.Value = border.Thickness; } else if (selectedItem is LineItem) { LineItem line = (LineItem)selectedItem; nudLineThickness.Value = line.Thickness; nudLineLength.Value = line.Length; cbLineDirection.SelectedIndex = line.LineDirection == LineItem.Direction.Horizontal ? 0 : 1; } // General settings nudPosX.Value = selectedItem.Position.X; nudPosY.Value = selectedItem.Position.Y; nudHorizontalScaling.Value = selectedItem.HorizontalScaling; if (selectedItem.HorizontalAlignment == TicketItem.Alignment.Begin) { cbPositionAlignmentHorizontal.SelectedIndex = 0; } else if (selectedItem.HorizontalAlignment == TicketItem.Alignment.Center) { cbPositionAlignmentHorizontal.SelectedIndex = 1; } else { cbPositionAlignmentHorizontal.SelectedIndex = 2; } if (selectedItem.VerticalAlignment == TicketItem.Alignment.Begin) { cbPositionAlignmentVertical.SelectedIndex = 0; } else if (selectedItem.VerticalAlignment == TicketItem.Alignment.Center) { cbPositionAlignmentVertical.SelectedIndex = 1; } else { cbPositionAlignmentVertical.SelectedIndex = 2; } if (selectedItem.Rotation == TicketItem.ItemRotation.R0) { cbRotation.SelectedIndex = 0; } else if (selectedItem.Rotation == TicketItem.ItemRotation.R270) { cbRotation.SelectedIndex = 3; } else if (selectedItem.Rotation == TicketItem.ItemRotation.R90) { cbRotation.SelectedIndex = 2; } else { cbRotation.SelectedIndex = 1; } } else { previousItem = null; pnlSpecificItemSettings.Visible = false; pnlGeneralItemSettings.Enabled = false; } // Redraw every item NOW HANDLED BY event pnlTicketItems.Paint //foreach(TicketItem item in selectedTicket.Items) // item.AddControl(pnlTicketItems.Controls, handler, item == previousItem); pnlTicketItems.Refresh(); } else { pnlTicketEditor.Visible = false; } UpdatingTicketLayout = false; }
static void Main(string[] args) { Direction direct1 = Direction.NoDiction; Console.WriteLine("direct1 : {0} ({1})", direct1, (int)direct1); direct1++; Console.WriteLine("direct1 : {0} ({1})", direct1, (int)direct1); direct1++; Console.WriteLine("direct1 : {0} ({1})", direct1, (int)direct1); #region Ввод значений перечисления Console.Write("["); // получение всех значений перечисления string[] namesOfDirection = Enum.GetNames(typeof(Direction)); for (int i = 0; i < namesOfDirection.Length - 1; i++) { Console.Write("{0}, ", namesOfDirection[i]); } Console.WriteLine("{0}]", namesOfDirection[namesOfDirection.Length - 1]); Console.Write("Choice direction: ? "); string sDirect = Console.ReadLine(); Direction userDirection; // (string) ---> enum //if (!(Enum.TryParse(sDirect, out userDirection) // преобразование sDirect ---> userDirection // && (userDirection > Direction.NoDiction) // проверка на допустимые // && (userDirection <= Direction.Down))) // значения if (!Enum.TryParse(sDirect, out userDirection) || // преобразование sDirect ---> userDirection (userDirection <= Direction.NoDiction) || // проверка на допустимые (userDirection > Direction.Down)) // значения { Console.WriteLine("Wrong direction..."); Console.ReadKey(); return; // завершение работы программы } switch (userDirection) { case Direction.Left: Console.WriteLine("Лево"); break; case Direction.Right: Console.WriteLine("Право"); break; case Direction.Up: Console.WriteLine("Верх"); break; case Direction.Down: Console.WriteLine("Низ"); break; case Direction.NoDiction: default: Console.WriteLine("Wrong direction... ({0})", (int)userDirection); break; } BorderItem lt = BorderItem.LeftTopDoubleCorner; Console.WriteLine("Border: {0} {1} ({2:X})", lt, (char)lt, (ushort)lt); lt = BorderItem.LeftDownDoubleCorner; Console.WriteLine("Border: {0} {1} ({2:X})", lt, (char)lt, (ushort)lt); lt++; Console.WriteLine("Border: {0} {1} ({2:X})", lt, (char)lt, (ushort)lt); #endregion #region Битовые перечисления // ConsoleKey - стандартное перечисление для всех клавиш клавиатуры Console.ForegroundColor = ConsoleColor.Cyan; FDirection direct2 = FDirection.Left | FDirection.Up; Console.WriteLine("direct2 : {0} ({1})", direct2, (int)direct2); if ((direct2 & FDirection.Up) > 0) { Console.WriteLine("Flag \"Up\" is set"); } else { Console.WriteLine("Flag \"Up\" is unset"); } if ((direct2 & FDirection.Down) > 0) { Console.WriteLine("Flag \"Down\" is set"); } else { Console.WriteLine("Flag \"Down\" is unset"); } if (direct2.HasFlag(FDirection.Left)) { Console.WriteLine("Flag \"Left\" is set"); } else { Console.WriteLine("Flag \"Left\" is unset"); } #endregion Console.ReadKey(); }