/*
 * BITreeModel.java
 *
 * Copyright (c) 2003, Oracle Corporation. All rights reserved. Oracle grants
 * you ("Licensee") a non-exclusive, royalty-free, worldwide license to use,
 * modify and redistribute this software in source and binary code form, provided
 * that (i) this copyright notice and license appear on all copies of the
 * software; (ii) Licensee does not utilize the software in a manner disparaging
 * to Oracle; and (iii) Licensee does not utilize the software in a manner that
 * violates the terms of any Licensee agreement with Oracle.
 */
package samples.javaclient.analyzer;

import javax.naming.directory.Attributes;
import javax.swing.tree.TreeModel;
import oracle.dss.bicontext.BIContext;
import oracle.dss.bicontext.BISearchControls;

/**
 * TreeModel that works with the BI Beans Catalog.
 * The {@link CatalogExplorer} and the {@link FavoritesExplorer} use this 
 * interface, with a javax.swing.JTree, to display Catalog contents in tree form.
 */
public interface BITreeModel extends TreeModel
{
    /**
     * Gets the root folder in the Catalog.
     * 
     * @return The root folder.
     */
    public BIContext getInitialContext();
    /**
     * Gets the search attributes for this BITreeModel.
     * Search attributes specify the type of objects to display in the tree.
     * 
     * @return The search attributes for this model.
     */
    public Attributes getSearchFilters();
    /**
     * Gets the search controls for this BITreeModel.
     * Search controls specify the scope of the search and custom
     * filters for the search results.
     * 
     * @return The search controls for this model.
     */
    public BISearchControls getSearchControls();
    /**
     * Notifies listeners of changes to the tree structure.
     * 
     * @param node The node whose structure has changed.
     */
    public void fireTreeStructureChanged(BITreeNode node);
}