001/*
002 * Created on 11.01.2011
003 *
004 */
005package org.jdesktop.swingx.treetable;
006
007
008/**
009 * Interface which guarantees access to a TreeTableModel. It is implemented by
010 * the internal TreeTableModelAdapter of JXTreeTable to allow direct access to
011 * the underlying TreeTableModel from the adapter.
012 * <p>
013 * 
014 * That's useful f.i. when trying to configure TableColumnExt in a
015 * ColumnFactory, like in
016 * 
017 * <pre>
018 * <code>
019 * JXTreeTable table = new JXTreeTable();
020 * ColumnFactory factory = new ColumnFactory() {
021 * 
022 *     @Override
023 *     public void configureTableColumn(TableModel model,
024 *             TableColumnExt columnExt) {
025 *         super.configureTableColumn(model, columnExt);
026 *         if (model instanceof TreeTableModelProvider) {
027 *             TreeTableModel treeTableModel = ((TreeTableModelProvider) model).getTreeTableModel();
028 *             if (treeTableModel.getHierarchicalColumn() == columnExt.getModelIndex()) {
029 *                 columnExt.setTitle("Hierarchical: " + columnExt.getTitle());
030 *             }
031 *         }
032 *     }
033 * };
034 * table.setColumnFactory(factory);
035 * table.setTreeTableModel(new FileSystemModel());
036 * 
037 * </code>
038 * </pre>
039 * 
040 * @author Jeanette Winzenburg, Berlin
041 */
042public interface TreeTableModelProvider {
043
044    /**
045     * Returns a TreeTableModel, guaranteed to be not null.
046     * 
047     * @return a TreeTableModel, guaranteed to be not null.
048     */
049    TreeTableModel getTreeTableModel();
050
051}