/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.database.gui; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; /** * Database Connection Adding and Editing Dialog. * * @author Oliver Seebach */ public class DatabaseConnectionAddEditDialog extends Dialog { private static final int MINIMUM_DIALOG_WIDTH = 300; private Text nameTextfield; private Text typeTextfield; private Text hostTextfield; private Text portTextfield; private Text defaultSchemeTextfield; private Text usernameTextfield; private Text passwordTextfield; private String name; private String type; private String host; private String port; private String defaultScheme; private String username; private String password; private boolean fillTextfields = false; private DatabaseManagementActionType actionType; protected DatabaseConnectionAddEditDialog(Shell parentShell, DatabaseManagementActionType actionType) { super(parentShell); this.actionType = actionType; } @Override protected void configureShell(Shell newShell) { // newShell.setLayout(new GridLayout(1, false)); GridData databaseSelectionData = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH); databaseSelectionData.minimumWidth = MINIMUM_DIALOG_WIDTH; databaseSelectionData.widthHint = MINIMUM_DIALOG_WIDTH; newShell.setLayoutData(databaseSelectionData); super.configureShell(newShell); } // protected DatabaseConnectionAddEditDialog(Shell parentShell, TableItem selectedItem, DatabaseManagementActionType actionType) { // super(parentShell); // name = selectedItem.getText(0); // type = selectedItem.getText(1); // host = selectedItem.getText(2); // port = selectedItem.getText(3); // defaultScheme = selectedItem.getText(4); // username = selectedItem.getText(5); // password = selectedItem.getText(6); // // fillTextfields = true; // // this.actionType = actionType; // } // protected DatabaseConnectionAddEditDialog(Shell parentShell, DatabaseConnection selectedConnection, // DatabaseManagementActionType actionType) { // super(parentShell); // name = selectedConnection.getName(); // type = selectedConnection.getType(); // host = selectedConnection.getHost(); // port = selectedConnection.getPort(); // defaultScheme = selectedConnection.getScheme(); // username = selectedConnection.getUsername(); // password = selectedConnection.getPassword(); // // fillTextfields = true; // // this.actionType = actionType; // } private void setTextFieldData() { nameTextfield.setText(name); typeTextfield.setText(type); hostTextfield.setText(host); portTextfield.setText(port); defaultSchemeTextfield.setText(defaultScheme); usernameTextfield.setText(username); passwordTextfield.setText(password); } @Override protected Control createDialogArea(Composite parent) { Composite container = (Composite) super.createDialogArea(parent); container.setLayout(new GridLayout(1, true)); GridData g1 = new GridData(GridData.FILL_BOTH); g1.grabExcessHorizontalSpace = true; g1.horizontalAlignment = GridData.CENTER; container.setLayoutData(g1); // -------------------------------- Composite configurationContainer = new Composite(container, SWT.NONE); GridData g2 = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL); // GridData g2 = new GridData(GridData.FILL, GridData.FILL, true, true); configurationContainer.setLayout(new GridLayout(2, false)); configurationContainer.setLayoutData(g2); // GridData textGridData = new GridData(); GridData textGridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL); // textGridData.grabExcessHorizontalSpace = true; // Db Name Label nameLabel = new Label(configurationContainer, SWT.NONE); nameLabel.setText("Database name: "); nameLabel.setLayoutData(textGridData); nameTextfield = new Text(configurationContainer, SWT.SINGLE | SWT.BORDER); nameTextfield.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); // Type Label typeLabel = new Label(configurationContainer, SWT.NONE); typeLabel.setText("Database Type: "); typeLabel.setLayoutData(textGridData); typeTextfield = new Text(configurationContainer, SWT.SINGLE | SWT.BORDER); typeTextfield.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); // Host Label hostLabel = new Label(configurationContainer, SWT.NONE); hostLabel.setText("Host: "); hostLabel.setLayoutData(textGridData); hostTextfield = new Text(configurationContainer, SWT.SINGLE | SWT.BORDER); hostTextfield.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); // Port Label portLabel = new Label(configurationContainer, SWT.NONE); portLabel.setText("Port: "); portLabel.setLayoutData(textGridData); portTextfield = new Text(configurationContainer, SWT.SINGLE | SWT.BORDER); portTextfield.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); // Scheme Label defaultSchemeLabel = new Label(configurationContainer, SWT.NONE); defaultSchemeLabel.setText("Default Scheme: "); defaultSchemeLabel.setLayoutData(textGridData); defaultSchemeTextfield = new Text(configurationContainer, SWT.SINGLE | SWT.BORDER); defaultSchemeTextfield.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); GridData separatorGridData = new GridData(GridData.FILL_BOTH); separatorGridData.grabExcessHorizontalSpace = true; separatorGridData.horizontalAlignment = GridData.CENTER; separatorGridData.horizontalSpan = 2; Label sep = new Label(configurationContainer, SWT.SEPARATOR | SWT.HORIZONTAL | SWT.FILL); sep.setLayoutData(separatorGridData); // Username Label usernameLabel = new Label(configurationContainer, SWT.NONE); usernameLabel.setText("Username: "); usernameLabel.setLayoutData(textGridData); usernameTextfield = new Text(configurationContainer, SWT.SINGLE | SWT.BORDER); usernameTextfield.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); // Password Label passwordLabel = new Label(configurationContainer, SWT.NONE); passwordLabel.setText("Password: "); passwordLabel.setLayoutData(textGridData); passwordTextfield = new Text(configurationContainer, SWT.SINGLE | SWT.BORDER); passwordTextfield.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); if (fillTextfields){ setTextFieldData(); } return configurationContainer; } @Override protected void okPressed() { // if (actionType.equals(DatabaseManagementActionType.ADD)){ // // DO adding here // } else if (actionType.equals(DatabaseManagementActionType.EDIT)){ // // DO update here // } super.okPressed(); } }