Module org.hdfgroup.hdfview
Package hdf.view.TreeView

# Class DefaultTreeView

Object
hdf.view.TreeView.DefaultTreeView

All Implemented Interfaces:
  `TreeView`

public class DefaultTreeView extends Object implements TreeView
TreeView defines APIs for opening files and displaying the file structure in a tree structure. TreeView uses folders and leaf items to represent groups and data objects in the file. You can expand or collapse folders to navigate data objects in the file. From the TreeView, you can open data content or metadata of the selected object. You can select object(s) to delete or add new objects to the file.

Version:
  2.4 12//2015
Author:
  Jordan T. Henderson

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultTreeView(org.eclipse.swt.widgets.Composite parent, DataViewManager theView)`
  Create a visual component for opening files and displaying the file structure in a tree structure.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `org.eclipse.swt.widgets.TreeItem`
  `addObject(HObject obj, Group parentGroup)`
  Adds an already created HObject to the tree under the TreeItem containing the specified parent group.
  `void`
  `closeFile(FileFormat file)`
  Close a file
  `org.eclipse.swt.widgets.TreeItem`
  `findTreeItem(HObject obj)`
  Returns the tree item that contains the given data object.
  `List<FileFormat>`
  `getCurrentFiles()`
  `HObject`
  `getCurrentObject()`
  `FileFormat`
  `getSelectedFile()`
  Gets the selected file.
  `org.eclipse.swt.widgets.Tree`
  `getTree()`
  `FileFormat`
  `openFile(String filename, int accessID)`
  Opens a file and retrieves the file structure of the file.
  `FileFormat`
  `reopenFile(FileFormat fileFormat, int newFileAccessMode)`
  Reopens a file and retrieves the file structure of the file.
  `void`
  `saveFile(FileFormat file)`
  Save a file
  `void`
  `setDefaultDisplayMode(boolean displaymode)`
  change the display option.
  `DataView`
  `showDataContent(HObject dataObject)`
  Display the content of a data object.
  `void`
  `updateFont(org.eclipse.swt.graphics.Font font)`
  Updates the current font.
  `void`
  `updateItemIcon(HObject obj)`
  Updates the icon for the TreeItem representing the given HObject.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DefaultTreeView

    public DefaultTreeView(org.eclipse.swt.widgets.Composite parent, DataViewManager theView)
    Create a visual component for opening files and displaying the file structure in a tree structure.
    Parameters:
      `parent` - the parent component
      `theView` - the associated data view manager

- ## Method Details

  - ### addObject

    public org.eclipse.swt.widgets.TreeItem addObject(HObject obj, Group parentGroup)
    Adds an already created HObject to the tree under the TreeItem containing the specified parent group.
    Specified by:
      `addObject` in interface `TreeView`
    Parameters:
      `obj` - the object to add.
      `parentGroup` - the parent group to add the object to.
    Returns:
      the TreeItem object

  - ### openFile

    public FileFormat openFile(String filename, int accessID) throws Exception
    Opens a file and retrieves the file structure of the file. It also can be used to create a new file by setting the accessID to FileFormat.CREATE. Subclasses must implement this function to take appropriate steps to open a file.
    Specified by:
      `openFile` in interface `TreeView`
    Parameters:
      `filename` - the name of the file to open.
      `accessID` - identifier for the file access. Valid value of accessID is:
      - FileFormat.READ --- allow read-only access to file.
      - FileFormat.WRITE --- allow read and write access to file.
      - FileFormat.CREATE --- create a new file.
    Returns:
      the FileFormat of this file if successful; otherwise returns null.
    Throws:
      `Exception` - if a failure occurred

  - ### reopenFile

    public FileFormat reopenFile(FileFormat fileFormat, int newFileAccessMode) throws Exception
    Description copied from interface: `TreeView`
    Reopens a file and retrieves the file structure of the file. Subclasses must implement this function to take appropriate steps to re-open a file.
    Specified by:
      `reopenFile` in interface `TreeView`
    Parameters:
      `fileFormat` - the file to re-open.
      `newFileAccessMode` - identifier for the new file access. Valid value of newFileAccessMode is:
      - FileFormat.READ --- allow read-only access to file.
      - FileFormat.WRITE --- allow read and write access to file.
      - FileFormat.CREATE --- create a new file.
    Returns:
      the FileFormat of this file if successful; otherwise returns null.
    Throws:
      `Exception` - if a failure occurred

  - ### closeFile

    public void closeFile(FileFormat file) throws Exception
    Close a file
    Specified by:
      `closeFile` in interface `TreeView`
    Parameters:
      `file` - the file to close
    Throws:
      `Exception` - if a failure occurred

  - ### saveFile

    public void saveFile(FileFormat file) throws Exception
    Save a file
    Specified by:
      `saveFile` in interface `TreeView`
    Parameters:
      `file` - the file to save
    Throws:
      `Exception` - if a failure occurred

  - ### findTreeItem

    public org.eclipse.swt.widgets.TreeItem findTreeItem(HObject obj)
    Returns the tree item that contains the given data object.
    Specified by:
      `findTreeItem` in interface `TreeView`
    Parameters:
      `obj` - the object to find
    Returns:
      the tree item that contains the given data object.

  - ### setDefaultDisplayMode

    public void setDefaultDisplayMode(boolean displaymode)
    change the display option.
    Specified by:
      `setDefaultDisplayMode` in interface `TreeView`
    Parameters:
      `displaymode` - the default displaymode

  - ### getSelectedFile

    public FileFormat getSelectedFile()
    Gets the selected file. When multiple files are open, we need to know which file is currently selected.
    Specified by:
      `getSelectedFile` in interface `TreeView`
    Returns:
      the FileFormat of the currently selected file.

  - ### getCurrentObject

    public HObject getCurrentObject()
    Specified by:
      `getCurrentObject` in interface `TreeView`
    Returns:
      the currently selected object in the tree.

  - ### getTree

    public org.eclipse.swt.widgets.Tree getTree()
    Specified by:
      `getTree` in interface `TreeView`
    Returns:
      the Tree which holds the file structure.

  - ### getCurrentFiles

    public List<FileFormat> getCurrentFiles()
    Specified by:
      `getCurrentFiles` in interface `TreeView`
    Returns:
      the list of currently open files.

  - ### showDataContent

    public DataView showDataContent(HObject dataObject) throws Exception
    Display the content of a data object.
    Specified by:
      `showDataContent` in interface `TreeView`
    Parameters:
      `dataObject` - the data object
    Returns:
      the DataView that displays the data content
    Throws:
      `Exception` - if a failure occurred

  - ### updateFont

    public void updateFont(org.eclipse.swt.graphics.Font font)
    Updates the current font.
    Parameters:
      `font` - the new font

  - ### updateItemIcon

    public void updateItemIcon(HObject obj)
    Updates the icon for the TreeItem representing the given HObject. Used to change the icon after a status update, such as adding an attribute to an object.
    Parameters:
      `obj` - the object to update the icon for