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 file COPYING.                     *
009 * COPYING can be found at the root of the source code distribution tree.    *
010 * If you do not have access to this file, you may request a copy from       *
011 * help@hdfgroup.org.                                                        *
012 ****************************************************************************/
013
014package hdf.view;
015
016import hdf.object.HObject;
017
018/**
019 *
020 * Defines a list of APIs for the main HDFView windows
021 *
022 * @author Peter X. Cao
023 * @version 2.4 9/6/2007
024 */
025public abstract interface ViewManager {
026    /** Data content is displayed, add the dataview to the main windows
027     * @param dataView
028     *            the dataView whose presence in the main view is to be added.
029     */
030    public abstract void addDataView(DataView dataView);
031
032    /** Data content is closed, remove the dataview from the main window
033     * @param dataView
034     *            the dataView whose presence in the main view is to be removed.
035     */
036    public abstract void removeDataView(DataView dataView);
037
038    /**
039     * Returns DataView that contains the specified data object. It is useful to
040     * avoid redundant display of data object that is opened already.
041     *
042     * @param dataObject
043     *            the object whose presence in the main view is to be tested.
044     *
045     * @return DataView contains the specified data object, null if the data
046     *         object is not displayed.
047     */
048    public abstract DataView getDataView(HObject dataObject);
049
050    /** Display feedback message
051     * @param msg  the status message to display
052     */
053    public abstract void showStatus(String msg);
054
055    /** @return the current TreeView */
056    public abstract TreeView getTreeView();
057
058    /**
059     * Tree mouse event fired
060     *
061     * @param e The MouseEvent that occurred
062     */
063    public abstract void mouseEventFired(java.awt.event.MouseEvent e);
064}