/******************************************************************************* * Copyright (c) 2015 MEDEVIT <office@medevit.at>. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * MEDEVIT <office@medevit.at> - initial API and implementation ******************************************************************************/ package ch.elexis.core.ui.wizards; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import ch.elexis.core.data.util.DBConnection; import ch.elexis.core.data.util.DBConnection.DBType; import ch.elexis.data.PersistentObject; public class DBConnectNewOrEditConnectionWizardPage extends DBConnectWizardPage { private Text txtDBName; private Text txtDBHost; private Text txtDBPort; private Text txtDBUsername; private Text txtDBPassword; private ComboViewer comboViewerDBType; /** * @wbp.parser.constructor */ public DBConnectNewOrEditConnectionWizardPage(){ super(Messages.DBConnectFirstPage_Connection); setMessage(Messages.DBConnectNewOrEditConnectionWizardPage_this_message); setTitle(Messages.DBConnectNewOrEditConnectionWizardPage_this_title); } /** * Create contents of the wizard. * * @param parent */ public void createControl(Composite parent){ Composite container = new Composite(parent, SWT.NULL); setControl(container); container.setLayout(new GridLayout(1, false)); Group group = new Group(container, SWT.NONE); group.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); group.setText(Messages.DBConnectFirstPage_connectioNDetails); group.setLayout(new GridLayout(4, false)); Label lblTyp = new Label(group, SWT.NONE); lblTyp.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblTyp.setText("Typ"); comboViewerDBType = new ComboViewer(group, SWT.READ_ONLY); comboViewerDBType.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event){ DBType selection = (DBType) ((StructuredSelection) comboViewerDBType.getSelection()) .getFirstElement(); txtDBPort.setText(selection.defaultPort); if(selection.equals(DBType.H2)) { String h2Username = "sa"; //$NON-NLS-1$ String h2DBName = "elexis"; //$NON-NLS-1$ getDBConnectWizard().getTargetedConnection().username = h2Username; getDBConnectWizard().getTargetedConnection().databaseName = h2DBName; txtDBUsername.setText(h2Username); txtDBName.setText(h2DBName); } getDBConnectWizard().getTargetedConnection().rdbmsType = selection; getDBConnectWizard().getTargetedConnection().port = selection.defaultPort; } }); Combo comboDBType = comboViewerDBType.getCombo(); comboDBType.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); comboViewerDBType.setContentProvider(ArrayContentProvider.getInstance()); comboViewerDBType.setInput(DBConnection.DBType.values()); Label lblDBName = new Label(group, SWT.NONE); lblDBName.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblDBName.setText(Messages.DBImportFirstPage_databaseName); txtDBName = new Text(group, SWT.BORDER); txtDBName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); txtDBName.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e){ getDBConnectWizard().getTargetedConnection().databaseName = txtDBName.getText(); } }); Label lblHost = new Label(group, SWT.NONE); lblHost.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblHost.setText(Messages.DBImportFirstPage_serverAddress); txtDBHost = new Text(group, SWT.BORDER); txtDBHost.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); txtDBHost.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e){ getDBConnectWizard().getTargetedConnection().hostName = txtDBHost.getText(); } }); Label lblPort = new Label(group, SWT.NONE); lblPort.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblPort.setText("Port"); txtDBPort = new Text(group, SWT.BORDER); txtDBPort.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); txtDBPort.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e){ getDBConnectWizard().getTargetedConnection().port = txtDBPort.getText(); } }); Label lblDBUsername = new Label(group, SWT.NONE); lblDBUsername.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblDBUsername.setText(Messages.DBConnectSecondPage_databaseUsername); txtDBUsername = new Text(group, SWT.BORDER); txtDBUsername.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); txtDBUsername.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e){ getDBConnectWizard().getTargetedConnection().username = txtDBUsername.getText(); } }); Label lblDBPassword = new Label(group, SWT.NONE); lblDBPassword.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblDBPassword.setText(Messages.DBConnectSecondPage_databasePassword); txtDBPassword = new Text(group, SWT.PASSWORD); txtDBPassword.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); txtDBPassword.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e){ getDBConnectWizard().getTargetedConnection().password = txtDBPassword.getText(); } }); new Label(group, SWT.NONE); new Label(group, SWT.NONE); new Label(group, SWT.NONE); new Label(group, SWT.NONE); // // new Label(group, SWT.NONE); // new Label(group, SWT.NONE); // new Label(group, SWT.NONE); // new Label(group, SWT.NONE); // Button btnCreateDB = new Button(group, SWT.CHECK); // btnCreateDB.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1)); // btnCreateDB.setText("Datenbank erstellen"); // new Label(group, SWT.NONE); // Group grpRootCredentials = new Group(group, SWT.NONE); // grpRootCredentials.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1)); // grpRootCredentials.setText("Administrator / Root Credentials"); // grpRootCredentials.setLayout(new GridLayout(2, false)); // // Label lblRootUsername = new Label(grpRootCredentials, SWT.NONE); // lblRootUsername.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); // lblRootUsername.setText("Username"); // // txtRootUsername = new Text(grpRootCredentials, SWT.BORDER); // txtRootUsername.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); // // Label lblRootPassword = new Label(grpRootCredentials, SWT.NONE); // lblRootPassword.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); // lblRootPassword.setText("Passwort"); // // txtRootPassword = new Text(grpRootCredentials, SWT.BORDER); // txtRootPassword.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); tdbg = new TestDBConnectionGroup(container, SWT.NONE, getDBConnectWizard()); tdbg.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); } private DBConnectWizard getDBConnectWizard(){ return (DBConnectWizard) getWizard(); } @Override public void setVisible(boolean visible){ super.setVisible(visible); if (visible) { fillConnectionDetailFields(getDBConnectWizard().getTargetedConnection()); } } private void fillConnectionDetailFields(DBConnection dbConnection){ if (dbConnection.rdbmsType != null) { comboViewerDBType.setSelection(new StructuredSelection(dbConnection.rdbmsType)); } else { comboViewerDBType.setSelection(new StructuredSelection(DBType.MySQL)); } txtDBHost.setText(PersistentObject.checkNull(dbConnection.hostName)); txtDBName.setText(PersistentObject.checkNull(dbConnection.databaseName)); txtDBUsername.setText(PersistentObject.checkNull(dbConnection.username)); if (dbConnection.port != null) txtDBPort.setText(dbConnection.port); txtDBPassword.setText(PersistentObject.checkNull(dbConnection.password)); } }