提交 c344a476 编写于 作者: S Serge Rider

Connection folder selector in connection wizard/editor.

Image combo refactoring.
上级 6d169c74
......@@ -130,7 +130,7 @@ class ScriptsImportWizardPage extends WizardPage {
UIUtils.createControlLabel(generalSettings, CoreMessages.dialog_scripts_import_wizard_label_default_connection);
scriptsDataSources = new CImageCombo(generalSettings, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
for (DataSourceDescriptor dataSourceDescriptor : DataSourceRegistry.getAllDataSources()) {
scriptsDataSources.add(DBeaverIcons.getImage(dataSourceDescriptor.getObjectImage()), dataSourceDescriptor.getName(), null, dataSourceDescriptor);
scriptsDataSources.add(dataSourceDescriptor.getObjectImage(), dataSourceDescriptor.getName(), null, dataSourceDescriptor);
}
if (scriptsDataSources.getItemCount() > 0) {
......
......@@ -26,6 +26,8 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.ui.DBeaverIcons;
import java.util.Arrays;
......@@ -251,13 +253,13 @@ public class CImageCombo extends Composite {
* <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
* </ul>
*/
public void add(@Nullable Image image, String string, @Nullable Color background, @Nullable Object data)
public void add(@Nullable DBPImage icon, String string, @Nullable Color background, @Nullable Object data)
{
checkWidget();
if (string == null) {
SWT.error(SWT.ERROR_NULL_ARGUMENT);
}
Image image = icon == null ? null : DBeaverIcons.getImage(icon);
TableItem newItem = new TableItem(this.table, SWT.NONE);
newItem.setText(string);
newItem.setData(data);
......
......@@ -34,6 +34,7 @@ import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.connection.DBPConnectionBootstrap;
......@@ -72,6 +73,7 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
private DataSourceDescriptor dataSourceDescriptor;
private Text connectionNameText;
private CImageCombo connectionTypeCombo;
private CImageCombo connectionFolderCombo;
private Button savePasswordCheck;
private Button autocommit;
private Combo isolationLevel;
......@@ -186,6 +188,11 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
// Get settings from data source descriptor
final DBPConnectionConfiguration conConfig = dataSourceDescriptor.getConnectionConfiguration();
connectionTypeCombo.select(conConfig.getConnectionType());
if (dataSourceDescriptor.getFolder() == null) {
connectionFolderCombo.select(0);
} else {
connectionFolderCombo.select(dataSourceDescriptor.getFolder());
}
savePasswordCheck.setSelection(dataSourceDescriptor.isSavePassword());
autocommit.setSelection(dataSourceDescriptor.isDefaultAutoCommit());
showSystemObjects.setSelection(dataSourceDescriptor.isShowSystemObjects());
......@@ -234,6 +241,11 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
savePasswordCheck.setSelection(true);
connectionTypeCombo.select(0);
autocommit.setSelection(((DBPConnectionType)connectionTypeCombo.getData(0)).isAutocommit());
if (dataSourceFolder != null) {
connectionFolderCombo.select(dataSourceFolder);
} else {
connectionFolderCombo.select(0);
}
showSystemObjects.setSelection(true);
showUtilityObjects.setSelection(false);
readOnlyConnection.setSelection(false);
......@@ -337,12 +349,21 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
autocommit.setSelection(connectionType.isAutocommit());
}
});
/*
UIUtils.createControlLabel(colorGroup, "Custom color");
new CImageCombo(colorGroup, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
Button pickerButton = new Button(colorGroup, SWT.PUSH);
pickerButton.setText("...");
*/
}
{
UIUtils.createControlLabel(group, "Connection folder");
connectionFolderCombo = new CImageCombo(group, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
//connectionFolderCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
loadConnectionFolders();
connectionFolderCombo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e)
{
dataSourceFolder = (DBPDataSourceFolder)connectionFolderCombo.getItem(connectionFolderCombo.getSelectionIndex()).getData();
}
});
}
{
......@@ -508,6 +529,24 @@ class ConnectionPageGeneral extends ActiveWizardPage<ConnectionWizard> {
}
}
private void loadConnectionFolders()
{
connectionFolderCombo.removeAll();
connectionFolderCombo.add(null, "<NONE>", null, null);
for (DBPDataSourceFolder folder : getWizard().getDataSourceRegistry().getRootFolders()) {
loadConnectionFolder(0, folder);
}
}
private void loadConnectionFolder(int level, DBPDataSourceFolder folder) {
String prefix = "";
for (int i = 0; i < level; i++) prefix += " ";
connectionFolderCombo.add(DBIcon.TREE_DATABASE_CATEGORY, prefix + folder.getName(), null, folder);
for (DBPDataSourceFolder child : folder.getChildren()) {
loadConnectionFolder(level + 1, child);
}
}
@Override
public boolean isPageComplete()
{
......
......@@ -183,7 +183,7 @@ public class DriverEditDialog extends HelpEnabledDialog {
if (newDriver) {
for (DataSourceProviderDescriptor p : DataSourceProviderRegistry.getInstance().getDataSourceProviders()) {
if (p.isDriversManagable()) {
providerCombo.add(DBeaverIcons.getImage(p.getIcon()), p.getName(), null, p);
providerCombo.add(p.getIcon(), p.getName(), null, p);
}
}
providerCombo.select(provider);
......@@ -195,7 +195,7 @@ public class DriverEditDialog extends HelpEnabledDialog {
}
});
} else {
providerCombo.add(DBeaverIcons.getImage(provider.getIcon()), provider.getName(), null, provider);
providerCombo.add(provider.getIcon(), provider.getName(), null, provider);
providerCombo.select(provider);
}
......
......@@ -63,7 +63,6 @@ import org.jkiss.dbeaver.model.struct.DBSObjectSelector;
import org.jkiss.dbeaver.registry.DataSourceProviderRegistry;
import org.jkiss.dbeaver.registry.DataSourceRegistry;
import org.jkiss.dbeaver.runtime.jobs.DataSourceJob;
import org.jkiss.dbeaver.ui.DBeaverIcons;
import org.jkiss.dbeaver.ui.IActionConstants;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.actions.DataSourcePropertyTester;
......@@ -340,7 +339,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
try {
if (update) {
connectionCombo.removeAll();
connectionCombo.add(DBeaverIcons.getImage(DBIcon.TREE_DATABASE), EMPTY_SELECTION_TEXT, null, null);
connectionCombo.add(DBIcon.TREE_DATABASE, EMPTY_SELECTION_TEXT, null, null);
}
int selectionIndex = 0;
......@@ -356,7 +355,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
if (update) {
DBNDatabaseNode dsNode = navigatorModel.getNodeByObject(ds);
connectionCombo.add(
DBeaverIcons.getImage(dsNode == null ? DBIcon.TREE_DATABASE : dsNode.getNodeIconDefault()),
dsNode == null ? DBIcon.TREE_DATABASE : dsNode.getNodeIconDefault(),
ds.getName(),
UIUtils.getConnectionColor(ds.getConnectionConfiguration()),
ds);
......@@ -535,7 +534,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
if (dbList != null && !dbList.isEmpty()) {
for (DBNDatabaseNode node : dbList) {
databaseCombo.add(
DBeaverIcons.getImage(node.getNodeIconDefault()),
node.getNodeIconDefault(),
node.getName(),
UIUtils.getConnectionColor(node.getObject().getDataSource().getContainer().getConnectionConfiguration()),
node);
......@@ -731,7 +730,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
connectionCombo.setVisibleItemCount(15);
connectionCombo.setWidthHint(comboWidth);
connectionCombo.setToolTipText(CoreMessages.toolbar_datasource_selector_combo_datasource_tooltip);
connectionCombo.add(DBeaverIcons.getImage(DBIcon.TREE_DATABASE), EMPTY_SELECTION_TEXT, null, null);
connectionCombo.add(DBIcon.TREE_DATABASE, EMPTY_SELECTION_TEXT, null, null);
connectionCombo.select(0);
connectionCombo.addSelectionListener(new SelectionListener() {
@Override
......@@ -755,7 +754,7 @@ public class DataSourceManagementToolbar implements DBPRegistryListener, DBPEven
databaseCombo.setVisibleItemCount(15);
databaseCombo.setWidthHint(comboWidth);
databaseCombo.setToolTipText(CoreMessages.toolbar_datasource_selector_combo_database_tooltip);
databaseCombo.add(DBeaverIcons.getImage(DBIcon.TREE_DATABASE), EMPTY_SELECTION_TEXT, null, null);
databaseCombo.add(DBIcon.TREE_DATABASE, EMPTY_SELECTION_TEXT, null, null);
databaseCombo.select(0);
databaseCombo.addSelectionListener(new SelectionListener() {
@Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册