# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /home/mblaesing/src/nb-hg/main-golden # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: db/src/org/netbeans/modules/db/explorer/DatabaseConnection.java --- db/src/org/netbeans/modules/db/explorer/DatabaseConnection.java Base (BASE) +++ db/src/org/netbeans/modules/db/explorer/DatabaseConnection.java Locally Modified (Based On LOCAL) @@ -434,14 +434,21 @@ return; } + String oldDisplayName = getDisplayName(); + String oldName = getName(); String olddb = db; db = database; name = null; name = getName(); + String newDisplayName = getDisplayName(); if (propertySupport != null) { propertySupport.firePropertyChange(PROP_DATABASE, olddb, db); + propertySupport.firePropertyChange(PROP_NAME, oldName, name); + if(! oldDisplayName.equals(newDisplayName)) { + propertySupport.firePropertyChange(PROP_DISPLAY_NAME, oldDisplayName, newDisplayName); } } + } /** Returns user login name */ @Override @@ -463,14 +470,21 @@ return; } + String oldDisplayName = getDisplayName(); + String oldName = getName(); String oldusr = usr; usr = user; name = null; name = getName(); + String newDisplayName = getDisplayName(); if (propertySupport != null) { propertySupport.firePropertyChange(PROP_USER, oldusr, usr); + propertySupport.firePropertyChange(PROP_NAME, oldName, name); + if(! oldDisplayName.equals(displayName)) { + propertySupport.firePropertyChange(PROP_DISPLAY_NAME, oldDisplayName, newDisplayName); } } + } /** Returns name of the connection */ @Override @@ -492,7 +506,7 @@ */ @Override public void setName(String value) { - if (name == null || name.equals(value)) { + if (name == null || getName().equals(value)) { return; } @@ -510,7 +524,7 @@ @Override public void setDisplayName(String value) { - if ((displayName == null && value == null) || (displayName != null && displayName.equals(value))) { + if ((displayName == null && value == null) || getDisplayName().equals(value)) { return; } @@ -544,17 +558,21 @@ if (schema_name == null || schema_name.equals(schema)) { return; } - + String oldDisplayName = getDisplayName(); String oldName = getName(); - name = null; String oldschema = schema; + name = null; schema = schema_name; name = getName(); + String newDisplayName = getDisplayName(); if (propertySupport != null) { propertySupport.firePropertyChange(PROP_SCHEMA, oldschema, schema); propertySupport.firePropertyChange(PROP_NAME, oldName, name); + if(! oldDisplayName.equals(displayName)) { + propertySupport.firePropertyChange(PROP_DISPLAY_NAME, oldDisplayName, newDisplayName); } } + } public void setDefaultCatalog(String val) throws CommandNotSupportedException, DDLException { DDLHelper.setDefaultDatabase(getConnector().getDatabaseSpecification(), val); Index: db/src/org/netbeans/modules/db/explorer/metadata/MetadataModelManager.java --- db/src/org/netbeans/modules/db/explorer/metadata/MetadataModelManager.java Base (BASE) +++ db/src/org/netbeans/modules/db/explorer/metadata/MetadataModelManager.java Locally Modified (Based On LOCAL) @@ -87,6 +87,10 @@ } } + public static void update(final DatabaseConnection dbconn, MetadataModel model) { + conn2Model.put(dbconn, model); + } + private static Connection checkAndGetConnection(final DatabaseConnection dbconn) { Connection conn = dbconn.getJDBCConnection(); Index: db/src/org/netbeans/modules/db/explorer/node/ConnectionNode.java --- db/src/org/netbeans/modules/db/explorer/node/ConnectionNode.java Base (BASE) +++ db/src/org/netbeans/modules/db/explorer/node/ConnectionNode.java Locally Modified (Based On LOCAL) @@ -59,6 +59,7 @@ import org.netbeans.modules.db.explorer.ConnectionList; import org.netbeans.modules.db.explorer.DatabaseConnectionAccessor; import org.netbeans.modules.db.explorer.DatabaseMetaDataTransferAccessor; +import org.netbeans.modules.db.explorer.metadata.MetadataModelManager; import org.netbeans.modules.db.metadata.model.api.MetadataModel; import org.netbeans.modules.db.metadata.model.api.MetadataModels; import org.openide.util.Exceptions; @@ -111,14 +112,9 @@ new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { - if (evt.getPropertyName().equals("connectionComplete") || // NOI18N - evt.getPropertyName().equals("disconnected")) { // NOI18N updateModel(); - } else if (evt.getPropertyName().equals(DatabaseConnection.PROP_NAME)) { - updateModel(); } } - } ); updateModel(); @@ -126,8 +122,6 @@ @Override public void setPropertyValue(Property nps, Object val) { - super.setPropertyValue(nps, val); - boolean refreshNode = true; if (nps.getName().equals(USER)) { @@ -141,16 +135,25 @@ connection.setDriver(val.toString()); } else if (nps.getName().equals(SCHEMA)) { connection.setSchema(val.toString()); + if( connection.getDefaultSchema() != null ) { + try { + connection.setDefaultSchema(val.toString()); + } catch (Exception ex) { + // Seems the underlying database does not support + // setting the default schema - should not happen, as + // in this case getDefaultSchema should return null + } + } } else if (nps.getName().equals(PROP_DEFSCHEMA)) { connection.setSchema(val.toString()); - } else if (nps.getName().equals(SCHEMA)) { - connection.setSchema(val.toString()); } else if (nps.getName().equals(DISPLAYNAME)) { connection.setDisplayName(val.toString()); setDisplayName(val.toString()); refreshNode = false; } + super.setPropertyValue(nps, val); + if (refreshNode) { refresh(); } @@ -164,7 +167,7 @@ addProperty(DISPLAYNAME, DISPLAYNAMEDESC, String.class, true, connection.getDisplayName()); addProperty(DATABASEURL, DATABASEURLDESC, String.class, !connected, connection.getDatabase()); addProperty(DRIVER, DRIVERDESC, String.class, !connected, connection.getDriver()); - addProperty(SCHEMA, SCHEMADESC, String.class, false, connection.getSchema()); + addProperty(SCHEMA, SCHEMADESC, String.class, !connected, connection.getSchema()); addProperty(USER, USERDESC, String.class, !connected, connection.getUser()); addProperty(REMEMBERPW, REMEMBERPWDESC, Boolean.class, !connected, connection.rememberPassword()); @@ -305,6 +308,7 @@ if (connected) { MetadataModel model = MetadataModels.createModel(connection.getConnection(), connection.getSchema()); connection.setMetadataModel(model); + MetadataModelManager.update(connection.getDatabaseConnection(), model); refresh(); } else { @@ -355,8 +359,9 @@ @Override public void setName(String name) { + String old = getName(); connection.setDisplayName(name); - fireNameChange(null, null); + fireNameChange(old, name); } @Override