@Override public boolean performOk() { DataSourceProviderRegistry registry = DataSourceProviderRegistry.getInstance(); java.util.List<DBPConnectionType> toRemove = new ArrayList<>(); for (DBPConnectionType type : registry.getConnectionTypes()) { if (!changedInfo.values().contains(type)) { // Remove toRemove.add(type); } } for (DBPConnectionType connectionType : toRemove) { registry.removeConnectionType(connectionType); } for (DBPConnectionType changed : changedInfo.keySet()) { DBPConnectionType source = changedInfo.get(changed); if (source == changed) { // New type registry.addConnectionType(changed); } else { // Changed type source.setName(changed.getName()); source.setDescription(changed.getDescription()); source.setAutocommit(changed.isAutocommit()); source.setConfirmExecute(changed.isConfirmExecute()); source.setColor(changed.getColor()); } } registry.saveConnectionTypes(); return super.performOk(); }