package com.hackerdude.apps.sqlide.plugins.browser.browsejdbc; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import javax.swing.tree.DefaultMutableTreeNode; import com.hackerdude.apps.sqlide.dataaccess.DatabaseProcess; import com.hackerdude.apps.sqlide.pluginapi.NodeIDECategory; /** * A node for the Catalogs category. * * @author David Martinez * @version 1.0 */ public class CategoryCatalogsNode extends NodeIDECategory { String catalogTerm; public CategoryCatalogsNode(DatabaseProcess proc) throws SQLException { super(determineCatalogTerm(proc), proc); catalogTerm = determineCatalogTerm(proc); } public void readChildren() { try { ArrayList al = databaseProcess.getCatalogs(); DefaultMutableTreeNode dbItem = null; for(int i=0;i<al.size();i++) { dbItem = new ItemCatalogNode(al.get(i).toString(), databaseProcess); add(dbItem); } } catch ( SQLException exc ) { try { add(new ItemCatalogNode(null, databaseProcess)); } catch (Exception ex) { } } } public static String determineCatalogTerm(DatabaseProcess proc) throws SQLException { Connection conn = null; try { conn = proc.getConnection(); return conn.getMetaData().getCatalogTerm(); } finally { proc.returnConnection(conn); } } public boolean canHaveChildren() { return true; } public String getInfo() { StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("<HTML><P><B>"); try { stringBuffer.append(determineCatalogTerm(databaseProcess)); } catch (Exception ex) { } return stringBuffer.toString(); } }