📄 driverspanel.java
字号:
tabViewClosing(); } public void focusGained(FocusEvent e) {} // -------------------------------------------- // DockedTabView implementation // -------------------------------------------- /** * Indicates the panel is being removed from the pane */ public boolean tabViewClosing() { nameField.removeFocusListener(this); populateDriverObject(); return saveDrivers(); } /** * Indicates the panel is being selected in the pane */ public boolean tabViewSelected() { nameField.addFocusListener(this); return true; } /** * Indicates the panel is being selected in the pane */ public boolean tabViewDeselected() { return tabViewClosing(); } // -------------------------------------------- public void findDriverClass(ActionEvent e) { if (databaseDriver.getId() == JDBCProperties.DEFAULT_ODBC_ID) { return; } String paths = pathField.getText(); if (MiscUtils.isNull(paths)) { GUIUtilities.displayErrorMessage( "A valid path to the JDBC library is required"); return; } String[] drivers = null; try { GUIUtilities.showWaitCursor(); drivers = MiscUtils.findImplementingClasses( "java.sql.Driver", paths); } catch (MalformedURLException urlExc) { GUIUtilities.displayErrorMessage( "A valid path to the JDBC library is required"); } catch (IOException ioExc) { GUIUtilities.displayErrorMessage( "An error occured accessing the specified file:\n" + ioExc.getMessage()); } finally { GUIUtilities.showNormalCursor(); } if (drivers == null || drivers.length == 0) { GUIUtilities.displayWarningMessage( "No valid classes implementing java.sql.Driver\n"+ "were found in the specified resource"); return; } int result = -1; String value = null; while (true) { SimpleValueSelectionDialog dialog = new SimpleValueSelectionDialog("Select JDBC Driver", drivers); result = dialog.showDialog(); if (result == JOptionPane.OK_OPTION) { value = dialog.getValue(); if (value == null) { GUIUtilities.displayErrorMessage( "You must select a driver from the list"); } else { classField.setText(value); databaseDriver.setClassName(value); break; } } else { break; } } } public void browseDrivers(ActionEvent e) { if (databaseDriver.getId() == JDBCProperties.DEFAULT_ODBC_ID) { return; } FileSelector jarFiles = new FileSelector(new String[] {"jar"}, "Java Archive files"); FileSelector zipFiles = new FileSelector(new String[] {"zip"}, "ZIP Archive files"); FileChooserDialog fileChooser = new FileChooserDialog(); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); fileChooser.addChoosableFileFilter(zipFiles); fileChooser.addChoosableFileFilter(jarFiles); fileChooser.setDialogTitle("Select JDBC Drivers..."); fileChooser.setDialogType(JFileChooser.OPEN_DIALOG); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); fileChooser.setMultiSelectionEnabled(true); int result = fileChooser.showDialog(GUIUtilities.getParentFrame(), "Select"); if (result == JFileChooser.CANCEL_OPTION) { return; } File[] files = fileChooser.getSelectedFiles(); char COLON = ';'; StringBuffer sb = new StringBuffer(100); for (int i = 0; i < files.length; i++) { sb.append(files[i].getAbsolutePath()); if (i != files.length - 1) { sb.append(COLON); } } pathField.setText(sb.toString()); databaseDriver.setPath(pathField.getText()); } /** * Checks the current selection for a name change * to be propagated back to the tree view. */ private void checkNameUpdate() { String oldName = databaseDriver.getName(); String newName = nameField.getText().trim(); if (!oldName.equals(newName)) { databaseDriver.setName(newName); parent.nodeNameValueChanged(databaseDriver); } } /** * Populates the driver object from the field values. */ private void populateDriverObject() { // ODBC driver can not be changed if (databaseDriver.getId() == JDBCProperties.DEFAULT_ODBC_ID) { return; } databaseDriver.setDescription(descField.getText()); databaseDriver.setClassName(classField.getText()); databaseDriver.setURL(driverUrlCombo.getEditor().getItem().toString()); databaseDriver.setPath(pathField.getText()); DatabaseDefinition database = getSelectedDatabase(); if (database.getId() > 0) { databaseDriver.setDatabaseType(database.getId()); } checkNameUpdate(); if (databaseDriver.getId() == 0) { databaseDriver.setId(System.currentTimeMillis()); // need to check exisitng conns with this driver's name } } public void setDriver(DatabaseDriver databaseDriver) { // store the field values of the current selection if (this.databaseDriver != null) { populateDriverObject(); } try { databaseNameCombo.removeItemListener(this); this.databaseDriver = databaseDriver; nameField.setText(databaseDriver.getName()); descField.setText( databaseDriver.getDescription().equals("Not Available") ? "" : databaseDriver.getDescription()); classField.setText(databaseDriver.getClassName()); pathField.setText(databaseDriver.getPath()); int databaseId = databaseDriver.getType(); DatabaseDefinition database = DatabaseDefinitionCache. getDatabaseDefinition(databaseId); if (database != null) { resetUrlCombo(database); databaseNameCombo.setSelectedItem(database); } else { urlComboModel.removeAllElements(); databaseNameCombo.setSelectedIndex(0); } String url = databaseDriver.getURL(); if (!MiscUtils.isNull(url)) { urlComboModel.insertElementAt(url, 0); } if (urlComboModel.getSize() > 0) { driverUrlCombo.setSelectedIndex(0); } nameField.requestFocusInWindow(); nameField.selectAll(); } finally { databaseNameCombo.addItemListener(this); } } private void resetUrlCombo(DatabaseDefinition database) { urlComboModel.removeAllElements(); for (int i = 0; i < database.getUrlCount(); i++) { urlComboModel.addElement(database.getUrl(i)); } } public DatabaseDriver getDriver() { return databaseDriver; } /** Performs some cleanup and releases resources before being closed. */ public void cleanup() { } /** Refreshes the data and clears the cache */ public void refresh() {} /** Returns the print object - if any */ public Printable getPrintable() { return null; } /** Returns the name of this panel */ public String getLayoutName() { return TITLE; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -