001/*****************************************************************************
002 * Copyright by The HDF Group.                                               *
003 * Copyright by the Board of Trustees of the University of Illinois.         *
004 * All rights reserved.                                                      *
005 *                                                                           *
006 * This file is part of the HDF Java Products distribution.                  *
007 * The full copyright notice, including terms governing use, modification,   *
008 * and redistribution, is contained in the files COPYING and Copyright.html. *
009 * COPYING can be found at the root of the source code distribution tree.    *
010 * Or, see http://hdfgroup.org/products/hdf-java/doc/Copyright.html.         *
011 * If you do not have access to either file, you may request a copy from     *
012 * help@hdfgroup.org.                                                        *
013 ****************************************************************************/
014
015package hdf.view;
016
017import hdf.object.HObject;
018
019/**
020 *
021 * Defines a list of APIs for the main HDFView windows
022 *
023 * @author Peter X. Cao
024 * @version 2.4 9/6/2007
025 */
026public abstract interface ViewManager {
027    /** Data content is displayed, add the dataview to the main windows
028     * @param dataView
029     *            the dataView whose presence in the main view is to be added.
030     */
031    public abstract void addDataView(DataView dataView);
032
033    /** Data content is closed, remove the dataview from the main window
034     * @param dataView
035     *            the dataView whose presence in the main view is to be removed.
036     */
037    public abstract void removeDataView(DataView dataView);
038
039    /**
040     * Returns DataView that contains the specified data object. It is useful to
041     * avoid redundant display of data object that is opened already.
042     *
043     * @param dataObject
044     *            the object whose presence in the main view is to be tested.
045     *
046     * @return DataView contains the specified data object, null if the data
047     *         object is not displayed.
048     */
049    public abstract DataView getDataView(HObject dataObject);
050
051    /** Display feedback message
052     * @param msg  the status message to display
053     */
054    public abstract void showStatus(String msg);
055
056    /** @return the current TreeView */
057    public abstract TreeView getTreeView();
058
059    /**
060     * Tree mouse event fired
061     * 
062     * @param e The MouseEvent that occurred
063     */
064    public abstract void mouseEventFired(java.awt.event.MouseEvent e);
065}