private void OnLayersDoubleClick(object sender, EventArgs e)
        {
            Point mousePosition = layersListView.PointToClient(MousePosition);

            ListViewItem item = layersListView.GetItemAt(mousePosition.X, mousePosition.Y);

            if (item != null) {
                LayerPropertiesForm propertiesForm = new LayerPropertiesForm();
                propertiesForm.LayerProperties = item.Tag as MapGeneratorLayerOptions;

                if (propertiesForm.ShowDialog() == DialogResult.OK) {
                    MapGeneratorLayerOptions layerOptions = propertiesForm.LayerProperties;

                    item.SubItems[1].Text = layerOptions.ToString();
                    item.Tag = layerOptions;
                }
            }
        }
        private void OnAddLayer(object sender, EventArgs e)
        {
            LayerPropertiesForm propertiesForm = new LayerPropertiesForm();

            if (propertiesForm.ShowDialog() == DialogResult.OK) {
                MapGeneratorLayerOptions layerOptions = propertiesForm.LayerProperties;

                ListViewItem layerPropertiesListViewItem = new ListViewItem();
                layerPropertiesListViewItem.Text = (1 + layersListView.Items.Count).ToString();
                layerPropertiesListViewItem.SubItems.Add(layerOptions.ToString());
                layerPropertiesListViewItem.Tag = layerOptions;
                layersListView.Items.Add(layerPropertiesListViewItem);
            }
        }