/// <summary>
        /// Constructor
        /// </summary>
        public HarmonogramForm()
        {
            InitializeComponent();

            this.manager = new HarmonogramManager();

            // Interested in
            this.uc_constructionMultiCombo.ObjectSelectedEvent +=
                new Action<ConstructionObject>(OnObjectSelected);
            this.uc_constructionMultiCombo.VariationSelectedEvent +=
                new Action<ConstructionVariation>(OnVariationSelected);
            this.uc_constructionMultiCombo.ConstructionSelectedEvent +=
                new Action<Construction>(OnConstructionSelected);

            SetButtonsEnability();
        }
        /// <summary>
        /// Loads default etaps set from database
        /// </summary>
        /// <param name="connection">Database connection</param>
        /// <param name="constructionStartDate">Start date of parent construciton</param>
        /// <param name="constructionEndDate">End date of parent construciton</param>
        public void LoadEtaps(
            DatabaseConnection connection,
            DateTime constructionStartDate,
            DateTime constructionEndDate)
        {
            if (connection == null || !connection.IsConnectionOpen)
                return;

            try
            {
                string query = connection.CreateSelectCommandText(
                    "Etapy",
                    null,
                    null,
                    null
                );

                // Load etaps from DB
                DataSet dataSet = connection.ExecuteSelectQuery(query);
                if (dataSet == null || dataSet.Tables.Count == 0 || dataSet.Tables[0].Rows.Count == 0)
                {
                    // Nothong found -> create one default etap
                    this.Etaps.Add(
                        new Etap(
                            Properties.Settings.Default.DefaultEtapID,
                            "Etapa",
                            constructionStartDate,
                            constructionEndDate
                        )
                    );

                    return;
                }

                HarmonogramManager manager = new HarmonogramManager();

                // Set start and end dates of etap based on their setting
                foreach (DataRow row in dataSet.Tables[0].Rows)
                {
                    DateTime startDate, endDate;
                    manager.CountEtapData(
                        constructionStartDate,
                        constructionEndDate,
                        (byte)row["Zacatek"],
                        (byte)row["Konec"],
                        out startDate,
                        out endDate
                    );

                    this.Etaps.Add(
                        new Etap(
                            (int)row["ID"],
                            (string)row["Nazev"],
                            startDate,
                            endDate
                        )
                    );
                }
            }
            catch (Exception ex)
            {
                Karafa.Errors.KarafaLogger.LogError(ex);
            }
        }