提交 858c0964 编写于 作者: S Serge Rider

Connection folder selector in connection wizard/editor.

Image combo refactoring.


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