public SearchPage(string option, int adminID, string keywords, string previous = "") { globalOption = option; globalKeywords = keywords; globalPrevious = previous; globalAdminID = adminID; InitializeComponent(); CenterToScreen(); label2.Text = "Looking for: " + keywords + " by: " + option; if (option == "Name") { searchReservationByName(keywords); } else if (option == "ID") { searchReservationById(int.Parse(keywords)); } else if (option == "E-Mail") { searchReservationByEmail(keywords); } else if (option == "Phone Number") { searchReservationByPhoneNumber(keywords); } EditOrderButton.Hide(); }
private void searchResultsList_SelectedIndexChanged(object sender, EventArgs e) { if (searchResultsList.SelectedItem != null) { EditOrderButton.Show(); } else { EditOrderButton.Hide(); } }
public BuySellPanel() { Instance = this; this.BackColor = GuiStyle.BACKGROUND_COLOR; // Create the order type selection button BuySellLabel = new Label(); BuySellLabel.Size = new System.Drawing.Size(50, 25); BuySellLabel.Location = new System.Drawing.Point(50, 50); BuySellLabel.ForeColor = GuiStyle.TEXT_COLOR; BuySellLabel.Font = new System.Drawing.Font(GuiStyle.Font.Name, 10, System.Drawing.FontStyle.Bold); BuySellLabel.TextAlign = System.Drawing.ContentAlignment.TopRight; this.Controls.Add(BuySellLabel); OrderTypeButton = new GuiButton(OrderNames[(int)SelectedOrderType]); OrderTypeButton.Location = new System.Drawing.Point(BuySellLabel.Bounds.Right + 5, 50); OrderTypeButton.MouseClick += (sender, e) => { OrderTypeSelectionPanel.Visible = !OrderTypeSelectionPanel.Visible; if (!OrderTypeSelectionPanel.Visible) { RefreshOrderOptionList(); } }; this.Controls.Add(OrderTypeButton); // Create the order type selection list OrderTypeSelectionPanel = new Panel(); OrderTypeSelectionPanel.Location = new System.Drawing.Point(0, OrderTypeButton.Location.Y + OrderTypeButton.Height + 5); for (int idx = 0; idx < OrderNames.Length; idx++) { Broker.Order.OrderType ot = (Broker.Order.OrderType)idx; GuiButton orderButton = new GuiButton(OrderNames[idx]); orderButton.Location = new System.Drawing.Point(OrderTypeButton.Location.X + 10, (idx * (orderButton.Height + 5)) + 5); orderButton.MouseClick += (sender, e) => { SelectedOrderType = ot; RefreshOrderTypeButtons(); }; OrderTypeSelectionPanel.Controls.Add(orderButton); } OrderTypeSelectionPanel.Visible = false; RefreshOrderTypeButtons(); this.Controls.Add(OrderTypeSelectionPanel); this.Resize += (sender, e) => { OrderTypeSelectionPanel.Width = this.Width; OrderTypeSelectionPanel.Height = (this.Height - OrderTypeSelectionPanel.Location.Y); }; // Create the back button BackButton = new PictureBox(); BackButton.Image = System.Drawing.Bitmap.FromFile("Content/GUI/Back.png"); BackButton.Size = BackButton.Image.Size; BackButton.Location = new System.Drawing.Point(10, 10); BackButton.MouseClick += (sender, e) => { this.Visible = false; }; this.Controls.Add(BackButton); // Create the info label OrderInfoLabel = new Label(); OrderInfoLabel.Size = new System.Drawing.Size(this.Width, 60); OrderInfoLabel.Text = ""; OrderInfoLabel.ForeColor = GuiStyle.TEXT_COLOR; OrderInfoLabel.Visible = false; OrderInfoLabel.LocationChanged += (sender, e) => { ReviewOrderButton.Location = new System.Drawing.Point(OrderInfoLabel.Location.X, OrderInfoLabel.Bounds.Bottom + 5); EditOrderButton.Location = ReviewOrderButton.Location; SubmitOrderButton.Location = new System.Drawing.Point(EditOrderButton.Location.X, EditOrderButton.Bounds.Bottom + 5); }; OrderInfoLabel.Location = new System.Drawing.Point(BackButton.Bounds.Right + 5, 220); this.Controls.Add(OrderInfoLabel); // Create the order review and submit buttons ReviewOrderButton.MouseClick += (sender, e) => { OrderInfoLabel.Text = GetOrderSummary(); OrderInfoLabel.Show(); ReviewOrderButton.Hide(); EditOrderButton.Show(); SubmitOrderButton.Text = string.Format("Submit {0}", (BuySell == Broker.Order.BuySellType.BUY) ? "Buy" : "Sell"); SubmitOrderButton.Show(); }; this.Controls.Add(ReviewOrderButton); EditOrderButton.MouseClick += (sender, e) => { OrderInfoLabel.Hide(); EditOrderButton.Hide(); SubmitOrderButton.Hide(); ReviewOrderButton.Show(); }; this.Controls.Add(EditOrderButton); SubmitOrderButton.MouseClick += (sender, e) => { // Submit the order Broker.Order newOrder = new Broker.Order() { BuySell = BuySell, LimitPrice = GetTradePrice(), Quantity = Shares, Symbol = Symbol, Type = SelectedOrderType, }; decimal.TryParse(StopPriceTextbox.Text, out newOrder.StopPrice); Broker.Instance.SubmitOrder(newOrder); // Hide the buy/sell menu this.Hide(); }; this.Controls.Add(SubmitOrderButton); // Create the all and half buying power shortcut buttons GuiButton halfButton = new GuiButton("Half"); halfButton.MouseClick += (sender, e) => { if (BuySell == Broker.Order.BuySellType.BUY) { if (TargetTotalValue == 0) { TargetTotalValue = BuyingPower; } TargetTotalValue /= 2; TargetShares = 0; UpdateTransaction(); } else { if (TargetShares == 0) { TargetShares = OwnedShares; } TargetShares /= 2; TargetTotalValue = 0; UpdateTransaction(); } }; this.Controls.Add(halfButton); GuiButton allButton = new GuiButton("All"); allButton.MouseClick += (sender, e) => { if (BuySell == Broker.Order.BuySellType.BUY) { TargetTotalValue = BuyingPower; TargetShares = 0; UpdateTransaction(); } else { TargetShares = OwnedShares; TargetTotalValue = 0; UpdateTransaction(); } }; this.Controls.Add(allButton); TotalTextbox.LocationChanged += (sender, e) => { TextBox t = (TextBox)sender; halfButton.Location = new System.Drawing.Point(t.Bounds.Right - halfButton.Width, t.Bounds.Bottom + 5); allButton.Location = new System.Drawing.Point(halfButton.Location.X - allButton.Width - 5, halfButton.Location.Y); }; // Create the order textboxes Tuple <TextBox, string>[] textboxes = new Tuple <TextBox, string>[] { new Tuple <TextBox, string>(StopPriceTextbox, "Stop Price"), new Tuple <TextBox, string>(LimitPriceTextbox, "Limit Price"), new Tuple <TextBox, string>(SharesTextbox, "Shares"), new Tuple <TextBox, string>(PricePerShareTextbox, "Market Price"), new Tuple <TextBox, string>(TotalTextbox, "Total Value") }; foreach (Tuple <TextBox, string> t in textboxes) { Label name = new Label(); name.Size = new System.Drawing.Size(150, 20); name.Location = new System.Drawing.Point(50, 0); name.Text = t.Item2; name.ForeColor = GuiStyle.TEXT_COLOR; name.Font = new System.Drawing.Font(GuiStyle.FONT_NAME, 9, System.Drawing.FontStyle.Bold); this.Controls.Add(name); t.Item1.Size = new System.Drawing.Size(100, 20); t.Item1.LocationChanged += (sender, e) => { name.Location = new System.Drawing.Point(name.Location.X, ((TextBox)sender).Location.Y); }; t.Item1.VisibleChanged += (sender, e) => { name.Visible = ((TextBox)sender).Visible; }; t.Item1.Location = new System.Drawing.Point(name.Bounds.Right, 0); t.Item1.ForeColor = GuiStyle.TEXT_COLOR; t.Item1.BackColor = GuiStyle.DARK_GREY; this.Controls.Add(t.Item1); } RefreshOrderOptionList(); // Customization of textboxes PricePerShareTextbox.BorderStyle = BorderStyle.None; PricePerShareTextbox.BackColor = GuiStyle.BACKGROUND_COLOR; PricePerShareTextbox.ForeColor = GuiStyle.PRICE_COLOR_POSITIVE; PricePerShareTextbox.ReadOnly = true; SharesTextbox.KeyDown += (sender, e) => { if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return)) { if (decimal.TryParse(((TextBox)sender).Text, out TargetShares)) { // Remove focus from the textbox so that it will be updated ((TextBox)sender).Parent.Focus(); UpdateTransaction(); } TargetTotalValue = 0; } }; TotalTextbox.KeyDown += (sender, e) => { if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return)) { decimal val; if (decimal.TryParse(TotalTextbox.Text.Replace("$", "").Replace(",", ""), out val)) { ((TextBox)sender).Parent.Focus(); decimal price = GetTradePrice(); if (price != 0) { Shares = Math.Floor(val / price); } TargetTotalValue = val; } TargetShares = 0; } }; LimitPriceTextbox.KeyDown += (sender, e) => { if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return)) { UpdateTransaction(); } }; }