diff -r 3b1947d107d9 db/libsrc/org/netbeans/lib/ddl/DBConnection.java --- a/db/libsrc/org/netbeans/lib/ddl/DBConnection.java Mon Aug 24 19:52:29 2009 +0200 +++ b/db/libsrc/org/netbeans/lib/ddl/DBConnection.java Mon Aug 24 21:10:51 2009 +0100 @@ -100,6 +100,10 @@ * @param name Connection name */ public void setName(String name); + + public String getDisplayName(); + + public void setDisplayName(String name); /** Returns driver name */ public String getDriverName(); diff -r 3b1947d107d9 db/src/org/netbeans/api/db/explorer/DatabaseConnection.java --- a/db/src/org/netbeans/api/db/explorer/DatabaseConnection.java Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/api/db/explorer/DatabaseConnection.java Mon Aug 24 21:10:51 2009 +0100 @@ -113,7 +113,7 @@ * @param user the username. * @param schema the schema to use, or null for the default schema * @param password the password. - * @param rememberPassword whether to remeber the password for the current session. + * @param rememberPassword whether to remember the password for the current session. * * @return the new instance. * @@ -149,7 +149,7 @@ * Returns the JDBC driver instance that this connection uses. * * @since 1.32 - * @return the JDBC driver or null if no driver registred + * @return the JDBC driver or null if no driver registered */ public JDBCDriver getJDBCDriver() { return delegate.findJDBCDriver (); @@ -206,7 +206,7 @@ * @return the display name */ public String getDisplayName() { - return delegate.getName(); + return delegate.getDisplayName(); } /** diff -r 3b1947d107d9 db/src/org/netbeans/api/db/explorer/node/BaseNode.java --- a/db/src/org/netbeans/api/db/explorer/node/BaseNode.java Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/api/db/explorer/node/BaseNode.java Mon Aug 24 21:10:51 2009 +0100 @@ -84,6 +84,8 @@ protected static final String REMEMBERPWDESC = "RememberPasswordDescription"; // NOI18N protected static final String CATALOG = "Catalog"; // NOI18N protected static final String CATALOGDESC = "CatalogDescription"; // NOI18N + protected static final String DISPLAYNAME = "DisplayName"; // NOI18N + protected static final String DISPLAYNAMEDESC = "DisplayNameDescription"; // NOI18N protected static final String UNIQUE = "UniqueNoMnemonic"; // NOI18N protected static final String UNIQUEDESC = "UniqueDescription"; // NOI18N protected static final String NULL = "Null"; // NOI18N diff -r 3b1947d107d9 db/src/org/netbeans/api/db/explorer/node/Bundle.properties --- a/db/src/org/netbeans/api/db/explorer/node/Bundle.properties Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/api/db/explorer/node/Bundle.properties Mon Aug 24 21:10:51 2009 +0100 @@ -67,6 +67,8 @@ RememberPasswordDescription=Remember password Catalog=Catalog CatalogDescription=Catalog +DisplayName=Display name +DisplayNameDescription=Display name DefaultCatalog=Default Catalog Schema=Schema SchemaDescription=Schema diff -r 3b1947d107d9 db/src/org/netbeans/modules/db/explorer/DatabaseConnection.java --- a/db/src/org/netbeans/modules/db/explorer/DatabaseConnection.java Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/modules/db/explorer/DatabaseConnection.java Mon Aug 24 21:10:51 2009 +0100 @@ -138,6 +138,9 @@ /** Connection name */ private String name; + + /** The user-specified name that is to be displayed for this connection. */ + private String displayName; /** Error code */ private int errorCode = -1; @@ -166,6 +169,7 @@ public static final String PROP_DEFCATALOG = "defaultCatalog"; //NOI18N public static final String PROP_DRIVERNAME = "drivername"; //NOI18N public static final String PROP_NAME = "name"; //NOI18N + public static final String PROP_DISPLAY_NAME = "displayName"; //NOI18N public static final String DRIVER_CLASS_NET = "org.apache.derby.jdbc.ClientDriver"; // NOI18N public static final int DERBY_UNICODE_ERROR_CODE = 20000; private OpenConnectionInterface openConnection = null; @@ -424,7 +428,9 @@ /** Returns name of the connection */ public String getName() { if(name == null) { - if((getSchema()==null)||(getSchema().length()==0)) { + if ( getUser().length()==0 ) { + return ""; + } else if((getSchema()==null)||(getSchema().length()==0)) { name = NbBundle.getMessage (DatabaseConnection.class, "ConnectionNodeUniqueName", getDatabase(), getUser(), NbBundle.getMessage (DatabaseConnection.class, "SchemaIsNotSet")); //NOI18N } else { @@ -448,6 +454,21 @@ propertySupport.firePropertyChange(PROP_NAME, old, name); } + public String getDisplayName() { + return ( displayName!=null && displayName.length()>0 ) ? displayName : getName(); + } + + public void setDisplayName(String value) { + if ( (displayName == null && value==null) || + (displayName!=null && displayName.equals(value)) ) + return; + + String old = displayName; + displayName = value; + if(propertySupport!=null) + propertySupport.firePropertyChange(PROP_NAME, old, displayName); + } + /** Returns user schema name */ public String getSchema() { if (schema == null) @@ -841,8 +862,10 @@ try { drvname = (String) in.readObject(); + displayName = (String) in.readObject(); } catch (Exception exc) { - //IGNORE - not stored in 3.6 and earlier + //IGNORE - drvname not stored in 3.6 and earlier + //IGNORE - displayName not stored in 6.7 and earlier } // boston setting/pilsen setting? @@ -866,6 +889,7 @@ out.writeObject(schema); out.writeObject(DatabaseConnection.SUPPORT); out.writeObject(drvname); + out.writeObject(displayName); } @Override diff -r 3b1947d107d9 db/src/org/netbeans/modules/db/explorer/DatabaseConnectionConvertor.java --- a/db/src/org/netbeans/modules/db/explorer/DatabaseConnectionConvertor.java Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/modules/db/explorer/DatabaseConnectionConvertor.java Mon Aug 24 21:10:51 2009 +0100 @@ -55,15 +55,12 @@ import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CoderResult; -import java.util.Iterator; import java.util.LinkedList; import java.util.Map; -import java.util.Vector; import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; -import org.netbeans.modules.db.explorer.node.RootNode; import org.openide.cookies.InstanceCookie; import org.openide.filesystems.FileLock; import org.openide.filesystems.FileObject; @@ -82,7 +79,6 @@ import org.openide.xml.EntityCatalog; import org.openide.xml.XMLUtil; import org.netbeans.modules.db.util.Base64; -import org.openide.util.Exceptions; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -232,6 +228,9 @@ handler.user, handler.password, handler.rememberPassword); + if ( handler.displayName!=null ) { + dbconn.setDisplayName(handler.displayName); + } return dbconn; } @@ -379,6 +378,9 @@ if (instance.getUser() != null) { pw.println(" "); //NOI18N } + if ( ! instance.getUser().equals(instance.getDisplayName()) ) { + pw.println(" "); //NOI18N + } if (instance.rememberPassword() ) { String password = instance.getPassword(); @@ -407,6 +409,7 @@ private static final String ELEMENT_SCHEMA = "schema"; // NOI18N private static final String ELEMENT_USER = "user"; // NOI18N private static final String ELEMENT_PASSWORD = "password"; // NOI18N + private static final String ELEMENT_DISPLAY_NAME = "display-name"; // NOI18N private static final String ELEMENT_REMEMBER_PASSWORD = "remember-password"; private static final String ATTR_PROPERTY_VALUE = "value"; // NOI18N @@ -419,17 +422,21 @@ String user; String password; boolean rememberPassword; + String displayName; public Handler(String connectionFileName) { this.connectionFileName = connectionFileName; } + @Override public void startDocument() throws SAXException { } + @Override public void endDocument() throws SAXException { } + @Override public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException { String value = attrs.getValue(ATTR_PROPERTY_VALUE); if (ELEMENT_DRIVER_CLASS.equals(qName)) { @@ -442,6 +449,8 @@ schema = value; } else if (ELEMENT_USER.equals(qName)) { user = value; + } else if (ELEMENT_DISPLAY_NAME.equals(qName)) { + displayName = value; } else if (ELEMENT_PASSWORD.equals(qName)) { // If the password was saved, then it means the user checked // the box to say the password should be remembered. diff -r 3b1947d107d9 db/src/org/netbeans/modules/db/explorer/dataview/DataViewWindow.java --- a/db/src/org/netbeans/modules/db/explorer/dataview/DataViewWindow.java Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/modules/db/explorer/dataview/DataViewWindow.java Mon Aug 24 21:10:51 2009 +0100 @@ -124,7 +124,7 @@ //while(!(tempInfo instanceof ConnectionNodeInfo)) // tempInfo = tempInfo.getParent(); - String title = connection.getName(); //tempInfo.getDisplayName(); + String title = connection.getDisplayName(); //tempInfo.getDisplayName(); int idx = title.indexOf(" ["); //NOI18N title = title.substring(0, idx); setName(title); diff -r 3b1947d107d9 db/src/org/netbeans/modules/db/explorer/dlg/NewConnectionPanel.form --- a/db/src/org/netbeans/modules/db/explorer/dlg/NewConnectionPanel.form Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/modules/db/explorer/dlg/NewConnectionPanel.form Mon Aug 24 21:10:51 2009 +0100 @@ -5,6 +5,9 @@ + + + @@ -22,8 +25,26 @@ + - + + + + + + + + + + + + + + + + + + @@ -40,16 +61,10 @@ - - - - - + - + - - @@ -67,14 +82,9 @@ - - - - - + - @@ -149,7 +159,12 @@ - + + + + + + @@ -170,7 +185,7 @@ - + @@ -533,5 +548,15 @@ + + + + + + + + + + diff -r 3b1947d107d9 db/src/org/netbeans/modules/db/explorer/dlg/NewConnectionPanel.java --- a/db/src/org/netbeans/modules/db/explorer/dlg/NewConnectionPanel.java Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/modules/db/explorer/dlg/NewConnectionPanel.java Mon Aug 24 21:10:51 2009 +0100 @@ -142,6 +142,8 @@ userField.setText(connection.getUser()); passwordField.setText(connection.getPassword()); + + displayNameField.setText(connection.getDisplayName()); String driver = connection.getDriver(); String driverName = connection.getDriverName(); @@ -294,6 +296,8 @@ directUrlScroll = new javax.swing.JScrollPane(); directUrlField = new javax.swing.JTextArea(); jPanel1 = new javax.swing.JPanel(); + displayNameLabel = new javax.swing.JLabel(); + displayNameField = new javax.swing.JTextField(); FormListener formListener = new FormListener(); @@ -411,6 +415,10 @@ .add(0, 19, Short.MAX_VALUE) ); + org.openide.awt.Mnemonics.setLocalizedText(displayNameLabel, "Display Name:"); + + displayNameField.addActionListener(formListener); + org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -418,8 +426,22 @@ .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(errorInfoPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 676, Short.MAX_VALUE) .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(layout.createSequentialGroup() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) + .add(org.jdesktop.layout.GroupLayout.TRAILING, additionalPropsLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(directUrlLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.TRAILING, showUrlCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 132, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(urlField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.TRAILING, additionalPropsField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() + .add(passwordCheckBox, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 393, Short.MAX_VALUE) + .add(139, 139, 139)) + .add(org.jdesktop.layout.GroupLayout.TRAILING, directUrlScroll, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE))) + .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(inputModelLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -435,14 +457,9 @@ .add(tnsLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(serviceLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(sidLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 119, Short.MAX_VALUE)) - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) - .add(org.jdesktop.layout.GroupLayout.TRAILING, additionalPropsLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(directUrlLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .add(org.jdesktop.layout.GroupLayout.TRAILING, showUrlCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 132, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(displayNameLabel)) + .add(25, 25, 25) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(urlField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE) - .add(org.jdesktop.layout.GroupLayout.TRAILING, additionalPropsField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE) .add(layout.createSequentialGroup() .add(fieldInputCheckBox) .add(18, 18, 18) @@ -459,11 +476,7 @@ .add(org.jdesktop.layout.GroupLayout.TRAILING, instanceField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, userField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, passwordField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE) - .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() - .add(passwordCheckBox, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 393, Short.MAX_VALUE) - .add(139, 139, 139)) - .add(org.jdesktop.layout.GroupLayout.TRAILING, directUrlScroll, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE))) - .add(errorInfoPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 676, Short.MAX_VALUE)) + .add(displayNameField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE)))) .addContainerGap()) ); layout.setVerticalGroup( @@ -522,7 +535,11 @@ .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(passwordLabel) .add(passwordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(5, 5, 5) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(displayNameLabel) + .add(displayNameField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(31, 31, 31) .add(passwordCheckBox) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) @@ -540,7 +557,7 @@ .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(errorInfoPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addContainerGap(161, Short.MAX_VALUE)) + .addContainerGap(110, Short.MAX_VALUE)) ); } @@ -564,6 +581,9 @@ else if (evt.getSource() == directInputCheckBox) { NewConnectionPanel.this.directInputCheckBoxActionPerformed(evt); } + else if (evt.getSource() == displayNameField) { + NewConnectionPanel.this.displayNameFieldActionPerformed(evt); + } } public void focusGained(java.awt.event.FocusEvent evt) { @@ -655,6 +675,10 @@ updateInputMode(true); }//GEN-LAST:event_directInputCheckBoxActionPerformed + private void displayNameFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_displayNameFieldActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_displayNameFieldActionPerformed + private void showUrlCheckBoxActionPerformed(java.awt.event.ActionEvent evt) { showUrl(); } @@ -680,6 +704,8 @@ private javax.swing.JTextArea directUrlField; private javax.swing.JLabel directUrlLabel; private javax.swing.JScrollPane directUrlScroll; + private javax.swing.JTextField displayNameField; + private javax.swing.JLabel displayNameLabel; private javax.swing.JTextField dsnField; private javax.swing.JLabel dsnLabel; private org.netbeans.modules.db.util.ErrorInfoPanel errorInfoPanel; @@ -718,7 +744,7 @@ JDBCDriver driver = url.getDriver(); assert(driver != null); connection.setDriverName(driver.getName()); - connection.setDriver(driver.getClassName()); + connection.setDriver(driver.getClassName()); } if (fieldEntryMode) { @@ -730,6 +756,7 @@ connection.setUser(userField.getText()); connection.setPassword(getPassword()); connection.setRememberPassword(passwordCheckBox.isSelected()); + connection.setDisplayName(displayNameField.getText()); } private void resize() { @@ -889,6 +916,10 @@ return NbBundle.getMessage(NewConnectionPanel.class, "NewConnectionDialogTitle"); //NOI18N } + public String getDisplayName() { + return displayNameField.getText(); + } + private void startProgress() { SwingUtilities.invokeLater(new Runnable() { public void run() { @@ -938,6 +969,7 @@ showUrlCheckBox.setEnabled(enable); urlField.setEnabled(enable); directUrlField.setEnabled(enable); + displayNameField.setEnabled(enable); for (Entry entry : urlFields.entrySet()) { entry.getValue().getField().setEnabled(enable); diff -r 3b1947d107d9 db/src/org/netbeans/modules/db/explorer/node/ConnectionNode.java --- a/db/src/org/netbeans/modules/db/explorer/node/ConnectionNode.java Mon Aug 24 19:52:29 2009 +0200 +++ b/db/src/org/netbeans/modules/db/explorer/node/ConnectionNode.java Mon Aug 24 21:10:51 2009 +0100 @@ -135,6 +135,8 @@ connection.setSchema(val.toString()); } else if (nps.getName().equals(SCHEMA)) { connection.setSchema(val.toString()); + } else if (nps.getName().equals(DISPLAYNAME)) { + connection.setDisplayName(val.toString()); } if (refreshNode) { @@ -153,6 +155,7 @@ addProperty(USER, USERDESC, String.class, !connected, connection.getUser()); addProperty(REMEMBERPW, REMEMBERPWDESC, Boolean.class, !connected, connection.rememberPassword()); + addProperty(DISPLAYNAME, DISPLAYNAMEDESC, String.class, !connected, connection.getDisplayName()); if (connected) { Specification spec = connection.getConnector().getDatabaseSpecification(); @@ -336,7 +339,7 @@ @Override public String getDisplayName() { - return connection.getName(); + return connection.getDisplayName(); } public String getIconBase() {