public Shell(string filename) : base(0, 0, Application.Cols, Application.Lines)
        {
            string connectionString;

            tables = new TablesList();

            connectionString = "URI=file:" + filename;
            dbConnection     = (IDbConnection) new SqliteConnection(connectionString);
            dbConnection.Open();
            command             = dbConnection.CreateCommand();
            sql                 = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name";
            command.CommandText = sql;
            reader              = command.ExecuteReader();
            while (reader.Read())
            {
                tables.Add(reader.GetString(0));
            }
            currentTable = tables.items [0];

            Frame tablesFrame = new Frame("Tables");

            Add(tablesFrame);

            tablesFrame.x = 0;
            tablesFrame.y = 0;

            tablesFrame.w = TABLES_WIDTH;
            tablesFrame.h = Application.Lines;

            tables_view = new ListView(1, 1, 1, tables.Items, tables);
            tablesFrame.Add(tables_view);

            recordsFrame   = new Frame("Records");
            recordsFrame.x = TABLES_WIDTH;
            recordsFrame.y = 0;
            recordsFrame.w = Application.Cols - TABLES_WIDTH - 1;
            recordsFrame.h = Application.Lines;
            Add(recordsFrame);

            UpdateRecordsView();

            tables.newSel += new TablesList.TableSelectionChanged(UpdateRecordsForNewSelectedTable);
        }
 private void UpdateRecordsForNewSelectedTable(TablesList t, EventArgs e)
 {
     currentTable = t.items[tables_view.Selected];
     UpdateRecordsView();
 }