1 56 package org.objectstyle.cayenne.modeler.util; 57 58 import java.awt.Component ; 59 import java.util.Collections ; 60 import java.util.Map ; 61 import java.util.TreeMap ; 62 63 import javax.swing.DefaultListCellRenderer ; 64 import javax.swing.JList ; 65 import javax.swing.ListCellRenderer ; 66 67 import org.objectstyle.cayenne.dba.JdbcAdapter; 68 import org.objectstyle.cayenne.dba.db2.DB2Adapter; 69 import org.objectstyle.cayenne.dba.derby.DerbyAdapter; 70 import org.objectstyle.cayenne.dba.firebird.FirebirdAdapter; 71 import org.objectstyle.cayenne.dba.hsqldb.HSQLDBAdapter; 72 import org.objectstyle.cayenne.dba.mysql.MySQLAdapter; 73 import org.objectstyle.cayenne.dba.openbase.OpenBaseAdapter; 74 import org.objectstyle.cayenne.dba.oracle.OracleAdapter; 75 import org.objectstyle.cayenne.dba.postgres.PostgresAdapter; 76 import org.objectstyle.cayenne.dba.sqlserver.SQLServerAdapter; 77 import org.objectstyle.cayenne.dba.sybase.SybaseAdapter; 78 79 82 public final class DbAdapterInfo { 83 84 private static final Map DEFAULT_ADAPTER_LABELS = new TreeMap (); 85 private static final String [] standardAdapters = new String [] { 86 JdbcAdapter.class.getName(), OracleAdapter.class.getName(), 87 MySQLAdapter.class.getName(), SybaseAdapter.class.getName(), 88 PostgresAdapter.class.getName(), HSQLDBAdapter.class.getName(), 89 DB2Adapter.class.getName(), SQLServerAdapter.class.getName(), 90 OpenBaseAdapter.class.getName(), DerbyAdapter.class.getName(), 91 FirebirdAdapter.class.getName() 92 }; 93 94 private static final Map IMMUTABLE_LABELS = Collections 95 .unmodifiableMap(DEFAULT_ADAPTER_LABELS); 96 97 static { 98 DEFAULT_ADAPTER_LABELS.put(JdbcAdapter.class.getName(), "Generic JDBC Adapter"); 99 DEFAULT_ADAPTER_LABELS.put(OracleAdapter.class.getName(), "Oracle Adapter"); 100 DEFAULT_ADAPTER_LABELS.put(MySQLAdapter.class.getName(), "MySQL Adapter"); 101 DEFAULT_ADAPTER_LABELS.put(SybaseAdapter.class.getName(), "Sybase Adapter"); 102 DEFAULT_ADAPTER_LABELS.put(PostgresAdapter.class.getName(), "PostgreSQL Adapter"); 103 DEFAULT_ADAPTER_LABELS.put(HSQLDBAdapter.class.getName(), "HypersonicDB Adapter"); 104 DEFAULT_ADAPTER_LABELS.put(DB2Adapter.class.getName(), "DB2 Adapter"); 105 DEFAULT_ADAPTER_LABELS.put(SQLServerAdapter.class.getName(), 106 "MS SQLServer Adapter"); 107 DEFAULT_ADAPTER_LABELS.put(OpenBaseAdapter.class.getName(), "OpenBase Adapter"); 108 DEFAULT_ADAPTER_LABELS.put(DerbyAdapter.class.getName(), "Derby Adapter"); 109 DEFAULT_ADAPTER_LABELS.put(FirebirdAdapter.class.getName(), "FireBird Adapter"); 110 } 111 112 public static Map getStandardAdapterLabels() { 113 return IMMUTABLE_LABELS; 114 } 115 116 public static ListCellRenderer getListRenderer() { 117 return new DbAdapterListRenderer(DEFAULT_ADAPTER_LABELS); 118 } 119 120 public static Object [] getStandardAdapters() { 121 return standardAdapters; 122 } 123 124 static final class DbAdapterListRenderer extends DefaultListCellRenderer { 125 126 Map adapterLabels; 127 128 DbAdapterListRenderer(Map adapterLabels) { 129 this.adapterLabels = (adapterLabels != null) 130 ? adapterLabels 131 : Collections.EMPTY_MAP; 132 } 133 134 public Component getListCellRendererComponent( 135 JList list, 136 Object object, 137 int index, 138 boolean arg3, 139 boolean arg4) { 140 141 if (object instanceof Class ) { 142 object = ((Class ) object).getName(); 143 } 144 145 Object label = adapterLabels.get(object); 146 if (label == null) { 147 label = object; 148 } 149 150 return super.getListCellRendererComponent(list, label, index, arg3, arg4); 151 } 152 } 153 } | Popular Tags |