use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by serge-rider.
the class DataSourceDescriptor method getTypeFilterMapping.
private FilterMapping getTypeFilterMapping(@Nullable DBSObject parentObject, boolean firstMatch, Class<?> testType) {
FilterMapping filterMapping = filterMap.get(testType.getName());
DBSObjectFilter filter;
if (filterMapping == null) {
// Try to find using interfaces and superclasses
for (Class<?> it : testType.getInterfaces()) {
filterMapping = filterMap.get(it.getName());
if (filterMapping != null) {
filter = filterMapping.getFilter(parentObject, firstMatch);
if (filter != null && (firstMatch || filter.isEnabled()))
return filterMapping;
}
}
}
if (filterMapping != null) {
filter = filterMapping.getFilter(parentObject, firstMatch);
if (filter != null && (firstMatch || filter.isEnabled())) {
return filterMapping;
}
}
return null;
}
use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by serge-rider.
the class DataSourceRegistry method updateSavedFilter.
@Override
public void updateSavedFilter(DBSObjectFilter filter) {
DBSObjectFilter filterCopy = new DBSObjectFilter(filter);
for (int i = 0; i < savedFilters.size(); i++) {
if (CommonUtils.equalObjects(savedFilters.get(i).getName(), filter.getName())) {
savedFilters.set(i, filterCopy);
return;
}
}
savedFilters.add(filterCopy);
}
use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by serge-rider.
the class EditObjectFilterDialog method changeSavedFilter.
private void changeSavedFilter() {
String filterName = namesCombo.getText();
if (CommonUtils.equalObjects(filterName, filter.getName())) {
return;
}
if (CommonUtils.isEmpty(filterName)) {
// Reset filter
StringEditorTable.fillFilterValues(includeTable, null, null);
StringEditorTable.fillFilterValues(excludeTable, null, null);
} else {
// Find saved filter
DBSObjectFilter savedFilter = dsRegistry.getSavedFilter(filterName);
if (savedFilter != null) {
StringEditorTable.fillFilterValues(includeTable, savedFilter.getInclude(), null);
StringEditorTable.fillFilterValues(excludeTable, savedFilter.getExclude(), null);
}
}
filter.setName(filterName);
}
use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by serge-rider.
the class ConnectionPageGeneral method createControl.
@Override
public void createControl(Composite parent) {
boldFont = UIUtils.makeBoldFont(parent.getFont());
Composite group = UIUtils.createComposite(parent, 1);
{
Composite miscGroup = UIUtils.createControlGroup(group, CoreMessages.pref_page_ui_general_group_general, 2, GridData.FILL_HORIZONTAL, 0);
// $NON-NLS-1$
String connectionName = dataSourceDescriptor == null ? "" : dataSourceDescriptor.getName();
connectionNameText = UIUtils.createLabelText(miscGroup, CoreMessages.dialog_connection_wizard_final_label_connection_name, CommonUtils.toString(connectionName));
connectionNameText.addModifyListener(e -> {
connectionNameChanged = true;
ConnectionPageGeneral.this.getContainer().updateButtons();
});
{
UIUtils.createControlLabel(miscGroup, CoreMessages.dialog_connection_wizard_final_label_connection_type);
Composite ctGroup = UIUtils.createComposite(miscGroup, 2);
connectionTypeCombo = new CSmartCombo<>(ctGroup, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY, new ConnectionTypeLabelProvider());
loadConnectionTypes();
connectionTypeCombo.select(0);
connectionTypeCombo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
DBPConnectionType type = connectionTypeCombo.getItem(connectionTypeCombo.getSelectionIndex());
getWizard().firePropertyChangeEvent(ConnectionWizard.PROP_CONNECTION_TYPE, getActiveDataSource().getConnectionConfiguration().getConnectionType(), type);
}
});
final GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.widthHint = UIUtils.getFontHeight(connectionTypeCombo) * 20;
connectionTypeCombo.setLayoutData(gd);
UIUtils.createDialogButton(ctGroup, CoreMessages.dialog_connection_wizard_final_label_connection_types_edit, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
DBPConnectionType curConType = connectionTypeCombo.getSelectedItem();
DataSourceDescriptor dataSource = getActiveDataSource();
UIUtils.showPreferencesFor(getControl().getShell(), dataSource.getConnectionConfiguration().getConnectionType(), PrefPageConnectionTypes.PAGE_ID);
loadConnectionTypes();
if (!connectionTypeCombo.getItems().contains(curConType)) {
curConType = connectionTypeCombo.getItems().get(0);
}
connectionTypeCombo.select(curConType);
getWizard().firePropertyChangeEvent(ConnectionWizard.PROP_CONNECTION_TYPE, curConType, curConType);
}
});
}
{
UIUtils.createControlLabel(miscGroup, CoreMessages.dialog_connection_wizard_final_label_navigator_settings);
Composite ctGroup = UIUtils.createComposite(miscGroup, 2);
navigatorSettingsCombo = new Combo(ctGroup, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
final GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.widthHint = UIUtils.getFontHeight(navigatorSettingsCombo) * 20;
navigatorSettingsCombo.setLayoutData(gd);
for (String ncPresetName : DataSourceNavigatorSettings.PRESETS.keySet()) {
navigatorSettingsCombo.add(ncPresetName);
}
navigatorSettingsCombo.select(0);
navigatorSettingsCombo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (navigatorSettingsCombo.getSelectionIndex() == navigatorSettingsCombo.getItemCount() - 1) {
// Custom - no changes
} else {
DataSourceNavigatorSettings.Preset newSettings = DataSourceNavigatorSettings.PRESETS.get(navigatorSettingsCombo.getText());
if (newSettings == null) {
throw new IllegalStateException("Invalid preset name: " + navigatorSettingsCombo.getText());
}
ConnectionPageGeneral.this.navigatorSettings = newSettings.getSettings();
}
}
});
UIUtils.createDialogButton(ctGroup, CoreMessages.dialog_connection_wizard_final_label_navigator_settings_customize, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
editNavigatorSettings();
}
});
}
{
UIUtils.createControlLabel(miscGroup, CoreMessages.dialog_connection_wizard_final_label_connection_folder);
connectionFolderCombo = new Combo(miscGroup, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.widthHint = UIUtils.getFontHeight(connectionFolderCombo) * 20;
connectionFolderCombo.setLayoutData(gd);
loadConnectionFolders();
connectionFolderCombo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
dataSourceFolder = connectionFolders.get(connectionFolderCombo.getSelectionIndex());
}
});
}
{
Label descLabel = UIUtils.createControlLabel(miscGroup, CoreMessages.dialog_connection_wizard_description);
descLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
descriptionText = new Text(miscGroup, SWT.BORDER | SWT.V_SCROLL | SWT.WRAP | SWT.MULTI);
final GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.heightHint = descriptionText.getLineHeight() * 3;
descriptionText.setLayoutData(gd);
}
}
Composite refsGroup = UIUtils.createComposite(group, 3);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
refsGroup.setLayoutData(gd);
{
// Security
Group securityGroup = UIUtils.createControlGroup(refsGroup, CoreMessages.dialog_connection_wizard_final_group_security, 1, GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING, 0);
readOnlyConnection = UIUtils.createCheckbox(securityGroup, CoreMessages.dialog_connection_wizard_final_checkbox_connection_readonly, dataSourceDescriptor != null && dataSourceDescriptor.isConnectionReadOnly());
readOnlyConnection.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
UIUtils.createDialogButton(securityGroup, "Edit permissions ...", new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
editPermissions();
}
});
}
{
// Filters
filtersGroup = UIUtils.createControlGroup(refsGroup, CoreMessages.dialog_connection_wizard_final_group_filters, 1, GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING, 0);
for (final FilterInfo filterInfo : filters) {
filterInfo.link = UIUtils.createLink(filtersGroup, "<a>" + filterInfo.title + "</a>", new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
EditObjectFilterDialog dialog = new EditObjectFilterDialog(getShell(), getWizard().getDataSourceRegistry(), filterInfo.title, filterInfo.filter != null ? filterInfo.filter : new DBSObjectFilter(), true);
if (dialog.open() == IDialogConstants.OK_ID) {
filterInfo.filter = dialog.getFilter();
if (filterInfo.filter != null && !filterInfo.filter.isNotApplicable()) {
filterInfo.link.setFont(boldFont);
} else {
filterInfo.link.setFont(getFont());
}
}
}
});
filterInfo.link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
}
}
{
Composite linkGroup = UIUtils.createComposite(refsGroup, 1);
gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.horizontalSpan = 2;
linkGroup.setLayoutData(gd);
Link initConfigLink = new Link(linkGroup, SWT.NONE);
initConfigLink.setText("<a>" + CoreMessages.dialog_connection_wizard_connection_init_description + "</a>");
initConfigLink.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (getWizard().isNew()) {
DataSourceDescriptor dataSource = getActiveDataSource();
EditWizardPageDialog dialog = new EditWizardPageDialog(getWizard(), new ConnectionPageInitialization(dataSource), dataSource);
dialog.open();
} else {
getWizard().openSettingsPage(ConnectionPageInitialization.PAGE_NAME);
}
}
});
initConfigLink.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
Link shellConfigLink = new Link(linkGroup, SWT.NONE);
shellConfigLink.setText("<a>" + CoreMessages.dialog_connection_edit_wizard_shell_cmd + "</a>");
shellConfigLink.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (getWizard().isNew()) {
DataSourceDescriptor dataSource = getActiveDataSource();
EditWizardPageDialog dialog = new EditWizardPageDialog(getWizard(), new ConnectionPageShellCommands(dataSource), dataSource);
dialog.open();
} else {
getWizard().openSettingsPage(ConnectionPageShellCommands.PAGE_NAME);
}
}
});
shellConfigLink.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
}
setControl(group);
UIUtils.setHelp(group, IHelpContextIds.CTX_CON_WIZARD_FINAL);
}
use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by dbeaver.
the class DataSourceDescriptor method getTypeFilterMapping.
private FilterMapping getTypeFilterMapping(@Nullable DBSObject parentObject, boolean firstMatch, Class<?> testType) {
FilterMapping filterMapping = filterMap.get(testType.getName());
DBSObjectFilter filter;
if (filterMapping == null) {
// Try to find using interfaces and superclasses
for (Class<?> it : testType.getInterfaces()) {
filterMapping = filterMap.get(it.getName());
if (filterMapping != null) {
filter = filterMapping.getFilter(parentObject, firstMatch);
if (filter != null && (firstMatch || filter.isEnabled()))
return filterMapping;
}
}
}
if (filterMapping != null) {
filter = filterMapping.getFilter(parentObject, firstMatch);
if (filter != null && (firstMatch || filter.isEnabled())) {
return filterMapping;
}
}
return null;
}
Aggregations