提交 1244bf60 编写于 作者: S Serge Rider

Connection settings page UI improvement

上级 aa36ae91
......@@ -44,4 +44,6 @@ public interface IDataSourceConnectionEditorSite
boolean openDriverEditor();
boolean openSettingsPage(String pageId);
}
......@@ -283,8 +283,16 @@ public class MultiPageWizardDialog extends TitleAreaDialog implements IWizardCon
for (TreeItem item : pagesTree.getItems()) {
if (item.getData() == page) {
pagesTree.setSelection(item);
changePage();
break;
}
for (TreeItem child : item.getItems()) {
if (child.getData() == page) {
pagesTree.setSelection(child);
changePage();
return;
}
}
}
}
......
......@@ -19,14 +19,12 @@ package org.jkiss.dbeaver.ui.dialogs.connection;
import org.eclipse.jface.dialogs.DialogPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
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.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
......@@ -110,6 +108,19 @@ public abstract class ConnectionPageAbstract extends DialogPage implements IData
gd.grabExcessVerticalSpace = true;
placeholder.setLayoutData(gd);
if (!site.isNew()) {
Link netConfigLink = new Link(panel, SWT.NONE);
netConfigLink.setText("<a>Network settings (SSH, SSL, Proxy, ...)</a>");
netConfigLink.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
site.openSettingsPage(ConnectionPageNetwork.PAGE_NAME);
}
});
gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
gd.horizontalSpan = 4;
netConfigLink.setLayoutData(gd);
}
Label divLabel = new Label(panel, SWT.SEPARATOR | SWT.HORIZONTAL);
gd = new GridData(GridData.FILL_HORIZONTAL);
......
......@@ -49,6 +49,8 @@ import java.util.Map;
*/
public class ConnectionPageNetwork extends ActiveWizardPage<ConnectionWizard> {
public static final String PAGE_NAME = "networkHandlersSettings";
static final Log log = Log.getLog(ConnectionPageNetwork.class);
private TabFolder handlersFolder;
private DataSourceDescriptor prevDataSource;
......@@ -75,7 +77,7 @@ public class ConnectionPageNetwork extends ActiveWizardPage<ConnectionWizard> {
ConnectionPageNetwork(ConnectionWizard wizard)
{
super(CoreMessages.dialog_tunnel_title);
super(PAGE_NAME);
this.wizard = wizard;
setTitle("Network");
setDescription(CoreMessages.dialog_tunnel_title);
......
......@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ui.dialogs.connection;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IDialogPage;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
......@@ -258,6 +259,15 @@ class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implemen
return dialog.open() == IDialogConstants.OK_ID;
}
@Override
public boolean openSettingsPage(String pageId) {
final IWizardPage page = wizard.getPage(pageId);
if (page != null) {
wizard.getContainer().showPage(page);
}
return false;
}
@Override
public void dispose()
{
......
......@@ -17,8 +17,10 @@
*/
package org.jkiss.dbeaver.ui.dialogs.connection;
import org.eclipse.jface.dialogs.IDialogPage;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPropertyPage;
import org.jkiss.code.NotNull;
......@@ -29,6 +31,7 @@ import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.DataSourceViewDescriptor;
import org.jkiss.dbeaver.registry.driver.DriverDescriptor;
import org.jkiss.dbeaver.ui.IActionConstants;
import org.jkiss.dbeaver.ui.ICompositeDialogPage;
import org.jkiss.dbeaver.ui.preferences.*;
import java.util.ArrayList;
......@@ -127,6 +130,26 @@ public class EditConnectionWizard extends ConnectionWizard
return wizardPage;
}
public IWizardPage getPage(String name) {
for (IWizardPage page : getPages()) {
String pageName = page.getName();
if (pageName.equals(name)) {
return page;
}
if (page instanceof ICompositeDialogPage) {
final IDialogPage[] subPages = ((ICompositeDialogPage) page).getSubPages();
if (subPages != null) {
for (IDialogPage subPage : subPages) {
if (subPage instanceof IWizardPage && ((IWizardPage) subPage).getName().equals(name)) {
return (IWizardPage) subPage;
}
}
}
}
}
return null;
}
/**
* This method is called when 'Finish' button is pressed in
* the wizard. We will create an operation and run it
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册