| <div id="midcolumn"> |
| <h3>Save settings / Persistence</h3> |
| <div id="doccontent"> |
| <div class="chapter"> |
| <div class="content"> |
| <p>NatTable settings refer to the changes which the user makes to the grid while using it. |
| The settings which are saved include but are not limited to the following:</p> |
| <ol> |
| <li>Hidden columns</li> |
| <li>Column order</li> |
| <li>Resized columns/rows</li> |
| <li>Sorting state</li> |
| <li>Column groups state</li> |
| <li>Filter row state</li> |
| </ol> |
| |
| <p>The PersistentNatExample is a good place to get started.</p> |
| |
| <h6>Saving state</h6> |
| <p>NatTable saves its state in a <span class="code">java.util.Properties</span> file as key/value pairs. |
| The main method to note is the</p> |
| <div class="codeBlock">NatTable.saveState(prefix, properties)</div> |
| |
| <p>To save state, invoke this method and give it a properties file. This file will be populated with all the sate information. |
| You can now save this file anywhere/anyway you wish. Prefix is any arbitrary string which will be prepended to all the key |
| values in the property file.</p> |
| |
| <h6>Loading state</h6> |
| <p>The method to note is the</p> |
| <div class="codeBlock">NatTable.loadState(String prefix, Properties properties)</div> |
| <p>The prefix and properties file are from the save state step.</p> |
| </div> |
| </div> |
| <div class="chapter"> |
| <h5>Saving your custom state</h5> |
| <div class="content"> |
| <p>The <span class="code">IPersistable</span> interface is the main interface to note. All the layers which save state, |
| implement this interface. Additionally, you can register your own persistable with any layer using the |
| <span class="code">registerPersistable()</span> on the <span class="code">ILayer</span> interface. Your persistable will |
| be invoked when NatTable state is saved/loaded.</p> |
| |
| <img align="middle" src="images/persistable.png" border="0" alt="NatTable persistable diagram"/> |
| </div> |
| </div> |
| </div> |
| </div> |