using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using OSGeo.MapGuide.Viewer;

namespace SampleExtension
{
    public partial class SelectedFeaturesWindow : Form
    {
        private MgSelectionSet _set;

        public SelectedFeaturesWindow(MgSelectionSet set)
        {
            InitializeComponent();
            _set = set;
            cmbLayer.DataSource = _set.LayerNames;
            cmbLayer.SelectedIndex = 0;
        }

        private void cmbLayer_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbLayer.SelectedItem != null)
            {
                string layerName = cmbLayer.SelectedItem.ToString();
                bool bSetHeader = false;
                dataGridView1.Rows.Clear();
                foreach (var feat in _set.GetFeaturesForLayer(layerName))
                {
                    if (!bSetHeader)
                    {
                        dataGridView1.Columns.Clear();
                        foreach (var name in feat.Properties.Keys)
                        {
                            dataGridView1.Columns.Add(name.ToString(), name.ToString());
                        }
                        bSetHeader = true;
                    }
                    object[] values = new object[feat.Properties.Keys.Count];
                    int i = 0;
                    foreach (var name in feat.Properties.Keys)
                    {
                        values[i] = feat.Properties[name];
                        i++;
                    }
                    dataGridView1.Rows.Add(values);
                }
            }
        }
    }
}