private int port;
protected CdmDataSourcePostgreSQLServerWizardPage(ICdmDataSource dataSource) {
- super("PostgreSQL Server");
+ super("PostgreSQL Server", dataSource);
setTitle("PostgreSQL Server");
setDescription("Enter credentials for PostgreSQL Server database");
- this.setDataSource(dataSource);
+
}
/* (non-Javadoc)
// Create host input
text_server = new Text(locationGroup, SWT.BORDER);
text_server.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- text_server.addModifyListener(this);
+
// Create port label
Label portLabel = new Label(locationGroup, SWT.NONE);
text_port = new Text(locationGroup, SWT.BORDER);
text_port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- text_port.addModifyListener(this);
+
}
/* (non-Javadoc)
*/
@Override
public void updateDataSource() {
- setDataSource(CdmDataSource.NewPostgreSQLInstance(server,
- database,
- port,
- username,
- password,
- nomenclaturalCode));
+
+
+ ICdmDataSource dataSource = getDataSource();
+
+ if(dataSource == null) {
+ setDataSource(CdmDataSource.NewPostgreSQLInstance(server,
+ database,
+ port,
+ username,
+ password,
+ nomenclaturalCode));
+ } else {
+ dataSource.setName(name);
+ dataSource.setServer(server);
+ dataSource.setDatabase(database);
+ dataSource.setPort(port);
+ dataSource.setUsername(username);
+ dataSource.setPassword(password);
+ dataSource.setNomenclaturalCode(nomenclaturalCode);
+ }
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage#init()
+ */
+ /** {@inheritDoc} */
@Override
public void init() {
+ super.init();
if(getDataSource() != null){
- modifyTextWithoutTriggeringListeners(text_server, this, getDataSource().getServer());
- modifyTextWithoutTriggeringListeners(text_port, this, getDataSource().getPort()+"");
- super.init();
+ removeListeners();
+ text_server.setText(getDataSource().getServer());
+ text_port.setText(String.valueOf(getDataSource().getPort()));
+ // add listeners after setting text to avoid the modify event being called
+ // for the initial value
+ addListeners();
}
+
+ }
+
+ private void addListeners() {
+ text_server.addModifyListener(this);
+ text_port.addModifyListener(this);
+ }
+
+ private void removeListeners() {
+ text_server.removeModifyListener(this);
+ text_port.removeModifyListener(this);
}
}