提交 f073be03 编写于 作者: J jurgen

Network / events config moved to connection settings pages

上级 0535e1e6
......@@ -22,6 +22,7 @@ package org.jkiss.dbeaver.ext.ui;
import org.eclipse.jface.operation.IRunnableContext;
import org.jkiss.dbeaver.model.DBPConnectionInfo;
import org.jkiss.dbeaver.model.DBPDriver;
import org.jkiss.dbeaver.model.struct.DBSDataSourceContainer;
/**
* IDataSourceConnectionEditorSite
......@@ -30,6 +31,8 @@ public interface IDataSourceConnectionEditorSite
{
IRunnableContext getRunnableContext();
DBSDataSourceContainer getDataSourceContainer();
DBPDriver getDriver();
DBPConnectionInfo getConnectionInfo();
......@@ -39,4 +42,5 @@ public interface IDataSourceConnectionEditorSite
void updateMessage();
boolean openDriverEditor();
}
......@@ -19,10 +19,24 @@
package org.jkiss.dbeaver.ui.dialogs.connection;
import org.eclipse.jface.dialogs.DialogPage;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.ext.ui.IDataSourceConnectionEditor;
import org.jkiss.dbeaver.ext.ui.IDataSourceConnectionEditorSite;
import org.jkiss.dbeaver.model.DBPConnectionEventType;
import org.jkiss.dbeaver.model.DBPConnectionInfo;
import org.jkiss.dbeaver.model.net.DBWHandlerConfiguration;
import org.jkiss.dbeaver.ui.UIUtils;
/**
* ConnectionPageAbstract
......@@ -31,6 +45,76 @@ public abstract class ConnectionPageAbstract extends DialogPage implements IData
{
protected IDataSourceConnectionEditorSite site;
private Font boldFont;
private Button tunnelButton;
private Button eventsButton;
public IDataSourceConnectionEditorSite getSite() {
return site;
}
protected void createAdvancedButtons(Composite parent, boolean makeDiv)
{
if (site.getDataSourceContainer() != null) {
return;
}
boldFont = UIUtils.makeBoldFont(parent.getFont());
if (makeDiv) {
Label divLabel = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = ((GridLayout)parent.getLayout()).numColumns;
divLabel.setLayoutData(gd);
}
{
//Composite buttonsGroup = UIUtils.createPlaceholder(group, 3);
Composite buttonsGroup = new Composite(parent, SWT.NONE);
GridLayout gl = new GridLayout(2, true);
gl.verticalSpacing = 0;
gl.horizontalSpacing = 10;
gl.marginHeight = 0;
gl.marginWidth = 0;
buttonsGroup.setLayout(gl);
//buttonsGroup.setLayout(new GridLayout(2, true));
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
if (makeDiv) {
gd.horizontalSpan = ((GridLayout)parent.getLayout()).numColumns;
}
buttonsGroup.setLayoutData(gd);
tunnelButton = new Button(buttonsGroup, SWT.PUSH);
tunnelButton.setText("SSH Tunnel");
tunnelButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
tunnelButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e)
{
configureTunnels();
}
});
eventsButton = new Button(buttonsGroup, SWT.PUSH);
eventsButton.setText("Connection Events");
eventsButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
eventsButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e)
{
configureEvents();
}
});
}
}
@Override
public void dispose() {
if (boldFont != null) {
UIUtils.dispose(boldFont);
}
super.dispose();
}
@Override
public void setSite(IDataSourceConnectionEditorSite site)
{
......@@ -45,6 +129,25 @@ public abstract class ConnectionPageAbstract extends DialogPage implements IData
@Override
public void loadSettings()
{
DBPConnectionInfo connectionInfo = site.getConnectionInfo();
if (tunnelButton != null) {
tunnelButton.setFont(getFont());
for (DBWHandlerConfiguration config : connectionInfo.getDeclaredHandlers()) {
if (config.isEnabled()) {
tunnelButton.setFont(boldFont);
break;
}
}
}
if (eventsButton != null) {
eventsButton.setFont(getFont());
for (DBPConnectionEventType eventType : connectionInfo.getDeclaredEvents()) {
if (connectionInfo.getEvent(eventType).isEnabled()) {
eventsButton.setFont(boldFont);
break;
}
}
}
}
@Override
......@@ -74,4 +177,38 @@ public abstract class ConnectionPageAbstract extends DialogPage implements IData
}
}
private void configureEvents()
{
DBPConnectionInfo connectionInfo = site.getConnectionInfo();
EditEventsDialog dialog = new EditEventsDialog(
getShell(),
connectionInfo);
if (dialog.open() == IDialogConstants.OK_ID) {
eventsButton.setFont(getFont());
for (DBPConnectionEventType eventType : connectionInfo.getDeclaredEvents()) {
if (connectionInfo.getEvent(eventType).isEnabled()) {
eventsButton.setFont(boldFont);
break;
}
}
}
}
private void configureTunnels()
{
EditTunnelDialog dialog = new EditTunnelDialog(
getShell(),
site.getDriver(),
site.getConnectionInfo());
if (dialog.open() == IDialogConstants.OK_ID) {
tunnelButton.setFont(getFont());
for (DBWHandlerConfiguration config : site.getConnectionInfo().getDeclaredHandlers()) {
if (config.isEnabled()) {
tunnelButton.setFont(boldFont);
break;
}
}
}
}
}
......@@ -34,8 +34,10 @@ import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.net.DBWHandlerConfiguration;
import org.jkiss.dbeaver.model.DBPConnectionInfo;
import org.jkiss.dbeaver.model.DBPConnectionType;
import org.jkiss.dbeaver.model.DBPDataSourceProvider;
import org.jkiss.dbeaver.model.DBPTransactionIsolation;
import org.jkiss.dbeaver.model.struct.DBSObjectFilter;
import org.jkiss.dbeaver.model.struct.rdb.DBSCatalog;
import org.jkiss.dbeaver.model.struct.rdb.DBSSchema;
......@@ -72,8 +74,6 @@ class ConnectionPageFinal extends ActiveWizardPage<ConnectionWizard> {
private Font boldFont;
private boolean connectionNameChanged = false;
private Button tunnelButton;
private Button eventsButton;
private java.util.List<FilterInfo> filters = new ArrayList<FilterInfo>();
private Group filtersGroup;
private boolean activated = false;
......@@ -153,23 +153,6 @@ class ConnectionPageFinal extends ActiveWizardPage<ConnectionWizard> {
}
connectionNameText.setText(newName);
connectionNameChanged = false;
if (dataSourceDescriptor == null) {
tunnelButton.setFont(getFont());
for (DBWHandlerConfiguration config : connectionInfo.getDeclaredHandlers()) {
if (config.isEnabled()) {
tunnelButton.setFont(boldFont);
break;
}
}
eventsButton.setFont(getFont());
for (DBPConnectionEventType eventType : connectionInfo.getDeclaredEvents()) {
if (connectionInfo.getEvent(eventType).isEnabled()) {
eventsButton.setFont(boldFont);
break;
}
}
}
}
}
if (dataSourceDescriptor != null) {
......@@ -419,34 +402,6 @@ class ConnectionPageFinal extends ActiveWizardPage<ConnectionWizard> {
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
buttonsGroup.setLayoutData(gd);
if (dataSourceDescriptor == null) {
tunnelButton = new Button(buttonsGroup, SWT.PUSH);
tunnelButton.setText(CoreMessages.dialog_connection_wizard_final_button_tunneling);
gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.grabExcessVerticalSpace = true;
tunnelButton.setLayoutData(gd);
tunnelButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e)
{
configureTunnels();
}
});
eventsButton = new Button(buttonsGroup, SWT.PUSH);
eventsButton.setText(CoreMessages.dialog_connection_wizard_final_button_events);
gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.grabExcessHorizontalSpace = true;
eventsButton.setLayoutData(gd);
eventsButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e)
{
configureEvents();
}
});
}
}
setControl(group);
......@@ -498,38 +453,4 @@ class ConnectionPageFinal extends ActiveWizardPage<ConnectionWizard> {
}
}
private void configureEvents()
{
DBPConnectionInfo connectionInfo = wizard.getPageSettings().getConnectionInfo();
EditEventsDialog dialog = new EditEventsDialog(
getShell(),
connectionInfo);
if (dialog.open() == IDialogConstants.OK_ID) {
eventsButton.setFont(getFont());
for (DBPConnectionEventType eventType : connectionInfo.getDeclaredEvents()) {
if (connectionInfo.getEvent(eventType).isEnabled()) {
eventsButton.setFont(boldFont);
break;
}
}
}
}
private void configureTunnels()
{
EditTunnelDialog dialog = new EditTunnelDialog(
getShell(),
wizard.getPageSettings().getDriver(),
wizard.getPageSettings().getConnectionInfo());
if (dialog.open() == IDialogConstants.OK_ID) {
tunnelButton.setFont(getFont());
for (DBWHandlerConfiguration config : wizard.getPageSettings().getConnectionInfo().getDeclaredHandlers()) {
if (config.isEnabled()) {
tunnelButton.setFont(boldFont);
break;
}
}
}
}
}
\ No newline at end of file
......@@ -37,6 +37,7 @@ import org.jkiss.dbeaver.ext.ui.ICompositeDialogPage;
import org.jkiss.dbeaver.ext.ui.IDataSourceConnectionEditor;
import org.jkiss.dbeaver.ext.ui.IDataSourceConnectionEditorSite;
import org.jkiss.dbeaver.model.DBPConnectionInfo;
import org.jkiss.dbeaver.model.struct.DBSDataSourceContainer;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.DataSourceViewDescriptor;
import org.jkiss.dbeaver.registry.DriverDescriptor;
......@@ -203,6 +204,11 @@ class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implemen
return wizard.getContainer();
}
@Override
public DBSDataSourceContainer getDataSourceContainer() {
return dataSource;
}
@Override
public DriverDescriptor getDriver()
{
......
......@@ -64,7 +64,8 @@ public class DB2ConnectionPage extends ConnectionPageAbstract implements ICompos
//group.setLayout(new GridLayout(1, true));
setImageDescriptor(logoImage);
Composite control = UIUtils.createPlaceholder(composite, 1);
Composite control = new Composite(composite, SWT.NONE);
control.setLayout(new GridLayout(1, false));
control.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
ModifyListener textListener = new ModifyListener() {
@Override
......@@ -133,6 +134,8 @@ public class DB2ConnectionPage extends ConnectionPageAbstract implements ICompos
passwordText.addModifyListener(textListener);
}
createAdvancedButtons(control, false);
setControl(control);
}
......
......@@ -272,6 +272,8 @@ public class GenericConnectionPage extends ConnectionPageAbstract implements ICo
addControlToGroup(GROUP_LOGIN, passwordText);
}
createAdvancedButtons(settingsGroup, true);
Composite placeholder = UIUtils.createPlaceholder(settingsGroup, 1);
gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_END);
gd.horizontalSpan = 4;
......@@ -279,6 +281,11 @@ public class GenericConnectionPage extends ConnectionPageAbstract implements ICo
gd.grabExcessVerticalSpace = true;
placeholder.setLayoutData(gd);
Label divLabel = new Label(settingsGroup, SWT.SEPARATOR | SWT.HORIZONTAL);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 4;
divLabel.setLayoutData(gd);
{
Label driverLabel = new Label(settingsGroup, SWT.NONE);
driverLabel.setText(GenericMessages.dialog_connection_driver);
......
......@@ -132,11 +132,17 @@ public class MySQLConnectionPage extends ConnectionPageAbstract implements IComp
passwordText.setLayoutData(gd);
passwordText.addModifyListener(textListener);
homesSelector = new ClientHomesSelector(addrGroup, SWT.NONE, "Local Client");
gd = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.horizontalSpan = 2;
//gd.minimumWidth = 300;
homesSelector.setLayoutData(gd);
{
Composite buttonsGroup = new Composite(addrGroup, SWT.NONE);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 4;
buttonsGroup.setLayoutData(gd);
buttonsGroup.setLayout(new GridLayout(2, false));
homesSelector = new ClientHomesSelector(buttonsGroup, SWT.NONE, "Local Client");
gd = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_BEGINNING);
homesSelector.setLayoutData(gd);
createAdvancedButtons(buttonsGroup, false);
}
setControl(addrGroup);
}
......
......@@ -83,7 +83,8 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom
controlModifyListener = new ControlsListener();
Composite addrGroup = UIUtils.createPlaceholder(composite, 1);
Composite addrGroup = new Composite(composite, SWT.NONE);
addrGroup.setLayout(new GridLayout(1, false));
addrGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
final Group protocolGroup = UIUtils.createControlGroup(addrGroup, OracleMessages.dialog_connection_connection_type_group, 1, GridData.FILL_HORIZONTAL, 0);
......@@ -111,7 +112,10 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom
Composite bottomControls = UIUtils.createPlaceholder(addrGroup, 3);
bottomControls.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
createClientHomeGroup(bottomControls);
{
createClientHomeGroup(bottomControls);
createAdvancedButtons(bottomControls, false);
}
setControl(addrGroup);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册