use of org.jkiss.dbeaver.model.navigator.DBNProject in project dbeaver by dbeaver.
the class DiagramCreateWizardPage method createControl.
@Override
public void createControl(Composite parent) {
Composite placeholder = UIUtils.createPlaceholder(parent, 1);
Composite configGroup = UIUtils.createControlGroup(placeholder, ERDMessages.wizard_page_diagram_create_group_settings, 2, GridData.FILL_BOTH, 0);
// $NON-NLS-1$
final Text projectNameText = UIUtils.createLabelText(configGroup, "Name", null);
projectNameText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
diagram.setName(projectNameText.getText());
updateState();
}
});
Label contentLabel = UIUtils.createControlLabel(configGroup, ERDMessages.wizard_page_diagram_create_label_init_content);
GridData gd = new GridData(GridData.BEGINNING);
gd.horizontalSpan = 2;
contentLabel.setLayoutData(gd);
final DBNProject rootNode = DBeaverCore.getInstance().getNavigatorModel().getRoot().getProject(DBeaverCore.getInstance().getProjectRegistry().getActiveProject());
if (rootNode == null) {
setControl(placeholder);
return;
}
contentTree = new DatabaseNavigatorTree(configGroup, rootNode.getDatabases(), SWT.SINGLE | SWT.CHECK);
gd = new GridData(GridData.FILL_BOTH);
gd.horizontalSpan = 2;
gd.heightHint = 400;
contentTree.setLayoutData(gd);
CheckboxTreeViewer viewer = (CheckboxTreeViewer) contentTree.getViewer();
viewer.setCheckStateProvider(new ICheckStateProvider() {
@Override
public boolean isChecked(Object element) {
return false;
}
@Override
public boolean isGrayed(Object element) {
if (element instanceof DBNDatabaseNode && !(element instanceof DBNDataSource)) {
DBSObject object = ((DBNDatabaseNode) element).getObject();
if (object instanceof DBSTable) {
return false;
}
}
return true;
}
});
if (entitySelection != null) {
viewer.setSelection(entitySelection, true);
viewer.setCheckedElements(entitySelection.toArray());
}
setControl(placeholder);
}
use of org.jkiss.dbeaver.model.navigator.DBNProject in project dbeaver by dbeaver.
the class NavigatorHandlerProjectSetActive method execute.
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
final ISelection selection = HandlerUtil.getCurrentSelection(event);
if (selection instanceof IStructuredSelection) {
final IStructuredSelection structSelection = (IStructuredSelection) selection;
Object element = structSelection.getFirstElement();
if (!(element instanceof DBNProject)) {
return null;
}
DBNProject projectNode = (DBNProject) element;
final ProjectRegistry projectRegistry = DBeaverCore.getInstance().getProjectRegistry();
if (projectRegistry.getActiveProject() != projectNode.getProject()) {
projectRegistry.setActiveProject(projectNode.getProject());
}
}
return null;
}
use of org.jkiss.dbeaver.model.navigator.DBNProject in project dbeaver by serge-rider.
the class DiagramCreateWizardPage method createControl.
@Override
public void createControl(Composite parent) {
Composite placeholder = UIUtils.createPlaceholder(parent, 1);
Composite configGroup = UIUtils.createControlGroup(placeholder, ERDUIMessages.wizard_page_diagram_create_group_settings, 2, GridData.FILL_BOTH, 0);
// $NON-NLS-1$
final Text projectNameText = UIUtils.createLabelText(configGroup, "Name", null);
projectNameText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
diagram.setName(projectNameText.getText());
updateState();
}
});
Label contentLabel = UIUtils.createControlLabel(configGroup, ERDUIMessages.wizard_page_diagram_create_label_init_content);
GridData gd = new GridData(GridData.BEGINNING);
gd.horizontalSpan = 2;
contentLabel.setLayoutData(gd);
final DBNProject rootNode = DBWorkbench.getPlatform().getNavigatorModel().getRoot().getProjectNode(DBWorkbench.getPlatform().getWorkspace().getActiveProject());
if (rootNode == null) {
setControl(placeholder);
return;
}
contentTree = new DatabaseNavigatorTree(configGroup, rootNode.getDatabases(), SWT.SINGLE | SWT.CHECK);
gd = new GridData(GridData.FILL_BOTH);
gd.horizontalSpan = 2;
gd.heightHint = 400;
contentTree.setLayoutData(gd);
CheckboxTreeViewer viewer = (CheckboxTreeViewer) contentTree.getViewer();
viewer.setCheckStateProvider(new ICheckStateProvider() {
@Override
public boolean isChecked(Object element) {
return false;
}
@Override
public boolean isGrayed(Object element) {
if (element instanceof DBNDatabaseNode && !(element instanceof DBNDataSource)) {
DBSObject object = ((DBNDatabaseNode) element).getObject();
if (object instanceof DBSTable) {
return false;
}
}
return true;
}
});
if (entitySelection != null) {
viewer.setSelection(entitySelection, true);
viewer.setCheckedElements(entitySelection.toArray());
}
setControl(placeholder);
}
use of org.jkiss.dbeaver.model.navigator.DBNProject in project dbeaver by serge-rider.
the class SQLScriptTaskPageSettings method createControl.
@Override
public void createControl(Composite parent) {
initializeDialogUnits(parent);
Composite composite = UIUtils.createComposite(parent, 1);
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
SQLScriptExecuteSettings dtSettings = getWizard().getSettings();
SashForm mainGroup = new SashForm(composite, SWT.NONE);
mainGroup.setSashWidth(5);
mainGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
DBNProject projectNode = DBWorkbench.getPlatform().getNavigatorModel().getRoot().getProjectNode(sqlWizard.getProject());
{
Composite filesGroup = UIUtils.createControlGroup(mainGroup, DTMessages.sql_script_task_page_settings_group_files, 2, GridData.FILL_BOTH, 0);
scriptsViewer = new TableViewer(filesGroup, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
scriptsViewer.setContentProvider(new ListContentProvider());
scriptsViewer.getTable().setHeaderVisible(true);
scriptsViewer.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((DBNResource) element).getResource().getProjectRelativePath().toString();
}
@Override
public Image getImage(Object element) {
return DBeaverIcons.getImage(((DBNResource) element).getNodeIconDefault());
}
});
scriptsViewer.addDoubleClickListener(event -> {
StructuredSelection selection = (StructuredSelection) event.getSelection();
IResource resource = ((DBNResource) selection.getFirstElement()).getResource();
if (resource != null) {
DBPResourceHandler handler = DBWorkbench.getPlatform().getWorkspace().getResourceHandler(resource);
if (handler != null) {
try {
handler.openResource(resource);
} catch (Exception e) {
log.error("Failed to open resource " + resource, e);
}
}
}
});
// GridData gd = new GridData(GridData.FILL_BOTH);
// gd.heightHint = 300;
// gd.widthHint = 400;
// scriptsViewer.getTable().setLayoutData(gd);
SQLScriptTaskScriptSelectorDialog.createScriptColumns(scriptsViewer);
final Table scriptTable = scriptsViewer.getTable();
scriptTable.setLayoutData(new GridData(GridData.FILL_BOTH));
ToolBar buttonsToolbar = new ToolBar(filesGroup, SWT.VERTICAL);
buttonsToolbar.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
UIUtils.createToolItem(buttonsToolbar, DTUIMessages.sql_script_task_page_settings_tool_item_text_add_script, UIIcon.ROW_ADD, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
SQLScriptTaskScriptSelectorDialog dialog = new SQLScriptTaskScriptSelectorDialog(getShell(), projectNode);
if (dialog.open() == IDialogConstants.OK_ID) {
for (DBNResource script : dialog.getSelectedScripts()) {
if (!selectedScripts.contains(script)) {
selectedScripts.add(script);
}
}
refreshScripts();
}
}
});
ToolItem deleteItem = UIUtils.createToolItem(buttonsToolbar, DTUIMessages.sql_script_task_page_settings_tool_item_text_remove_script, UIIcon.ROW_DELETE, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
ISelection selection = scriptsViewer.getSelection();
if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
for (Object element : ((IStructuredSelection) selection).toArray()) {
if (element instanceof DBNResource) {
selectedScripts.remove(element);
}
}
refreshScripts();
}
}
});
UIUtils.createToolBarSeparator(buttonsToolbar, SWT.HORIZONTAL);
ToolItem moveUpItem = UIUtils.createToolItem(buttonsToolbar, DTUIMessages.sql_script_task_page_settings_tool_item_text_move_script_up, UIIcon.ARROW_UP, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
int selectionIndex = scriptTable.getSelectionIndex();
if (selectionIndex > 0) {
DBNResource prevScript = selectedScripts.get(selectionIndex - 1);
selectedScripts.set(selectionIndex - 1, selectedScripts.get(selectionIndex));
selectedScripts.set(selectionIndex, prevScript);
refreshScripts();
}
}
});
ToolItem moveDownItem = UIUtils.createToolItem(buttonsToolbar, DTUIMessages.sql_script_task_page_settings_tool_item_text_move_script_down, UIIcon.ARROW_DOWN, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
int selectionIndex = scriptTable.getSelectionIndex();
if (selectionIndex < scriptTable.getItemCount() - 1) {
DBNResource nextScript = selectedScripts.get(selectionIndex + 1);
selectedScripts.set(selectionIndex + 1, selectedScripts.get(selectionIndex));
selectedScripts.set(selectionIndex, nextScript);
refreshScripts();
}
}
});
scriptsViewer.addSelectionChangedListener(event -> {
int selectionIndex = scriptTable.getSelectionIndex();
deleteItem.setEnabled(selectionIndex >= 0);
moveUpItem.setEnabled(selectionIndex > 0);
moveDownItem.setEnabled(selectionIndex < scriptTable.getItemCount() - 1);
});
deleteItem.setEnabled(false);
}
{
Composite connectionsGroup = UIUtils.createControlGroup(mainGroup, DTMessages.sql_script_task_page_settings_group_connections, 2, GridData.FILL_BOTH, 0);
dataSourceViewer = new TableViewer(connectionsGroup, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
dataSourceViewer.setContentProvider(new ListContentProvider());
// dataSourceViewer.getTable().setHeaderVisible(true);
dataSourceViewer.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((DBNDataSource) element).getNodeName();
}
@Override
public Image getImage(Object element) {
return DBeaverIcons.getImage(((DBNDataSource) element).getNodeIcon());
}
});
GridData gd = new GridData(GridData.FILL_BOTH);
gd.heightHint = 300;
gd.widthHint = 400;
dataSourceViewer.getTable().setLayoutData(gd);
final Table dsTable = dataSourceViewer.getTable();
dsTable.setLayoutData(new GridData(GridData.FILL_BOTH));
ToolBar buttonsToolbar = new ToolBar(connectionsGroup, SWT.VERTICAL);
buttonsToolbar.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
UIUtils.createToolItem(buttonsToolbar, DTUIMessages.sql_script_task_page_settings_tool_item_text_add_data_source, UIIcon.ROW_ADD, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
SQLScriptTaskDataSourceSelectorDialog dialog = new SQLScriptTaskDataSourceSelectorDialog(getShell(), projectNode);
if (dialog.open() == IDialogConstants.OK_ID) {
for (DBNDataSource ds : dialog.getSelectedDataSources()) {
if (!selectedDataSources.contains(ds)) {
selectedDataSources.add(ds);
}
}
refreshDataSources();
updatePageCompletion();
}
}
});
ToolItem deleteItem = UIUtils.createToolItem(buttonsToolbar, DTUIMessages.sql_script_task_page_settings_tool_item_text_remove_data_source, UIIcon.ROW_DELETE, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
ISelection selection = dataSourceViewer.getSelection();
if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
for (Object element : ((IStructuredSelection) selection).toArray()) {
if (element instanceof DBNDataSource) {
selectedDataSources.remove(element);
}
}
refreshDataSources();
updatePageCompletion();
}
}
});
UIUtils.createToolBarSeparator(buttonsToolbar, SWT.HORIZONTAL);
ToolItem moveUpItem = UIUtils.createToolItem(buttonsToolbar, DTUIMessages.sql_script_task_page_settings_tool_item_text_move_data_source_up, UIIcon.ARROW_UP, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
int selectionIndex = dsTable.getSelectionIndex();
if (selectionIndex > 0) {
DBNDataSource prevScript = selectedDataSources.get(selectionIndex - 1);
selectedDataSources.set(selectionIndex - 1, selectedDataSources.get(selectionIndex));
selectedDataSources.set(selectionIndex, prevScript);
refreshDataSources();
}
}
});
ToolItem moveDownItem = UIUtils.createToolItem(buttonsToolbar, DTUIMessages.sql_script_task_page_settings_tool_item_text_move_data_source_down, UIIcon.ARROW_DOWN, new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
int selectionIndex = dsTable.getSelectionIndex();
if (selectionIndex < dsTable.getItemCount() - 1) {
DBNDataSource nextScript = selectedDataSources.get(selectionIndex + 1);
selectedDataSources.set(selectionIndex + 1, selectedDataSources.get(selectionIndex));
selectedDataSources.set(selectionIndex, nextScript);
refreshScripts();
}
}
});
dataSourceViewer.addSelectionChangedListener(event -> {
int selectionIndex = dsTable.getSelectionIndex();
deleteItem.setEnabled(selectionIndex >= 0);
moveUpItem.setEnabled(selectionIndex > 0);
moveDownItem.setEnabled(selectionIndex < dsTable.getItemCount() - 1);
});
deleteItem.setEnabled(false);
}
{
Composite settingsGroup = UIUtils.createControlGroup(composite, DTMessages.sql_script_task_page_settings_group_script, 3, GridData.HORIZONTAL_ALIGN_BEGINNING, 0);
ignoreErrorsCheck = UIUtils.createCheckbox(settingsGroup, DTMessages.sql_script_task_page_settings_option_ignore_errors, "", dtSettings.isIgnoreErrors(), 1);
dumpQueryCheck = UIUtils.createCheckbox(settingsGroup, DTMessages.sql_script_task_page_settings_option_dump_results, "", dtSettings.isDumpQueryResultsToLog(), 1);
dumpQueryCheck.setEnabled(false);
autoCommitCheck = UIUtils.createCheckbox(settingsGroup, DTMessages.sql_script_task_page_settings_option_auto_commit, "", dtSettings.isAutoCommit(), 1);
}
getWizard().createTaskSaveButtons(composite, true, 1);
loadSettings();
setControl(composite);
}
use of org.jkiss.dbeaver.model.navigator.DBNProject in project dbeaver by serge-rider.
the class SQLScriptTaskPageSettings method updateSelectedScripts.
private void updateSelectedScripts() {
DBNProject projectNode = DBWorkbench.getPlatform().getNavigatorModel().getRoot().getProjectNode(sqlWizard.getProject());
Set<DBPDataSourceContainer> dataSources = new LinkedHashSet<>();
for (DBNResource element : selectedScripts) {
Collection<DBPDataSourceContainer> resDS = element.getAssociatedDataSources();
if (!CommonUtils.isEmpty(resDS)) {
dataSources.addAll(resDS);
}
}
if (!dataSources.isEmpty()) {
List<DBNDataSource> checkedDataSources = new ArrayList<>();
for (DBPDataSourceContainer ds : dataSources) {
DBNDataSource dsNode = projectNode.getDatabases().getDataSource(ds);
if (dsNode != null) {
checkedDataSources.add(dsNode);
}
}
if (!checkedDataSources.isEmpty()) {
refreshDataSources();
for (DBNDataSource dsNode : checkedDataSources) {
if (!selectedDataSources.contains(dsNode)) {
selectedDataSources.add(dsNode);
}
}
}
}
refreshDataSources();
updatePageCompletion();
}
Aggregations