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 https://support.hdfgroup.org/products/licenses.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.TreeView; 016 017import org.eclipse.swt.widgets.Composite; 018 019import hdf.view.Tools; 020import hdf.view.ViewProperties; 021import hdf.view.DataView.DataViewManager; 022 023/** 024 * A simple Factory class which returns concrete instances of the default 025 * TreeView. 026 * 027 * @author jhenderson 028 * @version 1.0 4/18/2018 029 */ 030public class DefaultTreeViewFactory extends TreeViewFactory { 031 032 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DefaultTreeViewFactory.class); 033 034 @Override 035 public TreeView getTreeView(Composite parent, DataViewManager viewer) throws ClassNotFoundException { 036 String dataViewName = null; 037 Object[] initargs = { parent, viewer }; 038 TreeView theView = null; 039 040 dataViewName = ViewProperties.DEFAULT_TREEVIEW_NAME; 041 042 Class<?> theClass = null; 043 try { 044 log.trace("getTreeView(): Class.forName({})", dataViewName); 045 046 /* Attempt to load the class by the given name */ 047 theClass = Class.forName(dataViewName); 048 } 049 catch (Exception ex) { 050 log.debug("getTreeView(): unable to load default TreeView class by name({})", dataViewName); 051 theClass = null; 052 } 053 054 if (theClass == null) throw new ClassNotFoundException(); 055 056 try { 057 theView = (TreeView) Tools.newInstance(theClass, initargs); 058 059 log.trace("getTreeView(): returning TreeView instance {}", theView); 060 } 061 catch (Exception ex) { 062 log.debug("getTreeView(): Error instantiating class:", ex); 063 theView = null; 064 } 065 066 return theView; 067 } 068 069}