# RDB Table Editor Configuration

Configuration files can be created within the Navigator. Either copy/paste an existing file, or create a new one (New, Other, General, File) with a name that ends in `.rdb`. To edit the file, open it via `Open with, Text Editor`. Finally, open it once via `Open with, RDB Table Editor` to restore the default file type association that will open the file in the RDB Table Editor.

Configuration files must have the following format:

    <!-- Example configuration file for the CSS RDB Table Editor -->
    <rdbtable>
        <!-- Title that will appear in editor window -->
        <title>Example Configuration</title>

        <!-- RDB connection info.
             If user/password are missing, application will prompt for them.
             Otherwise they can be put here.
          -->
        <url>jdbc:mysql://my.host.org/DATABASE</url>
        <user>user</user>
        <password>secret</password>

        <!-- Table column info.
             The first column must be a "key" that's used to
             update or delete table rows.
             When creating a new table row, users can enter
             a new "key" value.
             On existing rows, the "key" column values cannot be changed.

             An optional 'width' attribute in percent is used to auto-size
             the table column. The default is "100%", meaning each column
             gets 100% of its share when the table widths is equally distributed
             amongst columns.
          -->
        <columns>
          <column width="50%">ID</column>
          <column>Name</column>
        </columns>

        <sql>
          <!-- Read initial table content: Must return one string per column -->
          <select>SELECT STATUS_ID, NAME FROM STATUS</select>

          <!-- Add new rows: Will receive one string per column -->
          <insert>INSERT INTO STATUS(STATUS_ID,NAME) VALUES (?, ?)</insert>

          <!-- Update changed rows: Will receive all non-key column values
               followed by the "key" column value
           -->
          <update>UPDATE STATUS SET NAME=? WHERE STATUS_ID=?</update>

          <!-- Delete rows: Will "key" column value -->
          <delete>DELETE FROM STATUS WHERE STATUS_ID=?</delete>
        </sql>
    </rdbtable>