1 19 20 package org.netbeans.modules.db.explorer; 21 22 import java.awt.*; 23 import java.beans.*; 24 import java.sql.*; 25 import java.text.MessageFormat ; 26 import java.util.ResourceBundle ; 27 28 import org.openide.util.NbBundle; 29 30 32 public class DatabaseTypePropertyEditor implements PropertyEditor { 33 34 private int[] constants; 35 private String [] names; 36 private int index; 37 private String name; 38 private PropertyChangeSupport support; 39 40 public DatabaseTypePropertyEditor() { 41 ResourceBundle bundle = NbBundle.getBundle("org.netbeans.modules.db.resources.Bundle"); 42 support = new PropertyChangeSupport(this); 43 constants = new int[] { 44 java.sql.Types.ARRAY, 45 java.sql.Types.BIGINT, 46 java.sql.Types.BINARY, 47 java.sql.Types.BIT, 48 java.sql.Types.BLOB, 49 java.sql.Types.CHAR, 50 java.sql.Types.CLOB, 51 java.sql.Types.DATE, 52 java.sql.Types.DECIMAL, 53 java.sql.Types.DISTINCT, 54 java.sql.Types.DOUBLE, 55 java.sql.Types.FLOAT, 56 java.sql.Types.INTEGER, 57 java.sql.Types.JAVA_OBJECT, 58 java.sql.Types.LONGVARBINARY, 59 java.sql.Types.LONGVARCHAR, 60 java.sql.Types.NUMERIC, 61 java.sql.Types.REAL, 62 java.sql.Types.REF, 63 java.sql.Types.SMALLINT, 64 java.sql.Types.TIME, 65 java.sql.Types.TIMESTAMP, 66 java.sql.Types.TINYINT, 67 java.sql.Types.VARBINARY, 68 java.sql.Types.VARCHAR, 69 java.sql.Types.OTHER}; 70 names = new String [] { 71 bundle.getString("SQL_ARRAY"), bundle.getString("SQL_BIGINT"), bundle.getString("SQL_BINARY"), bundle.getString("SQL_BIT"), bundle.getString("SQL_BLOB"), bundle.getString("SQL_CHAR"), bundle.getString("SQL_CLOB"), bundle.getString("SQL_DATE"), bundle.getString("SQL_DECIMAL"), bundle.getString("SQL_DISTINCT"), bundle.getString("SQL_DOUBLE"), bundle.getString("SQL_FLOAT"), bundle.getString("SQL_INTEGER"), bundle.getString("SQL_JAVA_OBJECT"), bundle.getString("SQL_LONGVARBINARY"), bundle.getString("SQL_LONGVARCHAR"), bundle.getString("SQL_NUMERIC"), bundle.getString("SQL_REAL"), bundle.getString("SQL_REF"), bundle.getString("SQL_SMALLINT"), bundle.getString("SQL_TIME"), bundle.getString("SQL_TIMESTAMP"), bundle.getString("SQL_TINYINT"), bundle.getString("SQL_VARBINARY"), bundle.getString("SQL_VARCHAR"), bundle.getString("SQL_OTHER") }; } 99 100 public DatabaseTypePropertyEditor(int[] types, String [] titles) { 101 support = new PropertyChangeSupport(this); 102 constants = types; 103 names = titles; 104 } 105 106 public Object getValue () { 107 return new Integer (constants[index]); 108 } 109 110 public void setValue (Object object) { 111 ResourceBundle bundle = NbBundle.getBundle("org.netbeans.modules.db.resources.Bundle"); 112 118 Integer type; 120 try { 121 type = new Integer (object.toString()); 122 } catch (NumberFormatException exc) { 123 String message = MessageFormat.format(bundle.getString("EXC_CannotOperateWith"), new String [] {object.toString()}); throw new IllegalArgumentException (message); 125 } 126 127 int ii = type.intValue(); 128 130 int i; 131 int k = constants.length; 132 133 for (i = 0; i < k; i++) 134 if (constants [i] == ii) 135 break; 136 137 if (i == k) { 138 switch (ii) { case -7: name = bundle.getString("SQL_BIT"); break; case -6: name = bundle.getString("SQL_TINYINT"); break; case 5: name = bundle.getString("SQL_SMALLINT"); break; case 4: name = bundle.getString("SQL_INTEGER"); break; case -5: name = bundle.getString("SQL_BIGINT"); break; case 6: name = bundle.getString("SQL_FLOAT"); break; case 7: name = bundle.getString("SQL_REAL"); break; case 8: name = bundle.getString("SQL_DOUBLE"); break; case 2: name = bundle.getString("SQL_NUMERIC"); break; case 3: name = bundle.getString("SQL_DECIMAL"); break; case 1: name = bundle.getString("SQL_CHAR"); break; case 12: name = bundle.getString("SQL_VARCHAR"); break; case -1: name = bundle.getString("SQL_LONGVARCHAR"); break; case 91: name = bundle.getString("SQL_DATE"); break; case 92: name = bundle.getString("SQL_TIME"); break; case 93: name = bundle.getString("SQL_TIMESTAMP"); break; case -2: name = bundle.getString("SQL_BINARY"); break; case -3: name = bundle.getString("SQL_VARBINARY"); break; case -4: name = bundle.getString("SQL_LONGVARBINARY"); break; case 0: name = bundle.getString("SQL_NULL"); break; case 1111: name = bundle.getString("SQL_OTHER"); break; case 2000: name = bundle.getString("SQL_JAVA_OBJECT"); break; case 2001: name = bundle.getString("SQL_DISTINCT"); break; case 2002: name = bundle.getString("SQL_STRUCT"); break; case 2003: name = bundle.getString("SQL_ARRAY"); break; case 2004: name = bundle.getString("SQL_BLOB"); break; case 2005: name = bundle.getString("SQL_CLOB"); break; case 2006: name = bundle.getString("SQL_REF"); break; default: name = bundle.getString("SQL_UNKNOWN"); } 169 index = 0; 170 } else { 171 index = i; 172 name = names [i]; 173 } 174 175 support.firePropertyChange (null, null, null); 176 } 177 178 public String getAsText () { 179 return name; 180 } 181 182 public void setAsText (String string) throws IllegalArgumentException { 183 int i, k = names.length; 184 for (i = 0; i < k; i++) if (names [i].equals (string)) break; 185 if (i == k) { 186 String message = MessageFormat.format(NbBundle.getBundle("org.netbeans.modules.db.resources.Bundle").getString("EXC_CannotFindAsText"), new String [] {string}); throw new IllegalArgumentException (message); 188 } 189 index = i; 190 name = names [i]; 191 return; 192 } 193 194 public String getJavaInitializationString () { 195 return "" + index; } 197 198 public String [] getTags () { 199 return names; 200 } 201 202 public boolean isPaintable () { 203 return false; 204 } 205 206 public void paintValue (Graphics g, Rectangle rectangle) { 207 } 208 209 public boolean supportsCustomEditor () { 210 return false; 211 } 212 213 public Component getCustomEditor () { 214 return null; 215 } 216 217 public void addPropertyChangeListener (PropertyChangeListener propertyChangeListener) { 218 support.addPropertyChangeListener (propertyChangeListener); 219 } 220 221 public void removePropertyChangeListener (PropertyChangeListener propertyChangeListener) { 222 support.removePropertyChangeListener (propertyChangeListener); 223 } 224 } 225 | Popular Tags |