/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.dialogs.net;
import org.eclipse.swt.SWT;
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.Spinner;
import org.eclipse.swt.widgets.Text;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.ui.IObjectPropertyConfigurator;
import org.jkiss.dbeaver.model.impl.net.SocksConstants;
import org.jkiss.dbeaver.model.net.DBWHandlerConfiguration;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.utils.CommonUtils;
import java.util.Map;
/**
* SOCKS proxy configuration
*/
public class SocksProxyConfiguratorUI implements IObjectPropertyConfigurator<DBWHandlerConfiguration> {
private Text hostText;
private Spinner portText;
private Text userNameText;
private Text passwordText;
private Button savePasswordCheckbox;
@Override
public void createControl(Composite parent)
{
final Composite composite = new Composite(parent, SWT.NONE);
GridData gd = new GridData(GridData.FILL_BOTH);
gd.minimumHeight = 200;
composite.setLayoutData(gd);
composite.setLayout(new GridLayout(2, false));
hostText = UIUtils.createLabelText(composite, "Host", null); //$NON-NLS-2$
hostText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
portText = UIUtils.createLabelSpinner(composite, "Port", SocksConstants.DEFAULT_SOCKS_PORT, 0, 65535);
userNameText = UIUtils.createLabelText(composite, "User name", null); //$NON-NLS-2$
userNameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
passwordText = UIUtils.createLabelText(composite, "Password", "", SWT.BORDER | SWT.PASSWORD); //$NON-NLS-2$
UIUtils.createPlaceholder(composite,1);
savePasswordCheckbox = UIUtils.createCheckbox(composite, CoreMessages.dialog_connection_auth_checkbox_save_password, false);
}
@Override
public void loadSettings(DBWHandlerConfiguration configuration)
{
hostText.setText(CommonUtils.notEmpty(configuration.getProperties().get(SocksConstants.PROP_HOST)));
String portString = configuration.getProperties().get(SocksConstants.PROP_PORT);
if (!CommonUtils.isEmpty(portString)) {
portText.setSelection(CommonUtils.toInt(portString));
}
userNameText.setText(CommonUtils.notEmpty(configuration.getUserName()));
passwordText.setText(CommonUtils.notEmpty(configuration.getPassword()));
savePasswordCheckbox.setSelection(configuration.isSavePassword());
}
@Override
public void saveSettings(DBWHandlerConfiguration configuration)
{
Map<String,String> properties = configuration.getProperties();
properties.clear();
properties.put(SocksConstants.PROP_HOST, hostText.getText());
properties.put(SocksConstants.PROP_PORT, portText.getText());
configuration.setUserName(userNameText.getText());
configuration.setPassword(passwordText.getText());
configuration.setSavePassword(savePasswordCheckbox.getSelection());
}
@Override
public boolean isComplete()
{
return false;
}
}