ComputerPlaceGridSettings.cs 5.41 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MoyaAdminUI
{
    public delegate void ComputerPlaceGridSettingsAnswer(bool cancel, int x, int y, bool ix, bool iy, int width, int height, string name, bool horizontalRow, int seatSpacing, int doubleRowSpacing, int productId);
    public partial class ComputerPlaceGridSettings : Form
    {
        public ComputerPlaceGridSettings()
        {
            InitializeComponent();
        }

        public ComputerPlaceGridSettings(int width, int height, int productId)
        {
            InitializeComponent();
            this.width = width;
            this.height = height;
            this.productId = productId;
        }

        public event ComputerPlaceGridSettingsAnswer PreviewAnswer;
        public event ComputerPlaceGridSettingsAnswer AnswerGiven;

        private int width = 0;
        public int Width
        {
            set { width = value; }
        }

        private int height = 0;
        public int Height
        {
            set { height = value; }
        }

        private int productId;

        void sendAnswer(ComputerPlaceGridSettingsAnswer d, bool cancel)
        {
            if (d != null)
            {
                if(rabVert.Checked)
                    d(cancel, Convert.ToInt32(this.RowsNud.Value), Convert.ToInt32(this.SeatsNud.Value), chbInvertRows.Checked, chbInvertSeats.Checked, Convert.ToInt32(this.widthNud.Value), Convert.ToInt32(this.heightNud.Value), this.NamePrefixTextBox.Text.Trim(), rabHoriz.Checked, Convert.ToInt32(nudSeatSpacing.Value), Convert.ToInt32(nudDoubleRowSpacing.Value), Convert.ToInt32(productIdNud.Value));
                else
                    d(cancel, Convert.ToInt32(this.SeatsNud.Value), Convert.ToInt32(this.RowsNud.Value), chbInvertSeats.Checked, chbInvertRows.Checked, Convert.ToInt32(this.widthNud.Value), Convert.ToInt32(this.heightNud.Value), this.NamePrefixTextBox.Text.Trim(), rabHoriz.Checked, Convert.ToInt32(nudSeatSpacing.Value), Convert.ToInt32(nudDoubleRowSpacing.Value), Convert.ToInt32(productIdNud.Value));
            }
        }

        public void ResendPreview()
        {
            sendAnswer(PreviewAnswer, false);
        }

        private void OkButton_Click(object sender, EventArgs e)
        {
            if (this.RowsNud.Value > 1)
            {
                string[] prefixes = this.NamePrefixTextBox.Text.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                if (prefixes.Length != this.RowsNud.Value)
                {
                    DialogResult result = MessageBox.Show("You haven't given the same amount of prefixes and rows. Do you want to continue with the prefix: " + this.NamePrefixTextBox.Text + "? Separate prefixes with a \',\'.", "", MessageBoxButtons.YesNo);
                    if (result != System.Windows.Forms.DialogResult.Yes)
                        return;
                }
            }

            sendAnswer(AnswerGiven, false);
            this.Close();
        }

        private void CancelButton_Click(object sender, EventArgs e)
        {
            sendAnswer(AnswerGiven, true);
            this.Close();
        }

        private void ComputerPlaceGridSettings_Load(object sender, EventArgs e)
        {
            if (width > 0)
                this.widthNud.Value = this.width;
            if ( height > 0)
                this.heightNud.Value = this.height;
            if (productId > 0)
                this.productIdNud.Value = this.productId;
            sendAnswer(PreviewAnswer, false);
        }

        private void XNud_ValueChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
        }

        private void YNud_ValueChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
        }

        private void NamePrefixTextBox_TextChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
            this.OkButton.Enabled = this.NamePrefixTextBox.Text.Trim().Length > 0;
        }

        private void rabVert_CheckedChanged(object sender, EventArgs e)
        {
            if (rabVert.Checked)
            {
                rabHoriz.Checked = false;
                sendAnswer(PreviewAnswer, false);
            }
        }

        private void rabHoriz_CheckedChanged(object sender, EventArgs e)
        {
            if (rabHoriz.Checked)
            {
                rabVert.Checked = false;
                sendAnswer(PreviewAnswer, false);
            }
        }

        private void nudSeatSpacing_ValueChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
        }

        private void nudDoubleRowSpacing_ValueChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
        }

        private void chbInvertSeats_CheckedChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
        }

        private void chbInvertRows_CheckedChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
        }

        private void widthNud_ValueChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
        }

        private void heightNud_ValueChanged(object sender, EventArgs e)
        {
            sendAnswer(PreviewAnswer, false);
        }
    }
}